CentOS 7, amp + xcache, rpm包,php-fpm

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>
    

第六部分:壓力測試報告

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章