Lamp
實驗要求:
在同一臺linux主機上部署Lamp,實現兩個虛擬主機web1,web2,分別跑phpMyadmin,wordpress應用,且提供https服務。
Linux主機:centos7.2 一塊網卡 eno16777728 橋接模式 ip 172.16.254.79/16
首先關閉selinux setenforce 0,避免影響實驗。
安裝所需軟件包:
Yum -y install httpd php php-mysql php-mbstring mariadb-server
創建虛擬主機web1 web2站點的根目錄:
Mkidr /data/web1/
Mkdir /data/web2/
在httpd.2-4上配置虛擬主機web1,web2的配置文件
[root@localhost CA]# cat /etc/httpd/conf.d/web1.conf
<VirtualHost 172.16.254.79>
ServerName www1.wudang.com
DocumentRoot /data/web1
DirectoryIndex index.php
ErrorLog logs/www1_error_log
CustomLog logs/www1_access_log combined
<Directory /data/web1/mpa>
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
[root@localhost CA]# cat /etc/httpd/conf.d/web2.conf
<VirtualHost 172.16.254.79>
ServerName www2.shaolin.com
DocumentRoot /data/web2
DirectoryIndex index.php
ErrorLog logs/www2_error_log
CustomLog logs/www2_access_log combined
<Directory /data/web2/>
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
下載 phpMyAdmin-4.4.14.1-all-languages.zip wordpress-4.3.1-zh_CN.zip
解壓兩個應用程序包到站點根目錄:
Unzip phpMyAdmin-4.4.14.1-all-languages.zip
Unzip wordpress-4.3.1-zh_CN.zip
創建兩個應用程序根目錄的軟連接文件:
Ln -svf /data/web1/ phpMyAdmin-4.4.14.1-all-languages /data/web1/mpa
Ln -svf /data/web2/wordpress /data/web2/wordpress
配置兩個應用程序與數據庫mariadb的連接:
cp /data/web1/mpa/config.sample.inc.php /data/web1/mpa/config.inc.php
Vim /data/web1/mpa/config.inc.php
$cfg['blowfish_secret'] = '1rnbfOvowLY6GA'; ----生成密鑰的隨機數
$cfg['Servers'][$i]['host'] = 'localhost';-------------mariadb主機地址
Cp /data/web2/wordpress/wp-config-sample.php /data/web2/wordpress/wp-config.php
Vim /data/web2/wordpress/wp-config.php
define('DB_NAME', 'wordpress');-------事先創建好的數據庫
/** MySQL數據庫用戶名 */
define('DB_USER', 'jack');-------- 管理數據庫的用戶名
/** MySQL數據庫密碼 */-----Jack用戶連接數據庫的密碼
define('DB_PASSWORD', '123456');
/** MySQL主機 */
define('DB_HOST', '172.16.254.79');-------mariadb數據庫的地址
啓動mariadb
Systemctl strart mariadb.service
連接數據庫
Mysql
創建一個數據庫用戶:
Grant all on *.* to ‘jack’@’%’ identified by ‘123456’ ;
Flush privileges;
啓動httpd
Systemctl start httpd
http服務測試:測試機win7 hosts文件添加一條記錄
172.16.254.79 www1.wudang.com www2.shaolin.com
http://www2.shaolin.com/wordpress
兩個站點phpMyadmi,wordpress 提供https服務
httpd.2-4安裝mod_ssl 模塊
Yum -y install mod_ssl
創建CA證書:
(umask 066; openssl genrsa -out private/cakey.pem 1024)
openssl req -new -x509 -key private/cakey.pem -days 3650 -out cacert.pem
創建站點phpMyadmin私鑰和證書:
(umask 066;openssl genrsa -out /etc/httpd/web1/php.key 1024) openssl req -new -key /etc/httpd/web1/php.key -days 365 -out /etc/httpd/web1/php.csr
openssl ca -in /etc/httpd/web1/php.csr -out certs/php.crt
創建站點wordpress私鑰和證書:
mkdir /etc/httpd/web2
(umask 066; openssl genrsa -out /etc/httpd/web2/wordpress.key 1024)
openssl req -new -key /etc/httpd/web2/wordpress.key -days 365 -out /etc/httpd/web2/wordpress.csr
openssl ca -in /etc/httpd/web2/wordpress.csr -days 365 -out certs/wordpress.crt
cp certs/wordpress.crt /etc/httpd/web2/
配置ssl模塊配置文件即httpd的配置文件:
Listen 443 httpsi
<VirtualHost 172.16.254.79:443>
DocumentRoot "/data/web2/"
ServerName www2.shaolin.com:443
SSLProtocol All -SSLv2
DirectoryIndex index.php
SSLEngine on
ErrorLog logs/www2_ssl_error_log
LogLevel warn
SSLCertificateFIle /etc/httpd/web2/wordpress.crt
SSLCertificateKeyFile /etc/httpd/web2/wordpress.key
<Directory /data/web2/>
Options Indexes
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
Listen 443 httpsi
<VirtualHost 172.16.254.79:443>
DocumentRoot "/data/web1/"
ServerName www1.wudang.com:443
SSLProtocol All -SSLv2
DirectoryIndex index.php
SSLEngine on
ErrorLog logs/www1_ssl_error_log
LogLevel warn
SSLCertificateFIle /etc/httpd/web1/php.crt
SSLCertificateKeyFile /etc/httpd/web1/php.key
<Directory /data/web1/>
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
把CA的證書導入到瀏覽器中的受信任的根證書機構。
https測試:
https://www2.shaolin.com/wordpress