細節要求:
(1) 三者分離于三臺主機;
(2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress;
(3) PHP使用FastCGI+xcache;
(4) httpd使用非prefork的mpm模式;
一、CentOS6環境準備
1、OS(CentOS6.8)下開發環境包的安裝,編譯安裝程序包需要使用
#yum groupinstall “Development tools” -y
#yum groupinstall “Server Platform Development”
2、編譯安裝LAMP的順序:httpd–>mariadb–>php
httpd2.4:該版本依賴組件:apr1.4以上+apr-utils1.4以上+pcre等,如果直接rpm包安裝方式會存在問題一:可能默認所需的版本不符合;問題二:如果符合組件的版本要求,可能rpm直接安裝會升級OS系統原有的低版本組件,但低版本組件有可能是其他應用的依賴組件;所以我們建議這些組件采用通用二進制包形式手動安裝,安裝包可以在官方站點事先下載(apr.apache.org);
二、web-server服務器(192.168.1.211)編譯安裝過程
1、定義主機名,關閉selinux,iptables等
#echo “127.0.0.1 web-server.test.com”
#setenforce 0
#vim /etc/selinux/config –修改selinux參數
SELINUX=permissive
#chkconfig iptables off
#service iptables stop
2、手動安裝通用二進制格式的apr以及apr-utils
#tar jxvf /tmp/apr-1.5.2.tar.bz2
#tar jxvf /tmp/apr-util-1.5.4.tar.bz2
#cd /tmp/apr-1.5.2.tar.bz2/
#./configure –prefix=/usr/local/apr-1.5.2 –編譯安裝配置文件,如指定apr1.5.2的安裝路徑
#make -j 4 && make install –編譯并執行安裝
#cd /tmp/apr-util-1.5.4.tar.bz2
#./configure –prefix=/usr/local/apr-util-1.5.4 –with-apr=/usr/local/apr-1.5.2 –編譯安裝配置文件,指定安裝目錄以及依賴的apr目錄
#make -j 4 && make install
3、安裝依賴組件pcre-devel
#yum install pcre-devel -y
4、安裝httpd2.4
#tar jxvf /tmp/httpd-2.4.25.tar.bz2
#cd /tmp/httpd-2.4.25
#./configure –prefix=/usr/local/http2.4.25 –sysconfdir=/etc/httpd –enable-modules=”most” –enable-mods-shared=”most” –enable-so –enable-deflate –enable-proxy-fcgi –enable-ssl –enable-rewrite –enable-mpms-shared=”all” –with-mpm=event –enable-cgi –enable-cgid –with-apr=/usr/local/apr-1.5.2 –with-apr-util=/usr/local/apr-util-1.5.4
#make -j 4 && make install
編譯安裝完成之后,進行后續配置部署
a、配置文件路徑:/etc/httpd/httpd.conf 以及 /etc/httpd/extra/*.conf,默認extra目錄下的其他特性的配置文件在主配置文件中沒有啟用,需要手動啟用,常用的如httpd-mpm.conf;httpd-vhost.conf;httpd-ssl.conf等
b、二進制腳本文件路徑:/usr/local/http2.4.25/bin/*,其中httpd是進程服務啟用腳本,apachectl是服務進程管理程序,由于路徑不在$PATN系統環境指定路徑中,并且也無法用過系統進程管理實現開機自動啟用等統一管理,所以后續需要修改設置實現系統服務進程統一管理
c、日志存放路徑:/usr/local/http2.4.25/logs/{error_log,access_log},可以在主配置文件或者虛擬主機配置文件中單獨制定其他路徑,如/var/log/apache/{error_log,access_log}
d、pidfile文件默認存放在/usr/local/http2.4.25/logs目錄中,建議修改主配置文件參數,制定存放到系統默認的通用路徑/var/run/中
e、默認主頁路徑:/usr/local/http2.4.25/htdocs
主配置文件修改
#vim /etc/httpd/httpd.conf
##啟用Proxy反向代理主模塊以及FastCGI代理模塊(去除前面的#注釋符號)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
##指定日志存放路徑
ErrorLog “/var/log/apache/error_log”
CustomLog “/var/log/apache/access_log” common
##啟用特殊功能的配置文件
# Server-pool management (MPM specific)
Include /etc/httpd/extra/httpd-mpm.conf
# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
# Secure (SSL/TLS) connections
Include /etc/httpd/extra/httpd-ssl.conf
##新增兩個httpd的應用類型
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
##http2.4.25版本的pidfile參數設置在http-mpm.conf配置文件中設定
#vim /etc/httpd/extra/http-mpm.conf
##指定pid文件保存路徑
PidFile “/var/run/httpd/httpd.pid”
##創建系統服務啟用腳本,可以利用rpm方式安裝在/etc/rc.d/init.d下的httpd腳本文件作為模板,再次定義
#vim /etc/rc.d/init.d/httpd
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/http2.4.25/bin/apachectl
httpd=${HTTPD-/usr/local/http2.4.25/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
#chmod +x /etc/rc.d/init.d/httpd
#service httpd stop
#service httpd start
#service httpd status
#chkconfig –add httpd
#chkconfig –level 35 httpd on
#chkconfig –list httpd
#vim /etc/profile.d/httpd.sh
##增加環境變量路徑指向httpd服務的腳本默認路徑
export PATH=$PATH:/usr/local/http2.4.25/bin
##部署完成php-server服務之后,可以編輯虛擬主機配置文件,執行動態資源的php反向代理轉發
#vim /etc/httpd/extra/httpd-vhosts.conf
##編輯如下內容
DirectoryIndex index.php
<VirtualHost *:80>
DocumentRoot /var/www/test6
ProxyRequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://php-server-IP:9000/var/www/test6/$1
<Directory /var/www/test6>
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
#mkdir -pv /var/www/test6
#cd /var/www/test6
#touch index.php
三、db-server服務器(192.168.1.210)編譯安裝部署
1、定義主機名,關閉防火墻,selinux,安裝系統開發包等
#vim /etc/hosts
#vim /etc/sysconfig/network
#vim /etcselinux/config
#service iptables stop
#chkconfig iptables off
#chkconfig –del iptables
#chkconfig –list iptables
2、解壓二進制通用包至指定的默認程序路徑,并創建指定的mysql目錄名符號鏈接
#tar zxvf mariadb-5.5.54-linux-x86_64.tar.gz -C /usr/local/
#ln -sv /usr/local/mariadb-5.5.54-linux-x86_64 /usr/local/mysql
3、首先可以查看安裝步驟說明文件
#more /usr/local/mysql/INSTALL-BINARY
The basic commands that you must execute to install and use a
MariaDB binary distribution are:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf –
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db –user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe –user=mysql &
該步驟說明首先需要創建數據庫專有的所屬主和所屬組為mysql,并建立一個目錄名是mysql的符號鏈接關聯mariadb默認路徑,后續執行數據庫初始化安裝腳本mysql_install_db,參數–user 指定今后mysqld服務進程所屬用戶為mysql,參數–datadir 指定今后數據庫數據存放路徑(默認保存在安裝路徑下的data目錄:/usr/local/mysql/data)
4、創建mariadb數據庫運行的系統賬號mysql用戶與mysql用戶組,賦予//usr/local/mysql目錄所屬主和所屬組為系統默認要求的mysql
#useradd -r mysql
#chown -R mysql:mysql /usr/local/mysql/*
5、創建獨立的lvm邏輯分區用于今后存放data數據,執行數據庫初始化腳本
#mount /dev/mysqlvg/mysqldata /mysqldata
#chown -R mysql:mysql /mysqldata/
#chmod 750 /mysqldata/
#cd /usr/local/mysql
#./scripts/mysql_install_db –user=mysql –datadir=/mysqldata
##初始化數據庫完成以后,建議除了數據存放目錄的權限屬性保留為mysql:mysql之外,出于安全性考慮,其他的mariadb安裝路徑下的所屬主再次恢復為root用戶
#chown -R root /usr/local/mysql/*
6、數據庫后續部署配置:mariadb數據庫的相應配置文件,進程服務文件
配置文件模板路徑:/usr/local/mysql/support-files/*.cnf,復制相應的一份模板文件至默認的/etc路徑下,并改名為my.cnf
進程啟用服務腳本:/usr/local/mysql/support-files/mysql.server,復制到/etc/rc.d/init.d/路徑下,并改名為mysqld;通過chkconfig加入開機啟動服務列表中
#cd /usr/local/mysql
#cp ./support-files/my-huge.cnf /etc/my.cnf
#vim /etc/my.cnf ##修改默認配置的某些參數
skip_name_resolve = ON
## Try number of CPU’s*2 for thread_concurrency 按照實際CPU的數量修改進程并發數量
thread_concurrency = 2
#cat /proc/cpuinfo ##可以查看服務器CPU硬件參數
#cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
#vim /etc/rc.d/init.d/mysqld ##修改啟用服務腳本中的配置參數
basedir=/usr/local/mysql
datadir=/mysqldata
#ll /etc/rc.d/init.d/mysqld ##查看此進程服務腳本的權限屬性,具有可執行權限
-rwxr-xr-x. 1 root root 11982 Feb 21 19:40 /etc/rc.d/init.d/mysqld
#chkconfig –add mysqld
#chkconfig –level 35 mysqld on
#service mysqld start
#ss -tln
#vim /etc/profile.d/mysql.sh
##增加環境變量路徑指向本機運行mysql客戶端程序的二進制文件路徑
export PATH=$PATH:/usr/local/mysql/bin
#vim /etc/ld.so.conf.d/mysql.conf
##增加mysql的動態庫文件路徑指向
/usr/local/mysql/lib
#ldconfig ##再次加載一下動態庫文件路徑到系統環境中,使其生效
##執行mariadb數據庫初始化設置,增加數據庫root賬戶密碼,禁用匿名用戶訪問,刪除test臨時測試庫等
#mysql_secure_installation
##執行數據庫管理,創建php-server動態資源數據庫結構與訪問賬戶
#mysql -uroot -p
Mariadb [(none)]>grant all privileges on test.* to testuser@’192.168.1.%’ identified by ‘redhat’;
四、php-server服務器(192.168.1.212)編譯安裝部署
1、定義主機名,關閉防火墻,selinux,安裝系統開發包等
#vim /etc/hosts
#vim /etc/sysconfig/network
#vim /etc/selinux/config
#service iptables stop
#chkconfig iptables off
#chkconfig –del iptables
#init 6
2、解壓php源代碼包,放置到默認的/usr/local/phpXX路徑
#cd /tmp
#tar jxvf /tmp/php-5.5.37.tar.bz2
#cd /tmp/php-5.5.37
#more INSTALL ##查看瀏覽默認的安裝說明文檔
#yum groupinstall “Server Platform Development” “Development Tools” -y
#yum install libxml2-devel libmcrypt-devel bzip2-devel -y
3、編譯php源碼包
#./configure –prefix=/usr/local/php5.5 –with-mysql –with-mysqli –enable-fpm –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-openssl –with-zlib –with-bz2 –with-jpeg-dir –with-png-dir –enable-mbstring –enable-xml –with-libxml-dir –with-mcrypt
#make test
#make -j 4 && make install
##php-fpm自己的配置文件在安裝路徑下的/etc/php-fpm.conf以及/etc/php-fpm.d/*.conf,除此之外還有運行php進程的環境配置文件在系統根路徑下的/etc/php.ini以及/etc/php.d/*.ini(在編譯安裝中可以通過設定–with-config-file-path=xxxxx以及–with-config-file-scan-dir=xxxxx兩個參數來明確)
##負責復制解壓目錄中的php配置文件以及服務進程腳本文件到系統環境中指定的默認路徑
##復制運行環境配置文件
#cp /tmp/php-5.5.37/php.ini-production /etc/php.ini
##復制php-fpm進程服務腳本文件,并加入系統開機運行列表
#cp /tmp/php-5.5.37/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
#chkconfig –add php-fpm
#chkconfig –list php-fpm
##修php-fpm自己的服務置文件中部分參數
#cp /usr/local/php5.5/etc/php-fpm.conf.default /usr/local/php5.5/etc/php-fpm.conf
#vim /usr/local/php5.5/etc/php-fpm.conf
##修改下面兩項參數
listen = 192.168.1.212:9000
listen.allowed_clients = 192.168.1.211
##修改完成以后,啟用php-fpm服務
#service php-fpm start
##查看php-fpm的進程狀態
#ss -tln
#ps aux | grep php*
##測試fcgi反向代理訪問效果
#mkdir -pv /var/www/test6
#vim /var/www/test6/index.php
<h1>
This is PHP-Server
</h1>
<?php
phpinfo();
?>
#chown -R nobody:nobody /var/www/test6/*
##在任意客戶端上打開瀏覽器,通過預先指定的www.test6.com的本地主機名解析,訪問web-server站點,顯示默認主頁如下
顯示php動態資源如下
##測試php-server遠程數據庫訪問連接
#vim /var/www/test6/index.php
<h1>
This is PHP-Server
</h1>
<?php
$conn = mysql_connect(‘192.168.1.210′,’testuser’,’redhat’);
if ($conn)
echo “OK”;
else
echo “Failure”;
?>
原創文章,作者:N24_shishen,如若轉載,請注明出處:http://www.www58058.com/69919
親,請問你的cache在那里呢?做的與題目不符啊。