apache、php、mysql各工作於獨立主機的lamp平臺實現
實驗環境:
VM1:192.168.1.132,用於apache伺服器
VM2:192.168.1.134,用於php伺服器
VM3:192.168.1.137,使用者mariadb伺服器
軟體版本:httpd-2.4.9,php-5.4.26,mariadb-5.5.39
一、編譯安裝httpd-2.4.9
1、解決依賴關係
# yum -y install pcre-devel
# yum -y install mod_ssl
# yum groupinstall -y "Development tools"
# yum groupinstall -y "Server Platform Development"
編譯安裝apr-1.5.0.tar.bz2
# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
# ./configure --prefix=/usr/local/apr
# make && make install
編譯安裝apr-until-1.5.3.tar.bz2
# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
2、編譯安裝httpd-2.4.9
# tar xf httpd-2.4.9.tar.bz2
# cd httpd-2.4.9
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
# make && make install
3、修改httpd配置檔案
啟用fcgi模組
wKioL1PuGtvhXD7rAAEYzLEf40E632.jpg
在配置檔案中新增如下語句讓apache支援php格式的頁面,並支援php格式的主頁
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
wKiom1PuGhjwqUa7AABulSjX1MI739.jpg
wKiom1PuHQ6jThCmAAJdxjUiydA874.jpg
關閉正向代理,啟用反向代理,新增語句,fcgi:後面的IP地址是php應用伺服器的IP地址,/var/phpscript是php伺服器中用於存放php頁面檔案的目錄位置,使用者在向前端的apache伺服器請求php頁面時,httpd程式會將使用者請求反向代理至php伺服器對應的目錄下的頁面檔案,經過php直譯器處理後返回給前端apache伺服器html頁面格式的檔案。
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.134:9000/var/phpscript/$1
wKiom1PuGruTcQJIAABx3VkjLzA665.jpg
設定Pid檔案路徑,這個條目是為了使用apache服務指令碼而設定的。
wKiom1PuHZ3RNyCDAAAkfZHjDds028.jpg
4、提供SysV服務指令碼,在/etc/rc.d/init.d目錄下建立名稱為httpd24的檔案,編輯並新增如下內容
#!/bin/bash
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start() {
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d 10 $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
echo -n $"Reloading $prog: "
if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f ${pidfile} ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
修改此指令碼的執行許可權:
# chmod +x /etc/rc.d/init.d/httpd24
新增服務列表:
# chkconfig --add httpd24
# 啟動服務:
# service httpd24 start
apache伺服器準備完畢。
二、編譯安裝php-5.4.26
1、解決依賴關係:
# yum groupinstall -y "Desktop Platform Development"
# yum -y install bzip2-devel libmcrypt-devel
2、編譯安裝php-5.4.26
# tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
# ./configure --prefix=/usr/local/php5 --with-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
資料庫伺服器是另一臺單獨主機,所以編譯php時指定mysql的安裝位置時,需要設定為mysqlnd,同時顯式指出使用fpm模組
# make && make install
為php提供配置檔案:
# cp php.ini-production /etc/php.ini
3、配置php-fpm
為php-fpm提供SysV服務指令碼,並將其新增至服務列表
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
為php-fpm提供配置檔案:
# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
修改php-fpm的配置檔案:
# vim /usr/local/php5/etc/php-fpm.conf
啟用pid檔案,該選項的啟用位置在全域性配置段下方,並修改php-fpm監聽的地址,原監聽地址是127.0.0.1,需要改為可以與外部通訊的地址,設定如圖所示:
wKiom1PuImLh_oBZAADpt3J1d3E799.jpgwKioL1PuJAfSXFOFAAGTa4plD8A207.jpg
啟動服務:
# service php-fpm start
檢視服務監聽的埠:
wKioL1PuJIvQYeiJAACPMukSCa8343.jpg
可以看到php-fpm工作在9000埠,監聽的地址是192.168.1.134。
建立php頁面儲存目錄,存放php頁面檔案。
# mkdir /var/phpscript
# vim /var/phpscript/index.php;編輯php頁面檔案,內容如下圖:
wKioL1PuLjTyBe9mAADRws0kAc0042.jpg
php應用程式伺服器準備完畢。
三、安裝mariadb-5.5.39
1、準備資料存放的檔案系統,建立邏輯卷,用於資料庫存放資料。
建立一個磁碟分割槽,分割槽格式為LVM:
wKiom1PuJaHjdgAjAAESRSEN8xk174.jpg
# kpartx -af /dev/sda;通知核心重讀磁碟分割槽表
# partx -a /dev/sda;通知核心重讀磁碟分割槽表
# cat /proc/partitions;檢視核心識別分割槽情況
# pvcreate /dev/sda3
# vgcreate myvg /dev/sda3
# lvcreate -L 10G -n mylv myvg
# lvs;檢視lv建立結果
wKiom1PuJnKiazTDAAEDgb6-EmI820.jpg
# mke2fs -t ext4 /dev/myvg/mylv
# mkdir /mydata/data;建立用於儲存資料庫資料的目錄
# vim /etc/fstab;編輯fstab檔案,將/dev/myvg/mylv掛載至/mydata/data
wKioL1PuKFqCsdr0AAHB1sb5OEU907.jpg
# mount -a
2、新建用於以安全方式執行程式
# groupadd -r mysql
# useradd -g mysql -s /sbin/nologin -r mysql
# chown -R mysql:mysql /mydata/data
3、安裝初始化MariaDB-5.5.39
# tar xf mariadb-5.5.39-linux-x86_64.tar.gz
# cd /usr/local
# ln -sv mariadb-5.5.39-linux-x86_64 mysql
# cd mysql
# chown -R mysql:mysql .
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root .
4、為mariadb提供主配置檔案
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
# vim /etc/my.cnf;修改資料庫主配置檔案,新增資料存放的路徑:
wKioL1PuKdPg2bvOAAGKlYYDr84534.jpg
5、為MariaDB提供服務指令碼
# cd /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chown +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
6、mariadb安裝完成後續的配置工作:
輸出mariadb的man手冊,新增內容如圖:
# vim /etc/man.config
wKioL1PuKo2gNTfZAACU-UTQLwQ854.jpg
輸出mariadb標頭檔案
# ln -sv /usr/local/mysql/include /usr/include/mysql
輸出mariadb的庫檔案:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
# ldconfig;系統重新裝載庫檔案
修改PATH環境變數,使系統可以直接使用mariadb相關命令
# vim /etc/profile.d/mysql.sh
wKioL1PuK9aQ9_ykAACHXMGDtM8273.jpg
連線mysql,建立遠端連線使用者,用於測試資料庫連線:
# mysql
# CREATE USER tuser@'192.168.1.%' IDENTIFIED BY 'tpass';
現在三臺主機準備完畢,在apache伺服器上新增靜態頁面內容,在php伺服器上新增php頁面檔案用於測試:
在apache伺服器的站點根目錄下建立一個名稱為test.html的頁面檔案,編輯的內容如下圖:
wKiom1PuK-SQ_um0AABaWvHmaSg589.jpg
在瀏覽器內測試效果如下:
wKioL1PuLUPQlMQCAAE-Lf9wEBY641.jpg
測試php頁面訪問及資料庫的連線情況:
wKioL1PuL4fhQhhpAAFSBsO6FsY975.jpg
四、為php的應用伺服器新增xcache模組,支援opcode快取功能,xcache版本3.1.0。
1、編譯安裝xcache-3.1.0
# tar xf xcache-3.1.0.tar.bz2
# cd xcache-3.1.0
# /usr/local/php5/bin/phpize ;phpize是一個指令碼,用來為php擴充套件功能模組在編譯時生成configure配置檔案,該命令需要在準備的擴充套件模組解壓出來的原始碼目錄下執行,以便在該目錄下生成對應配置檔案。
wKiom1Pur-WTiUa2AADQdT52_oY709.jpg# ./configure --enable-xcache --with-php-config=/usr/local/php5/bin/php-config
wKioL1PusZ_RrGT0AAEFoFLN3o0792.jpg# make && make install;安裝結束後,會生成擴充套件模組的庫檔案。
wKiom1PusS_wP9J8AADGxMPQnDw614.jpg2、整合php和xcache:
將xcache提供的樣例配置檔案匯入到php的配置檔案目錄,之前編譯php指定的主配置檔案目錄為/etc/,主配置檔案的組成部分放置在/etc/php.d目錄下。
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d ;xcache.ini檔案在xcache的原始碼目錄中
# vim /etc/php.d/xcache.ini
修改zend引擎使用的擴充套件模組所在的具體目錄位置,/usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
wKioL1PutQmzqfKYAAC9AZRXA-c486.jpgxcache模組安裝完畢,重啟服務。
wKiom1PutUuzwejKAADIdb08T8w880.jpg
在php伺服器的/var/phpscripts目錄建立一個測試頁面,內容如下:
wKioL1Put5KgdkcQAAB2LaPhjhc103.jpg
在瀏覽器內訪問一下該頁面:
wKiom1PutqugIeciAAMWv-3Uxzc545.jpg使用ab命令測試php頁面 # ab -n 500 -c 20 http://192.168.1.132/test.php,效果如下圖:
wKioL1PuuJjBaejmAALsOjBpL6k441.jpg
php每秒鐘完成請求次數大約為160次。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28904215/viewspace-1252288/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx+LAMP(apache+php+mysql)NginxLAMPApachePHPMySql
- 基於ansibleRole實現批量部署lamp平臺LAMP
- LAMP全新安裝 Linux+Apache+MySQL+PHP+phpLAMPLinuxApacheMySqlPHP
- 一臺主機兩個顯示器獨立工作怎麼設定切換
- LAMP環境(linux+apache+mysql+php)配置LAMPLinuxApacheMySqlPHP
- Lamp(linux+apache+mysql+php)環境搭建LAMPLinuxApacheMySqlPHP
- 什麼是獨立IP,獨立IP主機怎麼樣?
- 5—-CentOS6.5原始碼搭建LAMP–基於module方式實現php(單臺機器)CentOS原始碼LAMPPHP
- 香港獨立ip主機費用
- Apache 配置各種虛擬主機實踐(轉)Apache
- 獨立IP主機建站更有助於網站最佳化網站
- 解析LAMP中Apache、php、mysql預設安裝路徑LAMPApachePHPMySql
- PHP開發大牛必修課——LAMP平臺搭建PHPLAMP
- Windows平臺的Apache各個版本區別WindowsApache
- 完成Ubuntu桌面版的Apache+php+mysql(手動配置LAMP)的全過程及實現細節UbuntuApachePHPMySqlLAMP
- 部署LAMP平臺LAMP
- [php]apache虛擬主機配置PHPApache
- Ubuntu14.04LAMP搭建(Apache2.47+MySQL5.5+PHP5.5)UbuntuLAMPApacheMySqlPHP
- PHP實踐之路(二)apache虛擬主機配置PHPApache
- 獨立主機相對於其他網站空間的優勢有哪些?網站
- virtualboxcentos7虛擬機器安裝lamp(apache+mysql5.5+php5.5+redis)CentOS虛擬機LAMPApacheMySqlPHPRedis
- CentOS 6.6安裝配置LAMP伺服器(Apache+PHP5+MySQL)CentOSLAMP伺服器ApachePHPMySql
- LAMP環境中Apache,MySQL,PHP的配置檔案路徑是什麼LAMPApacheMySqlPHP
- 理解動態網站的工作原理—平臺是PHP+APACH+MYSQL網站PHPMySql
- 網站使用獨立主機有什麼好處呢網站
- 虛擬主機,VPS主機,獨立伺服器三種有什麼不同伺服器
- 在Apache上實現多HTTPS虛擬主機ApacheHTTP
- 搭建PowerDNS+LAP+NFS+MySQL主從半節點同步實現LAMP架構DNSNFSMySqlLAMP架構
- LAMP(Linux+Apache+MySQL+PHP)(四)+Discuz+Redis+Mysql-proxy讀寫分離(centos7)LAMPLinuxApacheMySqlPHPRedisCentOS
- 跨境電商獨立站業務容易做嗎?如何選擇平臺?
- 淘寶二手平臺“閒魚”將拆分獨立運營
- 虛擬主機和獨立伺服器有什麼不同伺服器
- 同一臺linux主機同時安裝lamp和lnmpLinuxLAMPLNMP
- apache(包含虛擬主機)禁止使用IP訪問的實現方法Apache
- 轉:VNX儲存下,連線各平臺主機的Failover Mode 設定的引數AI
- LAMP平臺部署及應用(一)LAMP
- 國內最大獨立保險科技平臺水滴公司正式登陸紐交所
- AI智慧體服務平臺-智慧客服系統-獨立部署搭建AI智慧體