模塊安裝 PHP 編譯環境:gcc gcc-c++ pcre-devel openssl-devel libxml2 libxml2-devel bzip bzip-devel 1、解壓縮安裝包 tar xf php-5.0.5.tar.bz2 2、安裝的選項 ./configure --prefi ...
模塊安裝---PHP
編譯環境:gcc gcc-c++ pcre-devel openssl-devel libxml2 libxml2-devel bzip bzip-devel
1、解壓縮安裝包
tar xf php-5.0.5.tar.bz2
2、安裝的選項
./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
--with-mysql=/usr/local/mysql :告訴mysql在什麼地方
--with-openssl :能夠支持openssl功能
--with-mysqli=/usr/local/mysql/bin/mysql_config :這是一種讓php與mysql交互的介面
--enable-mbstring :讓php支持各種語言
--with-freetype-dir :自由的可移植的字體庫,能夠引用特定字體
--with-jpeg-dir :支持圖片的
--with-png-dir :支持圖片的
--with-zlib :互聯網上通用格式的壓縮庫(我們的數據文件先壓縮後發送)
--with-libxml-dir=/usr :擴展標記語言庫
--enable-xml :支持擴展標記語言
--enable-sockets :讓你的php支持基於套接字的通信
--with-apxs2=/usr/local/apache/bin/apxs :將它編譯成Apache的模塊,把這一項改為--enable-fpm :啟用fastCGI模式。
--with-mcrypt :支持加密功能 ,額外的加密庫
--with-config-file-path=/etc :php配置文件的目錄
--with-config-file-scan-dir=/etc/php.d :
--with-bz2 :壓縮庫
--enable-maintainer-zts :加不加這一項,得看Apache,若為perfork模型不用加,若為event模型或work就要加這一項。
安裝中出現的錯誤可以去百度搜!
安裝完成之後進行 make && make install
3、php的配置文件
在安裝目錄中有兩個主配置文件
php.ini-development:一個用於開發環境
php.ini-production:一個用於生產環境
放在/etc目錄下,名稱為php.ini即可!
cp php.ini-production /etc/php.ini
配置好配置文件之後不要啟動,因為把他編譯成Apache模塊!
4、編譯安裝完成之後,文件在/usr/local/php/,這裡面提供的都是一些基本文件。
bin :php的命令行工具
etc :為php的其他的子項目所提供的配置文件的存放路徑
include :頭文件
lib :庫文件
php :php幫助手冊
var :
php本身已經安裝好了
在第二行已經說明,php的serverAPI模塊,他為我們的Apache2添加了一個處理器,讓Apache2可以以模塊化的方式調用php!
安裝路徑在第7行叫‘libphp5.so’
5、php與apache結合
到此php本身的配置已經可以了,下麵配置是php與Apache結合起來使用
這得需要修改Apache的配置文件來實現
首先得讓Apache能夠處理php結尾的配置文件
編輯Apache的主配置文件,在AddType這裡添加一行
AddType appkication/x-httpd-php .php --->支持php結尾的文件
AddType appkication/x-httpd-php-source .phps --->支持phps的文件
6、同時,我們的Apache也應該有php結尾的頁面
修改為<IfModule dir_module>
DirectoryIndex index.html index.php --->支持HTML的頁面同時支持php的頁面
</IfModule>
修改完成之後重新啟動!
7、切換到我們的網頁預設目錄
cd /usr/local/apache/htdocs/
更改網頁文件名稱: mv index.html index.php
更改內容:
fastcgi---PHP(獨立安裝)
(1)編譯安裝php
tar xf php-5.6.10.tar.bz2
cd php-5.6.10
./configure --prefix=/usr/local/php --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-libxml-dir=/usr --with-openssl --with-zlib --with-bz2 --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --with-mcrypt --enable-sockets --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-maintainer-zts
提示:
yum -y install bison-devel gcc gcc-c++ bison-devel libxml2-devel openssl-devel bzip2 bzip2-devel
一、安裝gcc 由於是獨立的主機 需要配置環境 yum -y install gcc
二、 –with-mysql幾個選項都要為mysqlnd;因為mysql伺服器單獨為另一臺主機
三、為了支持apache的worker或event這兩個MPM,編譯時使用了–enable-maintainer-zts選項。
四、error: xml2-config not found. Please check your libxml2 installation.安裝libxml2-devel yum -y install libxml2-devel
五、 error: Cannot find OpenSSL's <evp.h> 安裝openssl openssl-devel
六、Please reinstall the BZip2 distribution。 安裝bzip2 bzip2-devel .yum install bzip2 bzip2-devel
七、 error: mcrypt.h not found. Please reinstall libmcrypt.安裝 libmcrypt libmcrypt-devel 這個需要註意,因為一般的yum源中是沒有
這2個package的,所以需要先對其下載安裝。
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz獲取文件
安裝libmcrypt
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure –prefix=/usr/local/libmcrypt
make && make install
安裝完畢。
此時需要將php安裝的命令中修改 --with-mcrypt=/usr/lib/libmcrypt即可。
make && make install 即可。
(2)配置php
cp php.ini-production /etc/php.ini
配置fpm
為php-fpm提供Sysv init腳本,並將其添加至服務列表:
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
chkconfig –list php-fpm
為php-fpm提供配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
編輯php-fpm的配置文件:
vim /usr/local/php/etc/php-fpm.conf
配置fpm的相關選項為你所需要的值,並啟用pid文件(如下最後一行):
listen = 192.168.2.139:9000 指定埠
pm = dynamic 動態創建進程
pm.max_children = 50 最多多少個進程同時線上
pm.start_servers = 5 剛開始啟動伺服器時啟動幾個進程
pm.min_spare_servers = 2 最小幾個空閑進程
pm.max_spare_servers = 8 最多有幾個空閑
;pm.max_requests = 500 最多一次性接受多少請求
pid = /usr/local/php/var/run/php-fpm.pid
接下來就可以啟動php-fpm了:
service php-fpm start
可以使用netstat -tunlp 查看 9000埠
(3)連接Apache
修改配置php-fpm的文件vim /usr/local/php/etc/php-fpm 定位到listen =192.168.197.204:9000(本地主機ip地址)
在該主機上新建虛擬主機目錄用於存放網頁文件
mkdir -pv /var/www/{frank,frankstar,kelly,kellystar}
(4)配置apache虛擬主機使用php
vim /etc/httpd/httpd.conf
註釋 #DocumentRoot "/usr/local/apache/htdocs"
並打開啟用 Include /etc/httpd/extra/httpd-vhosts.conf
同時定位 AddType;添加下麵兩行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
並且定位至DirectoryIndex
<IfModule dir_module>
DirectoryIndex index.php index.html #添加index.php(最好添加在最前面)
</IfModule>
還要啟用proxy_module proxy-fcgi_module等
LoadModule proxy_module modules/mod_proxy.so #開啟
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #開啟
(5)編輯虛擬主機 路徑/etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache/www/frank"
ServerName www.frank.com
ErrorLog "/usr/local/apache/logs/frank.error_log"
CustomLog "/usr/local/apache/logs/frank.access_log" combined
ProxyRequests off #關閉正向代理
ProxyPassMatch ^/(.*.php)$ fcgi://192.168.197.204:9000/var/www/frank/$1
<Directory "/usr/local/apache/www/frank"> 授權
Options none
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
然後在php伺服器上的/var/www/目錄下分別建立網頁文件,重啟服務即可。
(6)為了提高php的性能安裝Xcache
在php伺服器中安裝,Xcache官網下載: http://xcache.lighttpd.net/wiki/Release-3.2.0 這裡使用xcache-3.2.0支持php-5.6-10的穩定版
tar xf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
/usr/local/php/bin/phpize
提示:
如果出現 Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
需要安裝yum -y install m4 autoconf即可
然後./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
安裝完畢後會出現這麼一行 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
編輯php.ini,整合php和xcache:
首先將xcache提供的樣例配置導入php.ini
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d
說明:xcache.ini文件在xcache的源碼目錄中。
接下來編輯/etc/php.d/xcache.ini,找到extension開頭的行,修改為如下行:
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
註意:如果php.ini文件中有多條extension指令行,要確保此新增的行排在第一位。
然後重啟服務即在phpinfo的頁面中就可看見xcache的選項了。