CentOS 7, lamp(module);php
實現:node
(1) 三者分離於兩臺主機;mysql
(2) 一個虛擬主機用於提供phpMyAdmin;另外一個虛擬主機用於提供wordpress;linux
(3) 爲php提供xcache;web
(4) 爲phpMyAdmin網站提供https虛擬主機sql
ON http(172.16.17.7):數據庫
1)安裝httpd及php程序包vim
[root@node1 ~]# yum -y install httpd php php-mysql php-mbstring
2)httpd虛擬主機www.pma.com以及www.wordpress.com,新建/etc/httpd/conf.d/vhosts.conf瀏覽器
<VirtualHost *:80> ServerName www.pma.com DocumentRoot "/web/pma/htdocs" <Directory "/web/pma/htdocs"> Options None AllowOverride None Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.wordpress.com DocumentRoot "/web/wordpress/htdocs" <Directory "/web/wordpress/htdocs"> Options None AllowOverride None Require all granted </Directory> </VirtualHost>
3)安裝配置PHPmyadmin程序bash
[root@node1 ~]# mkdir -pv /web/{pma,wordpress} [root@node1 ~]# unzip phpMyAdmin-4.4.14.1-all-languages.zip -d /web/pma/ [root@node1 ~]# mv /web/pma/phpMyAdmin-4.4.14.1-all-languages/ /web/pma/htdocs [root@node1 ~]# cd /web/pma/htdocs [root@node1 htdocs]# cp config.sample.inc.php config.inc.php [root@node1 htdocs]# openssl rand -base64 20 5Cfn69rDk+6I3Twd4KtgLfT/v5k= 編輯config.inc.php文件,將生成的隨機數複製到裏面,而後更改數據庫鏈接主機: $cfg['blowfish_secret'] = '5Cfn69rDk+6I3Twd4KtgLfT/v5k'; $cfg['Servers'][$i]['host'] = '172.16.17.8';
4)安裝配置wordpress程序
[root@node1 ~]# unzip wordpress-4.3.1-zh_CN.zip -d /web/wordpress/ [root@node1 ~]# mv /web/wordpress/wordpress/ /web/wordpress/htdocs [root@node1 ~]# cd /web/wordpress/htdocs [root@node1 htdocs]# cp wp-config-sample.php wp-config.php 編輯wp-config.php文件,配置數據庫鏈接信息: define('DB_NAME', 'wpdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', 'wppasswd'); define('DB_HOST', '172.16.17.8');
5)啓動httpd服務
[root@node1 ~]# httpd -t Syntax OK [root@node1 ~]# systemctl start httpd.service
ON mariadb(172.16.17.8):
1)建立運行mariadb的用戶
[root@node2 ~]# groupadd -r mysql [root@node2 ~]# useradd -r -g mysql mysql
2)建立數據庫存放目錄
[root@node2 ~]# mkdir -pv /data/mysql [root@node2 ~]# chown -R mysql.mysql /data/mysql/
3)解壓mariadb程序包至/usr/local,並建立mysql軟連接
[root@node2 ~]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local/ [root@node2 ~]# cd /usr/local/ [root@node2 local]# ln -sv mariadb-5.5.46-linux-x86_64/ mysql
4)初始化數據庫
[root@node2 local]# chown -R root.mysql mysql/ [root@node2 mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mysql
5)提供mysql主配置文件並編輯之
[root@node2 mysql]# mkdir /etc/mysql [root@node2 mysql]# cp support-files/my-medium.cnf /etc/mysql/my.cnf 在my.cnf配置文件中的[mysqld]端添加如下內容: datadir = /data/mysql //設置mysql的數據存儲目錄 innodb_file_per_table = ON //設置innodb存儲引擎獨立存儲數據庫 skip_name_resolve = ON //禁止mysql進行反解主機名
6)提供mysql服務腳本
[root@node2 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld [root@node2 mysql]# chmod +x /etc/rc.d/init.d/mysqld [root@node2 mysql]# chkconfig --add mysqld [root@node2 mysql]# chkconfig mysqld on
7)啓動mysqld服務
[root@node2 ~]# service mysqld start
8)建立wpdb庫,受權wpuser用戶鏈接
MariaDB [(none)]> CREATE SCHEMA wpdb; MariaDB [(none)]> GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'172.16.%.%' IDENTIFIED BY 'wppasswd'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY '123qwe!@#'; MariaDB [(none)]> FLUSH PRIVILEGES;
打開瀏覽器,添加hosts文件解析,訪問網站:
客戶端使用ab命令對服務器進行壓力測試:
[root@localhost ~]# ab -c 50 -n 500 http://www.pma.com/index.php
ON http(172.16.17.7):爲web服務器編譯安裝xcache
1)安裝php-devel包及開發工具包組
[root@node1 ~]# yum -y install php-devel [root@node1 ~]# yum -y groupinstall "Development Tools" "Server Platform Development"
2)解壓xcache源碼包至/usr/local下
[root@node1 ~]# tar xf xcache-3.2.0.tar.bz2 -C /usr/local/ [root@node1 ~]# mv /usr/local/xcache-3.2.0/ /usr/local/xcache
3)生成configure腳本
[root@node1 xcache]# phpize
4)執行編譯安裝
[root@node1 xcache]# ./configure --enable-xcache --with-php-config=/usr/bin/php-config [root@node1 xcache]# make -j 4 && make install
5)複製xcache的ini文件至/etc/php.d目錄下
[root@node1 xcache]# cp xcache.ini /etc/php.d/
6)重啓httpd服務
[root@node1 ~]# systemctl restart httpd.service
再次在客戶端使用ab命令對服務器進行壓力測試:
[root@localhost ~]# ab -c 50 -n 500 http://www.pma.com/index.php
爲PHPMyAdmin網站提供https虛擬主機:
ON mariadb(172.16.17.8):模擬私有CA,生成CA私鑰及自簽證書
[root@node2 ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) [root@node2 ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650 ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Beijing Locality Name (eg, city) [Default City]:Beijing Organization Name (eg, company) [Default Company Ltd]:MageEdu Organizational Unit Name (eg, section) []:Ops Common Name (eg, your name or your server's hostname) []:ca.stu17.com Email Address []:caadmin@stu17.com [root@node2 ~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts} [root@node2 ~]# touch /etc/pki/CA/{serial,index.txt} [root@node2 ~]# echo 02 > /etc/pki/CA/serial [root@node2 ~]# ls /etc/pki/CA/ cacert.pem certs crl index.txt newcerts private serial
ON http(172.16.17.7):建立證書籤署請求
[root@node1 ~]# mkdir /etc/httpd/ssl [root@node1 ~]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) [root@node1 ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 3650 ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Beijing Locality Name (eg, city) [Default City]:Beijing Organization Name (eg, company) [Default Company Ltd]:MageEdu Organizational Unit Name (eg, section) []:Ops Common Name (eg, your name or your server's hostname) []:www.pma.com Email Address []:admin@pma.com [root@node1 ~]# scp /etc/httpd/ssl/httpd.csr root@172.16.17.8:/etc/pki/CA/
ON mariadb(172.16.17.8):CA簽證
[root@node2 ~]# openssl ca -in /etc/pki/CA/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3650 Certificate Details: Serial Number: 2 (0x2) Validity Not Before: Jan 23 00:21:51 2016 GMT Not After : Jan 20 00:21:51 2026 GMT Subject: countryName = CN stateOrProvinceName = Beijing organizationName = MageEdu organizationalUnitName = Ops commonName = www.pma.com emailAddress = admin@pma.com [root@node2 ~]# scp /etc/pki/CA/certs/httpd.crt root@172.16.17.7:/etc/httpd/ssl/
ON http(172.16.17.7):配置httpd支持使用ssl,及使用的證書
[root@node1 ~]# yum -y install mod_ssl [root@node1 ~]# vim /etc/httpd/conf.d/ssl.conf DocumentRoot "/web/pma/htdocs" ServerName www.pma.com:443 <Directory "/web/pma/htdocs"> Options None AllowOverride None Require all granted </Directory> ...... SSLCertificateFile /etc/httpd/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/ssl/httpd.key [root@node1 ~]# httpd -t Syntax OK [root@node1 ~]# systemctl restart httpd.service
將CA主機上的CA證書更名爲cacert.crt導入到本地網站信任證書列表中,測試訪問