溫馨提示×

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

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

LAMP編譯安裝只PHP以模塊化的方式工作

發(fā)布時(shí)間:2020-05-23 17:09:45 來(lái)源:網(wǎng)絡(luò) 閱讀:582 作者:liruitmac 欄目:web開發(fā)

  

  php在apache下一般有三種工作方式:CGI,Apache模塊,F(xiàn)astCGI

在CGI模式下,如果用戶請(qǐng)求一個(gè)php文件,web服務(wù)器就會(huì)調(diào)用php解析器去解析這個(gè)文件,然后把結(jié)果返回給客戶端。

在apache模塊模式下,將php解析器作為了apache的一個(gè)模塊,這樣php解析器就與web服務(wù)器一起運(yùn)行。

在fastcgi模式下,web服務(wù)器不會(huì)像cgi那樣每次都啟動(dòng)一個(gè)新的進(jìn)程,而是將內(nèi)容傳遞到一個(gè)已有的進(jìn)程中(這個(gè)進(jìn)程在web服務(wù)器啟動(dòng)時(shí)就開啟了,而且不會(huì)退出),這個(gè)進(jìn)程就會(huì)一次次的處理來(lái)自客戶端的請(qǐng)求。

  這里我們將演示以模塊化的方式工作的LAMP。安裝的流程是

 httpd--->mariadb--->php--->phpMyadmin--->Xcache

一.編譯安裝httpd,我們這里的編譯安裝都是在CentOS6環(huán)境下進(jìn)行的。

編譯前的環(huán)境準(zhǔn)備:

apr-1.5.0.tar.bz2--->apr-util-1.5.3.tar.bz2---> httpd-2.4.10.tar.bz2

httpd-2.4.10編譯過(guò)程也要依賴于pcre-devel軟件包,需要事先安裝。

包組:Development tools ,Server Platform Development

接下來(lái)我們就可以進(jìn)行編譯了:

 1,編譯 apr-1.5.0.tar.bz2

 yum groupinstall "Devlopment Tools" "Server Platform Development" -y
 yum install pcre-devel
[root@localhost tmp]# tar xf apr-1.5.0.tar.bz2 
[root@localhost tmp]# cd apr-1.5.0
[root@localhost apr-1.5.0]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.0]# make && make install

 2,編譯 apr-util-1.5.3.tar.bz2



[root@localhost tmp]# tar -xf apr-util-1.5.3.tar.bz2 
[root@localhost tmp]# cd apr-util-1.5.3
[root@localhost apr-util-1.5.3]# ./c
configure  crypto/    
[root@localhost apr-util-1.5.3]# ./configure --prefix=/usr/loacl/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.5.3]# make && make install

3,編譯 httpd-2.4.10.tar.bz2

[root@localhost tmp]# tar -xf httpd-2.4.10.tar.bz2 
[root@localhost tmp]# cd httpd-2.4.10
[root@localhost httpd-2.4.10]# ./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
[root@localhost httpd-2.4.10]# make && make install




這樣的話我們的httpd-2.4就編譯完成了

[root@localhost ~]# vim /etc/profile.d/httpd24.sh
export PATH=/usr/local/apache/bin:$PATH
   
[root@localhost ~]# vim /etc/profile.d/httpd24.sh
[root@localhost ~]# . /etc/profile.d/httpd24.sh
[root@localhost ~]# echo $PATH
/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# clear
[root@localhost ~]# cd /etc/rc.d/init.d/  
[root@localhost init.d]# cp httpd httpd24
[root@localhost init.d]# vim httpd24

 


為httpd24提供的腳本中,我們只需要修改一下

LAMP編譯安裝只PHP以模塊化的方式工作

接著我們把httpd24加到服務(wù)中去,然后啟動(dòng)就可以了

[root@localhost httpd]# chkconfig --add httpd24
[root@localhost httpd]# chkconfig httpd24 on
[root@localhost httpd]# chkconfig --list httpd24
httpd24        0:off1:off2:on3:on4:on5:on6:off


修改httpd的主配置文件,設(shè)置其Pid文件的路徑

編輯/etc/httpd/httpd.conf,添加如下行即可:

PidFile  "/var/run/httpd/httpd.pid"

LAMP編譯安裝只PHP以模塊化的方式工作

LAMP編譯安裝只PHP以模塊化的方式工作

二.編譯安裝mariadb,我們這里使用的是mariadb的通用二進(jìn)制包來(lái)編譯。

1、準(zhǔn)備數(shù)據(jù)存放的文件系統(tǒng)

新建一個(gè)邏輯卷,并將其掛載至特定目錄即可。這里不再給出過(guò)程。

這里假設(shè)其邏輯卷的掛載目錄為/mydata,而后需要?jiǎng)?chuàng)建/mydata/data目錄做為mysql數(shù)據(jù)的存放目錄。

[root@localhost tmp]# tar -xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local
[root@localhost tmp]# cd /usr/local
[root@localhost local]# ln -sv mariadb-5.5.43-linux-x86_64/  mysql
`mysql' -> `mariadb-5.5.43-linux-x86_64/'


2、新建用戶以安全方式運(yùn)行進(jìn)程:


# groupadd -r mysql ###創(chuàng)建系統(tǒng)組
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql 
# chown -R mysql:mysql /mydata/data 
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
I                         #####指明數(shù)據(jù)庫(kù)位置在/mydata/data


3.接著我們要為數(shù)據(jù)庫(kù)提供主配置文件

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# cp support-files/my-large.cnf  /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y


并修改此文件中thread_concurrency的值為你的CPU個(gè)數(shù)乘以2,比如這里使用如下行:

thread_concurrency = 2

另外還需要添加如下行指定mysql數(shù)據(jù)文件的存放位置:

datadir = /mydata/data

4.位數(shù)據(jù)庫(kù)提供服務(wù)腳本

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/m
mdmonitor   messagebus  mysqld      
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld 
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig --list mysqld
mysqld         0:off1:off2:on3:on4:on5:on6:off
[root@localhost mysql]#


接下來(lái),啟動(dòng)服務(wù),看是否能啟動(dòng)成功

[root@localhost ~]# service mysqld start
Starting MySQL............... SUCCESS!


我們要給數(shù)據(jù)庫(kù)安全初始化

[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# . mysql_secure_installation ###安全初始化


至此,我們的數(shù)據(jù)編譯完畢。

三,編譯PHP

1、解決依賴關(guān)系:


請(qǐng)配置好yum源(系統(tǒng)安裝源及epel源)后執(zhí)行如下命令:

# yum -y groupinstall "Desktop Platform Development" ###這個(gè)需要配置本地yum源

# yum -y install bzip2-devel libmcrypt-devel libxml2-devel##這個(gè)需要配置epl源

2.接著我們安裝下面的步驟進(jìn)行就OK

# tar xf php-5.4.26.tar.bz2

# cd php-5.4.26

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts

 注意:這里為了支持apache的worker或event這兩個(gè)MPM,編譯時(shí)使用了--enable-maintainer-zts選項(xiàng)。

# make && make install

為php提供配置文件:

# cp php.ini-production /etc/php.ini


3、 編輯apache配置文件httpd.conf,以apache支持php

 

 # vim /etc/httpd24/httpd.conf

  (1)添加如下二行

   AddType application/x-httpd-php  .php

   AddType application/x-httpd-php-source  .phps


 (2)定位至DirectoryIndex index.html 

   修改為:

    DirectoryIndex  index.php  index.html


而后重新啟動(dòng)httpd,或讓其重新載入配置文件即可測(cè)試php是否已經(jīng)可以正常使用。

LAMP編譯安裝只PHP以模塊化的方式工作

LAMP編譯安裝只PHP以模塊化的方式工作

有上面可以看到我們的三者的結(jié)合是成功的,所以LAMP編譯完成。接下來(lái)我們來(lái)部署phpadmin圖形化工具



[root@localhost tmp]# unzip phpMyAdmin-4.4.14.1-all-languages.zip 
[root@localhost tmp]# cp -a phpMyAdmin-4.4.14.1-all-languages /usr/local/apache/htdocs/
[root@localhost tmp]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# ls
index.php  phpMyAdmin-4.4.14.1-all-languages
[root@localhost htdocs]# mv phpMyAdmin-4.4.14.1-all-languages/ pma
[root@localhost pma]# cp config.sample.inc.php config.inc.php 
[root@localhost pma]# vim config.inc.php 
$cfg['blowfish_secret'] = 'seijoiefhsidfhidjfidsf';這里的隨機(jī)子串可以自己填寫也可以隨機(jī)生成
[root@localhost pma]# cd /usr/local/mysql/bin/
[root@localhost bin]# . mysql_secure_installation ###安全初始化,給root用戶設(shè)置密碼。

LAMP編譯安裝只PHP以模塊化的方式工作四,安裝xcache,為php加速:



[root@localhost tmp]# tar -xf xcache-3.1.2.tar.gz 
[root@localhost tmp]# cd xcache-3.1.2
[root@localhost xcache-3.1.2]# /usr/local/php/bin/php
php         php-cgi     php-config  phpize      
[root@localhost xcache-3.1.2]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
[root@localhost xcache-3.1.2]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
[root@localhost xcache-3.1.2]# make && make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
[root@localhost xcache-3.1.2]# mkdir /etc/php.d
[root@localhost xcache-3.1.2]# cp xcache.ini /etc/php.d
[root@localhost xcache-3.1.2]# vim /etc/php.d/xcache.ini
extension =/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

LAMP編譯安裝只PHP以模塊化的方式工作

上圖可知xcache已經(jīng)加入到PHP中去了,現(xiàn)在可以做壓力測(cè)試看看效果。

[root@lirui ~]# ab -c 200 -n 10000  http://192.168.1.101/pma

LAMP編譯安裝只PHP以模塊化的方式工作

LAMP編譯安裝只PHP以模塊化的方式工作

忘記在便宜xcache做壓力測(cè)試了,不過(guò),前面沒(méi)做,這種效果也可以從上圖可以看出。

 到此就完了,寫的有些凌亂,日后有時(shí)間在修改吧

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

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

AI