LAMP架构之编译安装httpd+(php-fpm)+mariadb
php-fpm:
????CentOS 6:
????????PHP-5.3.2-:默認(rèn)不支持fpm機(jī)制;需要自行打補(bǔ)丁并編譯安裝;
????????httpd-2.2:默認(rèn)不支持fcgi協(xié)議,需要自行編譯此模塊;
解決方案:編譯安裝httpd-2.4, php-5.3.3+;
CentOS 6, lamp (編譯安裝http和php-fpm);
實(shí)現(xiàn):
(1) 三者分離于三臺(tái)主機(jī);
(2) 一個(gè)虛擬主機(jī)用于提供phpMyAdmin;另一個(gè)虛擬主機(jī)用于提供wordpress;
(3) 為php提供xcache
(4) 切換mpm為非prefork機(jī)制;
On http(172.16.17.61):
1)配置編譯環(huán)境,安裝開(kāi)發(fā)包組
2)安裝httpd依賴(lài)的apr及apr-util,apr需要先安裝
3)編譯安裝httpd程序
[root@node1?~]#?yum?-y?install?pcre-devel?openssl-devel [root@node1?~]#?tar?xf?httpd-2.4.10.tar.bz2? [root@node1?~]#?cd?httpd-2.4.10 [root@node1?httpd-2.4.10]#?./configure?--prefix=/usr/local/apache24?--sysconfdir=/etc/httpd24?\ >?--enable-so?--enable-ssl?--enable-cgi?--enable-rewrite?--enable-modules=most?--enable-mpms-shared=all?\ >?--with-zlib?--with-pcre?--with-apr=/usr/local/apr?--with-apr-util=/usr/local/apr-util/?--with-mpm=prefork [root@node1?httpd-2.4.10]#?make?-j?4?&&?make?install4)提供httpd服務(wù)腳本,復(fù)制CentOS6的httpd2.2服務(wù)腳本,簡(jiǎn)單修改即可
[root@node1?~]#?cp?/etc/rc.d/init.d/httpd?/etc/rc.d/init.d/httpd24 [root@node1?~]#?vim?/etc/rc.d/init.d/httpd24 apachectl=/usr/local/apache24/bin/apachectl httpd=${HTTPD-/usr/local/apache24/bin/httpd} prog=httpd pidfile=${PIDFILE-/usr/local/apache24/logs/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd24}5)添加httpd的PATH環(huán)境變量
[root@node1?~]#?chkconfig?--add?httpd24 [root@node1?~]#?chkconfig?httpd24?on [root@node1?~]#?vim?/etc/profile.d/httpd24.sh export?PATH=/usr/local/apache24/bin:$PATH [root@node1?~]#?.?/etc/profile.d/httpd24.sh6)啟用httpd2.4的fcgi模塊
7)添加http對(duì)php頁(yè)面文件的支持,啟用虛擬主機(jī)
[root@node1?~]#?vim?/etc/httpd24/httpd.conf ServerName?www.example.com:80 #DocumentRoot?"/usr/local/apache24/htdocs" <IfModule?dir_module> DirectoryIndex?index.html?index.php </IfModule> AddType?application/x-httpd-php?.php AddType?application/x-httpd-source?.phps Include?/etc/httpd24/extra/httpd-vhosts.conf8)提供虛擬主機(jī)www.pma.com及www.wordpress.com
[root@node1?~]#?vim?/etc/httpd24/extra/httpd-vhosts.conf <VirtualHost?*:80> ServerAdmin?webmaster@pma.com DocumentRoot?"/web/pma/htdocs" ServerName?www.pma.com ServerAlias?web.pma.com ErrorLog?"logs/pma.com-error_log" CustomLog?"logs/pma.com-access_log"?combined ProxyRequests?Off ProxyPassMatch?^/(.*\.php)$?fcgi://172.16.17.62:9000/web/pma/htdocs <Directory?"/web/pma/htdocs"> Options?None AllowOverride?None Require?all?granted </Directory> </VirtualHost><VirtualHost?*:80> ServerAdmin?webmaster@wordpress.com DocumentRoot?"/web/wordpress/htdocs" ServerName?www.wordpress.com ServerAlias?web.wordpress.com ErrorLog?"logs/wordpress.com-error_log" CustomLog?"logs/wordpress.com-access_log"?combined ProxyRequests?Off ProxyPassMatch?^/(.*\.php)$?fcgi://172.16.17.62:9000/web/wordpress/htdocs <Directory?"/web/wordpress/htdocs"> Options?None AllowOverride?None Require?all?granted </Directory> </VirtualHost>9)安裝配置phpMyAdmin程序
[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 vNVkpLUPfn2a4dz/ZKnJkBmvH54= 編輯config.inc.php文件,將生成的隨機(jī)數(shù)復(fù)制到里面,然后更改數(shù)據(jù)庫(kù)連接主機(jī): $cfg['blowfish_secret']?=?'vNVkpLUPfn2a4dz/ZKnJkBmvH54'; $cfg['Servers'][$i]['host']?=?'172.16.17.63';10)安裝配置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文件,配置數(shù)據(jù)庫(kù)連接信息: define('DB_NAME',?'wpdb'); define('DB_USER',?'wpuser'); define('DB_PASSWORD',?'wppasswd'); define('DB_HOST',?'172.16.17.63');11)啟動(dòng)httpd服務(wù)
[root@node1?~]#?httpd?-t Syntax?OK [root@node1?~]#?service?httpd24?start Starting?httpd:?[?OK?] [root@node1?~]#?ss?-tnl?|?grep?80 LISTEN?0?128?*:48075?*:* LISTEN?0?128?:::80?:::*On php(172.16.17.62):
1)配置編譯環(huán)境,安裝開(kāi)發(fā)包組
[root@node2?~]#?yum?-y?groupinstall?"Development?Tools"?"Server?Platform?Development" [root@node2?~]#?yum?install?-y?libxml2-devel?libmcrypt-devel?openssl-devel?bzip2-devel2)編譯安裝php程序,默認(rèn)啟用php-fpm
[root@node2?~]#?tar?xf?php-5.6.4.tar.xz?-C?/usr/local/src [root@node2?~]#?cd?/usr/local/src/php-5.6.4 [root@node2?php-5.6.4]#?./configure?--prefix=/usr/local/php?--sysconfdir=/etc/php?\ >?--enable-mbstring?--enable-xml?--enable-fpm?--enable-sockets?--enable-maintainer-zts?\ >?--with-openssl?--with-freetype-dir?--with-png-dir?--with-jpeg-dir?--with-zlib?--with-bz2?\ >?--with-libxml-dir=/usr?--with-mcrypt?--with-config-file-scan-dir=/etc/php.d?\ >?--with-mysql=mysqlnd?--with-pdo-mysql=mysqlnd?--with-mysqli=mysqlnd?--user=apache [root@node2?php-5.6.4]#?make?-j?4?&&?make?install3)為php提供配置文件
4)配置php-fpm
[root@node2?php-5.6.4]#?mkdir?/etc/php.d [root@node2?php-5.6.4]#?cp?sapi/fpm/init.d.php-fpm?/etc/init.d/php-fpm [root@node2?php-5.6.4]#?chmod?+x?/etc/init.d/php-fpm [root@node2?php-5.6.4]#?chkconfig?--add?php-fpm [root@node2?php-5.6.4]#?chkconfig?php-fpm?on5)為php-fpm提供配置文件并編輯之
6)復(fù)制web服務(wù)器的網(wǎng)頁(yè)某到php服務(wù)器上一份,客戶端訪問(wèn)時(shí),獲取靜態(tài)資源會(huì)訪問(wèn)到web服務(wù)器,訪問(wèn)動(dòng)態(tài)資源將訪問(wèn)到php服務(wù)器
[root@node2?~]#?scp?-r?root@172.16.17.61:/web?/7)啟動(dòng)php-fpm
[root@node2?~]#?service?php-fpm?start Starting?php-fpm??done [root@node2?~]#?ss?-tnl?|?grep?--color?"9000" LISTEN?????0??????128????????????172.16.17.62:9000?????????????????????*:*????? [root@node2?~]#?ps?aux?|?grep?--color?"php-fpm" root?????108087??0.0??1.0??71880??5128??????????Ss???00:07???0:00?php-fpm:?master?process?(/etc/php/php-fpm.conf)???????????????????????????????????????????????????????????????????? apache???108088??0.0??0.9??71880??4436??????????S????00:07???0:00?php-fpm:?pool?www?????????????????????????????????????????????????????????????????????????????????????????????????? apache???108089??0.0??0.9??71880??4440??????????S????00:07???0:00?php-fpm:?pool?www?????????????????????????????????????????????????????????????????????????????????????????????????? apache???108090??0.0??0.9??71880??4440??????????S????00:07???0:00?php-fpm:?pool?www?????????????????????????????????????????????????????????????????????????????????????????????????? apache???108091??0.0??0.9??71880??4440??????????S????00:07???0:00?php-fpm:?pool?www?????????????????????????????????????????????????????????????????????????????????????????????????? apache???108092??0.0??0.9??71880??4440??????????S????00:07???0:00?php-fpm:?pool?www?????????????????????????????????????????????????????????????????????????????????????????????????? root?????108096??0.0??0.1?103304???892?pts/0????S+???00:08???0:00?grep?--color?php-fpm
On?mariadb(172.16.17.73):
1)創(chuàng)建運(yùn)行mariadb的用戶
[root@node2?~]#?groupadd?-r?mysql [root@node2?~]#?useradd?-r?-g?mysql?mysql2)創(chuàng)建數(shù)據(jù)庫(kù)存放目錄
3)解壓mariadb程序包至/usr/local,并創(chuàng)建mysql軟鏈接
4)初始化數(shù)據(jù)庫(kù)
[root@node2?local]#?chown?-R?root.mysql?mysql/ [root@node2?mysql]#?scripts/mysql_install_db?--user=mysql?--datadir=/data/mysql5)提供mysql主配置文件并編輯之
6)提供mysql服務(wù)腳本
7)設(shè)置mysql命令的環(huán)境變量
[root@node3?~]#?vim?/etc/profile.d/mysql.sh export?PATH=/usr/local/mysql/bin:$PATH [root@node3?~]#?.?/etc/profile.d/mysql.sh8)導(dǎo)出mysql頭文件
[root@node3?~]#?ln?-sv?/usr/local/mysql/include/mysql/?/usr/include/9)導(dǎo)出mysql庫(kù)文件路徑
[root@node3?~]#?echo?"/usr/local/mysql/lib"?>>?/etc/ld.so.conf.d/mysql.conf [root@node3?~]#?ldconfig10)導(dǎo)出mysql的man幫助手冊(cè)
11)啟動(dòng)mysqld服務(wù)
[root@node2?~]#?service?mysqld?start8)創(chuàng)建wpdb庫(kù),授權(quán)wpuser用戶連接
[root@node3?~]#?mysql MariaDB?[(none)]>?USE?mysql; MariaDB?[mysql]>?DELETE?FROM?mysql.user?WHERE?User=''; MariaDB?[mysql]>?DELETE?FROM?mysql.user?WHERE?Host='node3'; MariaDB?[mysql]>?GRANT?ALL?PRIVILEGES?ON?*.*?TO?'root'@'localhost'?IDENTIFIED?BY?'123qwe!@#'; MariaDB?[mysql]>?GRANT?ALL?PRIVILEGES?ON?*.*?TO?'root'@'127.0.0.1'?IDENTIFIED?BY?'123qwe!@#'; MariaDB?[mysql]>?GRANT?ALL?PRIVILEGES?ON?*.*?TO?'root'@'::1'?IDENTIFIED?BY?'123qwe!@#'; 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; MariaDB?[mysql]>?SELECT?Host,User,Password?FROM?user; +------------+--------+-------------------------------------------+ |?Host???????|?User???|?Password??????????????????????????????????| +------------+--------+-------------------------------------------+ |?localhost??|?root???|?*A47CB5FB12B47CBF12AB43B7EC865013906E10BD?| |?127.0.0.1??|?root???|?*A47CB5FB12B47CBF12AB43B7EC865013906E10BD?| |?::1????????|?root???|?*A47CB5FB12B47CBF12AB43B7EC865013906E10BD?| |?172.16.%.%?|?wpuser?|?*7CD61EFBFDDDBD978EA9017F2A26A59DE4589025?| |?172.16.%.%?|?root???|?*A47CB5FB12B47CBF12AB43B7EC865013906E10BD?| +------------+--------+-------------------------------------------+
重啟httpd24服務(wù),添加本地hosts文件解析,打開(kāi)瀏覽器添訪問(wèn)網(wǎng)站(配置好php-fpm后需要重啟一下httpd服務(wù)):
客戶端使用ab命令對(duì)服務(wù)器進(jìn)行壓力測(cè)試:
[root@client?~]#?ab?-c?100?-n?1000?http://www.pma.com/index.phpON php(172.16.17.72):為php服務(wù)器編譯安裝xcache
1)解壓xcache源碼包至/usr/local下
[root@node2?xcache]#?tar?xf?xcache-3.2.0.tar.bz2?-C?/usr/local/ [root@node2?xcache]#?mv?/usr/local/xcache-3.2.0/?/usr/local/xcache2)生成configure腳本
[root@node2?xcache]#?/usr/local/php/bin/phpize3)執(zhí)行編譯安裝
[root@node2?xcache]#?./configure?--enable-xcache?--with-php-config=/usr/local/php/bin/php-config4)復(fù)制xcache的ini文件至/etc/php.d目錄下?
[root@node2?xcache]#?cp?xcache.ini?/etc/php.d/5)建立php測(cè)試頁(yè)面
[root@node2?~]#?vim?/web/pma/htdocs/test.php <?phpphpinfo(); ?>6)重啟php-fpm服務(wù)
再次在客戶端使用ab命令對(duì)服務(wù)器進(jìn)行壓力測(cè)試:
[root@client?~]#?ab?-c?100?-n?1000?http://www.pma.com/index.phpOn http(172.16.17.61):切換mpm為event機(jī)制:
[root@node1?~]#?vim?/etc/httpd24/httpd.conf? Include?/etc/httpd24/extra/httpd-mpm.conf #LoadModule?mpm_prefork_module?modules/mod_mpm_prefork.so LoadModule?mpm_event_module?modules/mod_mpm_event.so?????//注釋prefork模塊,配置event模塊 [root@node1?~]#?service?httpd24?restart [root@node1?~]#?httpd?-M?|?grep?mpmmpm_event_module?(shared)
轉(zhuǎn)載于:https://blog.51cto.com/coffeeyep/1739361
總結(jié)
以上是生活随笔為你收集整理的LAMP架构之编译安装httpd+(php-fpm)+mariadb的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Javascript学习资源整理
- 下一篇: Tomcat开机启动