溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CnetOS 6.8 編譯安裝LAMP以及fcgi虛擬主機(jī)

發(fā)布時間:2020-06-21 00:12:55 來源:網(wǎng)絡(luò) 閱讀:540 作者:鍵盤敲爛 欄目:web開發(fā)

  糾結(jié)了好幾天,還是做出來吧。LAMP這幾個東西搭配起來干活,還是部署比較方便的。

  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 把apahectl 加入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地址,能不能休息就看這下子了


CnetOS 6.8 編譯安裝LAMP以及fcgi虛擬主機(jī)CnetOS 6.8 編譯安裝LAMP以及fcgi虛擬主機(jī)

居然亂碼了,看來中文支持的包沒裝,但是調(diào)用的Server API FPM/FCGI出現(xiàn)了,就夠了,老子去睡覺了



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI