打造支援多網站託管、電子商務級 SSL 加密、資料庫驅動動態腳本的生產環境 Web 伺服器。
本指南採源碼編譯安裝,適用於 Linux/Unix 系統。
https://domain/test.php.php,交由 mod_php 處理# 解壓
gunzip -d -c mysql-3.22.xx.tar.gz | tar xvf -
cd mysql-3.22.xx
# 配置與編譯
./configure --prefix=/usr/local/mysql
make
make install
# 初始化資料庫與啟動
scripts/mysql_install_db
cd /usr/local/mysql/bin
./safe_mysqld &
./mysqladmin -u root password "new-password"
# 檢查資料庫
BINDIR/mysqlshow -p
# 進入互動模式
mysql -u root -p
mysql> CREATE DATABASE test2;
mysql> USE test2;
mysql> CREATE TABLE books (id INT(3) NOT NULL AUTO_INCREMENT, name CHAR(50) NOT NULL, PRIMARY KEY(id));
mysql> INSERT INTO books (name) VALUES ("PHP 4 Newbies"), ("Red Hat Linux 6 Server");
mysql> SELECT * FROM books;
# 解壓 Apache 來源(僅供 PHP configure 參考)
cd /tmp/download
gunzip -c apache_1.3.x.tar.gz | tar xf -
cd apache_1.3.x
./configure
cd ..
# PHP 編譯
gunzip -c php-4.0.x.tar.gz | tar xf -
cd php-4.0.x
./configure --with-mysql=/usr/local/mysql \
--with-xml \
--with-apache=../apache_1.3.x \
--enable-track-vars \
--with-ldap
make
make install
# 複製設定檔
cp php.ini-dist /usr/local/lib/php.ini
# 可調整 max_execution_time = 60
cd openssl-0.9.x
./config --prefix=/usr/local/ssl -L`pwd`/../rsaref-2.0/local/ rsaref -fPIC
make && make test && make install
cd mod_ssl-2.5.x-1.3.x
./configure --with-apache=../apache_1.3.x
cd apache_1.3.x
SSL_BASE=../openssl-0.9.x
RSA_BASE=../rsaref-2.0/local
./configure --enable-module=ssl \
--activate-module=src/modules/php4/libphp4.a \
--enable-module=php4 \
--prefix=/usr/local/apache \
--enable-shared=ssl
make
# 產生自簽憑證(測試用)
make certificate TYPE=custom
# 或正式環境 TYPE=custom 配合自建 CA
make install
編輯 /usr/local/apache/conf/httpd.conf,啟用 PHP:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# 語法檢查
/usr/local/apache/bin/apachectl configtest
# 一般啟動
/usr/local/apache/bin/apachectl start
# SSL 啟動
/usr/local/apache/bin/apachectl startssl
https://localhost/ → Apache 預設頁https://localhost/test.php → <?php phpinfo(); ?> 顯示 PHP 資訊https://localhost/ → 瀏覽器提示接受自簽憑證,建立加密連線<VirtualHost *>
ServerAdmin webmaster@domain1.com
DocumentRoot /home/vhosts/domain1.com/www/
ServerName www.domain1.com
ErrorLog logs/domain1.com-error_log
CustomLog logs/domain1.com-access_log common
ScriptAlias /cgi-bin/ /var/www/cgi-bin/domain1.com/
DirectoryIndex index.php
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /usr/local/apache/htdocs
ServerName www.securedomain1.com
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
CustomLog /usr/local/apache/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
openssl genrsa -des3 -out server.key 1024openssl req -new -key server.key -out server.csr(CommonName 填 FQDN)openssl genrsa -des3 -out ca.key 1024openssl req -new -x509 -days 365 -key ca.key -out ca.crtsign.sh(mod_ssl 附贈)簽署:./sign.sh server.csrSSLCertificateFile 指向 server.crt,SSLCertificateKeyFile 指向 server.key完成上述步驟即擁有功能完整的 LAMP + SSL 生產環境。