您好,登錄后才能下訂單哦!
1、實驗需求:
1)CentOS 7, amp + xcache, rpm包,php-fpm;
a) 分別深度:httpd, php, mariadb分別部署在一個單獨的主機上,以及都在同一主機;
b) 一個虛擬主機提供phpMyAdmin,另一個虛擬主機提供wordpress;
c) 為phpMyAdmim提供https服務;
2、實驗環境:
1)服務器環境
Linux服務器操作系統版本:CentOS release 6.7 (Final)
http) IP: 172.16.66.60
php-fpm) IP:172.16.66.70
mariadb) IP:172.16.66.70
2)測試環境
WIN7系統客戶機):IP:172.16.66.100
3、實驗前提:
1)關閉防火墻和SELinux
# service iptables stop
# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
# systemctl stop firewalld
# systemctl status firewalld
2)開發包組
# yum groupinstall Development Tools Server Platform Development -y
4、實驗過程:
第一部分:
部署主機IP: 172.16.66.60
1 基本設置
1.1 設置 httpd 主機名 HOSTNAME
echo "HOSTNAME=www1" >> /etc/sysconfig/network
1.2 更新 HOSTS 配置文件 /etc/hosts
# echo "172.16.66.60 www1 www2 " >> /etc/hosts
1.3 修改 DNS 解析設置
vim /etc/resolv.conf
2 安裝httpd-2.4.6
2.0 安裝依賴庫包
# yum install pcre-devel openssl-devel libevent-devel apr-devel apr-util-devel
2.1 編譯安裝并配置 httpd網絡服務器
tools]# tar xf httpd-2.4.6.tar.bz2
2.2 編譯相關參數
# ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi--enable-rewrite \
--enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib --with-apr=/usr --with-apr-util=/usr
2.3 編譯
# make -j 4
2.4 開始安裝(install是拷貝命令)
# make install
2.5 檢查系統庫文件對應路徑
# ldconfig -v
2.6 已裝載庫文件路徑
# ldconfig -v
2.7 在/etc/profile.d/目錄中vim apache.sh 添加如下內容,為httpd添加環境變量。
# export PATH=/usr/local/apache24/bin:$PATH
2.8 使其環境變量生效
# source /etc/profile.d/apache.sh
2.9 把apache頭文件導入到usr頭文件中
# ln -sv /usr/local/apache24/include /usr/include/httpd
2.10 如果不想配置man文件,可以使用全路徑,man幫助
# man /usr/local/apache24 httpd
2.11 啟動apachectl
# apachectl start
2.12 為配置文件創建備份目錄
# mkdir ~/confbak
2.13 備份配置文件 ~:表示當前登錄用戶文件夾 -R:遞歸所有子目錄
# cp -R /etc/httpd24/ ~/confbak/
3.創建和配置虛擬主機
# cd /etc/httpd24/extra/
3.1配置虛擬主機(/etc/httpd24/extra/www1.conf)
vim /etc/httpd/conf.d/www1.conf
主機www1
[root@www1 conf.d]# cat www1.conf
<VirtualHost *:80>
ServerName www1
# ServerAlias www
DocumentRoot /data/vhosts/www1 #注意這行末尾不要帶 /
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.66.70:9000/data/vhosts/www1/$1
<Directory "/data/vhosts/www1">
Options None
AllowOverride None
Require all granted
</Directory>
ErrorLog logs/www1-error_log
CustomLog logs/www1-access_log combien
#ServerSignature Off
</VirtualHost>
3.2配置虛擬主機(/etc/httpd24/extra/www2.conf )
vim /etc/httpd/conf.d/www2.conf
主機 www2
[root@www1 conf.d]# cat www2.conf
<VirtualHost *:80>
ServerName www2
DocumentRoot /data/vhosts/www2
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.66.70:9000/data/vhosts/www2/$1
<Directory "/data/vhosts/www2">
Options None
AllowOverride None
Require all granted
</Directory>
ErrorLog logs/www2-error_log
CustomLog logs/www2-access_log combien
#ServerSignature Off
</VirtualHost>
3.3 檢查語法錯誤
# httpd -t
3.4 重載apachectl服務
# apachectl graceful
3.5 為虛擬主機創建網站目錄www{1,2}
# mkdir /data/vhosts/www{1,2} -p
3.6 測試www1/index.html靜態網頁
# curl www1 -I
4.配置httpd24
4.1 啟動httpd的相關模塊 /etc/httpd24/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include /etc/httpd24/extra/www2.conf
Include /etc/httpd24/extra/www1.conf
4.2 刪除原有/usr/local/apache24/htdocs/
# rm index.html
4.3讓apache能識別php格式的頁面
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
第二部分:
部署mariadb主機IP: 172.16.66.80
1安裝和配置 Mariadb 數據庫服務
1.1 創建存放tools工具目錄
# mkdir /tools
1.2 解壓mariadb 到指定目錄
# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local/
1.3 創建mysql數據目錄
# mkdir -pv /data/mydata
1.4 創建mysql系統組
# groupadd -r -g 306 mysql
1.5 創建mysql系統用戶
# useradd -r -g 306 -u 306 mysql
1.6 授權屬主屬組/data/mydata
# chown -R mysql.mysql /data/mydata
1.7 創建軟連接
# ln -sv mariadb-5.5.46-linux-x86_64 mysql
1.8 授權mysql安裝包目錄
# chown -R root.mysql ./
1.9 編譯mariadb
# scripts/mysql_install_db --user=mysql --datadir=/data/mydata
1.10 創建mysql配置文件目錄
# mkdir /etc/mysql
1.11 拷貝配置文件到指定目錄
# cp support-files/my-large.cnf /etc/mysql/my.cnf
1.12 修改配置文件/ect/mysql/my.cnf 在server中添加下面三行
datadir = /data/mydata
innodb_file_per_table = ON
skip_name_resolve = ON
1.13 添加mysqld服務到開機自啟動
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
1.14 為mysqld執行權限
# chmod +x /etc/rc.d/init.d/mysqld
1.14 添加到服務列表
# chkconfig --add mysqld
1.14 添加到開機自動啟動
# chkconfig on
1.15 重命名/etc/my.cnf 為 my.cnf.bak
# mv my.cnf my.cnf.bak
1.16 添加mysql環境變量/etc/profile.d/myslqd.sh 下
export PATH=/usr/local/mysql/bin:/usr/local/mysql/support-files:$PATH
1.17 使其mysqld環境變量生效
# source /etc/profile.d/mysqld.sh
1.18 導入mysqld頭文件到usr頭文件中
# ln -sv /usr/local/mysql/include /usr/include/mysqld
1.19 啟動mysqld服務
# mysql.server start
1.20 以查看內存占用情況
# top -u mysql
2.使用 MariaDB 內建的安全配置腳本進行配置
2.1 執行安全配置腳本進行配置
# mysql_secure_installation
2.2 輸入密碼后回車,下面是輸出示例,可以看到命令提示符變為 MariaDB [(none)]>
# mysql -u root -p
2.3創建一個新數據庫給 WordPress 用(這里取名為 wordpress,也可以用別的名字)
MariaDB [(none)]> create database wordpress;
2.4創建一個新用戶,并將該數據庫的權限賦給他(這里只是舉例,用戶名為 admin,密碼為 admin)
MariaDB [(none)]> grant all on wordpress.* to 'admin'@'172.16.%.%' identified by 'admin';
2.5更新權限
MariaDB [(none)]> flush privileges;
2.6退出數據庫
MariaDB [(none)]> quit
2.7 創建配置文件備份目錄
# mkdir ~/confbak
2.7 備份配置文件
#cp /etc/my.cnf ~/confbak/my.cnf.bak
第三部分:
部署php5.4.40主機IP: 172.16.66.70
1安裝和配置 php 數據庫服務
1.1 創建存放tools工具目錄
# mkdir /tools
1.2 創建配置文件備份目錄
# mkdir ~/confbak/
1.3 安裝依賴庫
# yum install libxm12-devel gd-devel freetype-devel libmcrypt-devel -y
1.3 解壓php 到指定目錄
# tar xf php-5.4.40.tar.bz
1.4 編譯安裝php
# ./configure --prefix=/usr/local/php54 --with-mysql --with-mysqli --with-openssl --enable-mbstring --enable-xml --enable-sockets \
--enable-fpm --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib --with-bz2 --with-png-dir --with-mcrypt \
--with-config-file-path=/etc/php54.ini --with-config-file-scan-dir=/etc/php54.d
1.5 執行編譯命令
# make
1.6 執行安裝命令
# make install
1.7 拷貝配置文件到/etc/目錄下
# cp /tools/php-5.4.40/php.ini-production /etc/php54.ini
1.8 軟連接頭文件到/usr/include/
# ln -sv /usr/local/php54/include /usr/include/
2.配置php-fpm
2.1 為php-fpm提供init 腳本
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
2.2 為php-fpm執行權限
# chmod +x /etc/rc.d/init.d/php-fpm
2.3 加入到服務列表
~]# chkconfig --add php-fpm
2.4 設置開機自動運行
# chkconfig php-fpm on
2.5 為php-fpm提供配置文件
# cp /usr/local/php54/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
2.6 備份配置文件到指定目錄
# cp -R /usr/local/php54/etc/ ~/confbak/
2.7 編輯配置php-fpm的配置文件/usr/local/php54/etc/php-fpm.conf 修改如下5行
pm.max_children = 50
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php54/var/run/php-fpm.pid
listen = 172.16.66.70:9000 本機監聽ip
listen.allowed_clients = 172.16.66.60 允許的ip
2.8 啟動php-fpm服務
# service php-fpm start
2.9 查看php-fpm服務是否啟動成功
# ps aux | grep php-fpm
2.10 查看監聽套接字
# netstat -tnlp | grep php-fpm
第四部分: 安裝和配置 wordpress,phpMyAdmin
在php-fpm主機環境中 IP: 172.16.66.70
1.安裝和配置wordpress
1.1 解壓wordpress包
tools]# unzip wordpress-4.3.1-zh_CN.zip
1.2 拷貝到站點目錄www1中
cp wordpress /data/vhosts/www1
1.3 改名wordpress配置文件為wp-config.php
]# cp wp-config-sample.php wp-config.php
1.4 修改wp-config.php文件連接數據庫
~]# sed -n '22,38p' /data/vhosts/www1/wordpress/wp-config.php
/** WordPress數據庫的名稱 */
define('DB_NAME', 'wordpress');
/** MySQL數據庫用戶名 */
define('DB_USER', 'admin');
/** MySQL數據庫密碼 */
define('DB_PASSWORD', 'admin');
/** MySQL主機 */
define('DB_HOST', '172.16.66.80');
/** 創建數據表時默認的文字編碼 */
define('DB_CHARSET', 'utf8');
/** 數據庫整理類型。如不確定請勿更改 */
define('DB_COLLATE', '');
2.安裝和配置phpMyAdmin
2.1 解壓phpMyAdmin包
tools]# unzip phpMyAdmin-4.4.14.1-all-languages.zip
2.2 拷貝到站點目錄www2中
~]# cp -r phpMyAdmin-4.4.14.1-all-languages /data/vhosts/www2
2.3 配置phpMyAdmin軟件
# ln -sv phpMyAdmin-4.4.14.1-all-languages/ pma
2.4 改名配置文件名
~]# cp config.sample.inc.php config.inc.php
2.5 生成隨機數
~]# openssl rand -hex 8 #-->(640b56f72820ace8)
2.6 修改配置文件連接數據庫config.inc.php
~]# vim config.inc.php
$cfg['blowfish_secret'] = '640b56f72820ace8'
$cfg['Servers'][$i]['host'] = '172.16.66.80';
$cfg['Servers'][$i]['user'] = 'admin';
$cfg['Servers'][$i]['password'] = 'admin';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
3.測試php和mariad連通性
3.1 httpd-->php是否可以訪問
www1]# cat admin.php
<?php
phpinfo();
?>
3.2 httpd-->php--mariadb是否可以訪問
www1]#cat index.php
<?php
$conn = mysql_connect('172.16.100.71','admin','admin');
if($conn)
cho "OK";
else
echo "Failure";
?>
4.測試wordpress和phpMyAdmin
4.1 在PC瀏覽器中測試,wordpress是否能正常方式
http://www1/wordpress/index.php通過80端口訪問
4.2 在PC瀏覽器中測試,根據提示輸入數據庫名和密碼(主機賬號和密碼是授權wordpress中用戶)
http://www2/pma/index.php
5.為php-fpm安裝xcache加速器并配置
5.1 解壓xcache3.3包
# tar xf xcache-3.2.0.tar.bz2
5.2 在/tools/xcache-3.2.0目錄下 執行掛載接口
#/usr/local/php54/bin/phpize
5.3 編譯安裝
# ./configure --enable-xcache --with-php-config=/usr/local/php54/bin/php-config
# make && make install
5.4 編輯php.ini ,整合php和xcache
# cp /tools/xcache-3.2.0/xcache.ini /etc/php54.d
第五部分:為phpMyAdmim提供https服務
在httpd主機環境中 IP: 172.16.66.60
工作目錄:/etc/pki/CA/
1.建立私有CA
1.1 生成私鑰
CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
1.2 生成自簽證書
CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Common Name (eg, your name or your server's hostname) []:www2
1.3 提供輔助文件
CA]# touch index.txt
CA]# echo 01 > serial 序列號
CA]# tree
.
├── cacert.pem
├── certs
├── crl
├── index.txt
├── newcerts
├── private
│ └── cakey.pem
└── serial
2.節點申請證書
2.1 生成私鑰
~]# mkdir -pv /etc/httpd/ssl
ssl]# (umask 077; openssl genrsa -out httpd.key 1024)
2.2 生成證書簽署請求:
ssl]# openssl req -new -key httpd.key -out httpd.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Common Name (eg, your name or your server's hostname) []:www2
2.3 把請求發給CA
ssl]# cp httpd.csr /tmp/
3.CA簽發證書
3.1 簽署證書
~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt
3.2 把簽署好的證書發還給請求者。
~]# cp /etc/pki/CA/certs/httpd.crt /etc/httpd/ssl/
注意:本次私建CA和節點申請證書在同一臺機器完成。
4.配置httpd支持使用ssl,及使用的證書
4.1 在httpd.conf中啟用mod_ssl模塊
LoadModule ssl_module modules/mod_ssl.so
Include /etc/httpd24/extra/httpd-ssl.conf
4.2修改配置文件ssl.conf
~]# cat /etc/httpd/conf.d/ssl.conf
<VirtualHost>
DocumentRoot "/data/vhosts/www2"
ServerName www2:443
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.66.70:9000/data/vhosts/www2/$1
SSLCertificateFile /etc/httpd24/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd24/ssl/httpd.key
<Directory "/data/vhosts/www2">
SSLOptions +StdEnvVars
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
第六部分:壓力測試報告
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。