糾結(jié)了好幾天,還是做出來吧。LAMP這幾個東西搭配起來干活,還是部署比較方便的。
10年積累的網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有南皮免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
php和httpd結(jié)合的方式有兩種,一種module,即php作為httpd的一部分運行,默認(rèn)安裝方式就是模塊方式。第二種就是fpm,可以單獨運行。因為工作環(huán)境多為centos 6,所以在6上做。
安裝前提示
1.事先準(zhǔn)備好開發(fā)環(huán)境,安裝 "Development tools" "Server Platform Development"
安裝順序:1.MySQL或者h(yuǎn)ttpd 2.php-fpm,因為php依賴前兩個程序
1.mysql 此處使用二進(jìn)制格式包安裝
安裝包:mysql-5.6.14-linux-glibc2.5-x86_64.tar
# useradd -r mysql 創(chuàng)建系統(tǒng)用戶mysql,一般事先都會存在 # tar xf mysql-5.6.14-linux-glibc2.5-x86_64.tar -C /usr/local/ 解壓二進(jìn)制包 # cd /usr/local/ # ln -sv mysql-5.6.14-linux-x86_64 mysql 創(chuàng)建軟鏈接,可以多次使用 # cd mysql # chown -R root:mysql ./* 改變mysql目錄下內(nèi)容用戶組 # mkdir -pv /mydata/data /mydata/data 作為mysql數(shù)據(jù)文件存放位置 # chown -R mysql.mysql /mydata/data # scripts/mysql_install_db --user=mysql --datadir=/mydata/data --skip_name_resolve # cp support-files/my-large.cnf /etc/my.cnf 主配置文件 # vim /etc/my.cnf [mysqld] 編輯mysqld配置段 ....... datadir = /mydata/data skip_name_resolve = ON 阻止反解地址 innodb_file_per_table = ON 此時還不能用mysql直接登錄,那就要去找可執(zhí)行文件,就去bin # echo "export PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh # cp support-files/mysql.server /etc/rc.d/init.d/mysqld 設(shè)置啟動服務(wù) # chkconfig --add mysqld 加入開機(jī)啟動 # service mysqld start # ss -tnl 查看3306 是否啟動
2.安裝httpd-2.4
源碼包:httpd-2.4.10.tar.bz2
apr 和 apr-util也可以編譯安裝
~]# yum install pcre-devel openssl-devel libevent-devel apr-devel apr-util-devel -y 安裝需要的開發(fā)包,不然./configure不停的報錯,缺這缺那,還不一起告知,一個一個來 # ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --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/local/apr --with-apr-util=/usr/local/apr-util # make -j 4 # make install # echo 'export PATH=/usr/local/apache2/bin:$PATH' > /etc/profile.d/httpd.sh # . /etc/profile.d/httpd.sh 把a(bǔ)pahectl 加入PATH,每次開機(jī)就可使用 # apachectl start httpd-2.4 啟動 # ss -tnl 查看80端口是否啟動
附加:cp /usr/local/bin/apachectl /etc/rc.d/init.d/httpd ,可以支持stop 和start選項
--sysconfdir=/etc/httpd -->生成主配置文件
3.編譯安裝php5
前兩部分都相同,此處可有兩種方式
編譯安裝php5:php-5.4.40.tar.bz2
模塊安裝和fpm安裝使用同一個包
安裝:
(1) 作為httpd的模塊安裝: # ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-openssl --enable-mbstring --enable-xml --enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/etc/php.ini --with-config-file-scan-dir=/etc/php.d/ # make -j 4 # && make install 注意:如果mpm為線程模型,則需要額外使用--enable-maintainer-zts 復(fù)制配置文件: # cp php.ini-production /etc/php.ini 編譯php為httpd的模塊后,整合php至httpd: 編譯httpd.conf,添加: DirectoryIndex index.php index.html AddType application/x-httpd-php .php ************************************************************************************* ************************************************************************************* ************************************************************************************* (2) 安裝為fpm:php-fpm 可以獨立啟動,和模塊安裝的區(qū)別就是加了 --enable-fpm 選項 此處坑好多: --enable-mbstring --with-mcrypt 搞了半天才裝上 # ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-openssl --enable-mbstring --enable-xml --enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt --enable-fpm --with-config-file-path=/etc/php.ini --with-config-file-scan-dir=/etc/php.d/ # make -j 4 # && make install # mv /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php/php-fpm.conf php-fpm主配置文件 # /usr/local/php5/sbin/php-fpm 此處為php-fpm的服務(wù)可執(zhí)行文件直接執(zhí)行即可 # echo 'export PATH=/usr/local/php5/sbin/:$PATH' > /etc/profile.d/php-fpm.sh 將php-fpm路徑寫入環(huán)境變量 *** # pkill php-fpm 關(guān)閉php-fpm,ss -tnl 發(fā)現(xiàn)9000端口沒有了
全部編譯成功??梢匀ハ乱粋€坑玩耍受虐了。好開心
********************************************************************************
測試一下是否能正常工作,做個虛擬主機(jī),進(jìn)行下反向代理
要使用fcgi反向代理需要啟用兩個模塊
php-fpm:FastCGI Process Manager
fpm
1.客戶端請求URL到達(dá)httpd
2.httpd上的fcgi反代模塊至fpm
3.fpm找資源
靜態(tài)資源
httpd處理
動態(tài)資源
httpd中有一個fcgi模塊。進(jìn)行反向代理至fpm,將客戶端送達(dá)的
RL從httpd轉(zhuǎn)交給fpm,fpm創(chuàng)建子進(jìn)程進(jìn)行處理,
不在一臺主機(jī)的情況
fpm監(jiān)聽動態(tài)資源所在主機(jī)
httpd監(jiān)聽靜態(tài)資源所在主機(jī)
fcgi協(xié)議協(xié)議:
***啟用httpd:proxy_module, proxy_fcgi_module,不然httpd -t 檢測ProxyRequests會報錯
ProxyRequests Off
ProxyPass
ProxyPassMatch ^(URL-PATTERN)$ fcgi://FCGI-SERVER:PORT/PATH/TO/DIR/$1
#vim /etc/httpd/httpd.conf #DocumentRoot 注釋掉中心主機(jī) ServerName www.lh.com:80 去掉# DirectoryIndex index.php index.html 可以識別多種后綴主頁 LoadModule proxy_module modules/mod_proxy.so 去掉前面的注釋#,啟用這兩個模塊 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 下面直接把虛擬主機(jī)配置段放在httpd.conf中 <VirtualHost *:80> ServerName www.lh.com DocumentRoot "/web/lh" <Directory "/web/lh"> Options None AllowOverride None Require all granted </Directory> ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/lh/$1 吧 ProxyPassMatch ^/(pm-status|ping)$ fcgi://127.0.0.1:9000/$1 DirectoryIndex index.php index.html </VirtualHost> #mkdir -pv /web/lh #vim /web/lh/index.php <h2>真麻煩啊</h2> <?php phpinfo(); ?>
然后激動地打開瀏覽器,輸入本機(jī)IP地址,能不能休息就看這下子了
居然亂碼了,看來中文支持的包沒裝,但是調(diào)用的Server API FPM/FCGI出現(xiàn)了,就夠了,老子去睡覺了
分享文章:CnetOS6.8編譯安裝LAMP以及fcgi虛擬主機(jī)
文章路徑:http://www.rwnh.cn/article22/jijijc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、營銷型網(wǎng)站建設(shè)、、企業(yè)建站、企業(yè)網(wǎng)站制作、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)