爲httpd2.4.x編譯安裝php模塊

前面咱們已經編譯安裝了httpd服務,那麼如今,咱們就來編譯php吧~~php

php簡介html

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸取了C語言、Java和Perl的特色,利於學習,使用普遍,主要適用於Web開發領域。mysql

跟web服務的結合主要可使用CGI、apache module、fcgi的方式結合,CGI由於效率問題已經算是被淘汰的技術了,而將php做爲apache module的話,配置相對簡單,但效率不是最好的,由於apache再加載靜態資源的時候也會加載php-module,而將php以fcgi的方式貌似成爲了如今的主流選擇,這篇文章主要記錄下編譯Php做爲apache模塊的步驟。linux

下載phpweb

訪問php的官方網站,能夠看到如今主要有三個分支5.6.x 7.0.x 7.1.x,我選擇5.6.x來編譯。sql

cd ~
wget http://hk1.php.net/distributions/php-5.6.31.tar.gz

配置並編譯apache

先安裝兩個包 yum install libxml2-devel openssl-devel ,這兩個包在後面編譯會被依賴。app

tar -xf php-5.6.31.tar.gz 
cd php-5.6.31
./configure --prefix /usr/local/php56 --with-apxs2=/usr/local/httpd24/bin/apxs  --with-config-file-path=/etc/ --with-config-file-scan-dir=/etc/php.d --with-libxml-dir --with-openssl --with-zlib --enable-mbstring --with-mysql
make -j 2 && make install
  • --prefix /usr/local/php56 //設置安裝路徑
  • --with-apxs2=/usr/local/httpd24/bin/apxs //指定apache2的apxs程序,此程序是用來編譯apache模塊的
  • --with-config-file-path=/etc/ //在哪裏加載php.ini文件
  • --with-config-file-scan-dir=/etc/php.d //在哪裏掃描額外的php配置
  • --with-libxml-dir //啓用libxml ,雖然不知道幹什麼的...可是看着順眼就啓用了
  • --with-openssl //啓用openssl支持
  • --with-zlib //啓用zlib支持
  • --enable-mbstring //啓用mbstring支持
  • --with-mysql //啓用mysql支持

關於這些選項能夠執行./configure --help查看幫助,由於小弟是個菜鳥,因此不少東西沒啓用抱歉
或者你也能夠在生產環境中的phpinfo()函數中得到編譯選項,以下圖所示
爲httpd2.4.x編譯安裝php模塊爲httpd2.4.x編譯安裝php模塊函數

注意:如遇下面報錯請執行make clean 後再編譯便可學習

libtool: link: `ext/date/php_date.lo' is not a valid libtool object

建立php配置文件

cp php.ini-development /etc/php.ini  //此文件在源碼目錄下
mkdir /etc/php.d/

修改apache配置

1.檢查httpd.conf中是否加載了相應模塊,這裏程序應該幫咱們加過了

LoadModule php5_module modules/libphp5.so

2.添加以下配置到httpd.conf

SetHandler application/x-httpd-php

3.重啓httpd服務

apachectl restart

測試

1.在web目錄下建立test.php文件

echo "< ?php phpinfo() ?>" > /usr/local/httpd24/htdocs//test.php      //這裏填相應的web根目錄便可

2.訪問 http://IP/tset.php
爲httpd2.4.x編譯安裝php模塊爲httpd2.4.x編譯安裝php模塊

編譯php擴展模塊

php源碼包中有一個ext目錄,這裏存放了全部當前版本可用的擴展模塊,若是在編譯時沒有爲php啓用某些支持,能夠編譯擴展模塊來額外添加支持。

1.編譯模塊

cd /root/php-5.6.31/ext/mcrypt
export PATH=$PATH:/usr/local/php56/bin/  //這裏我臨時改下PATH環境變量,推薦加入到配置文件中
phpize 
./configure 
make 
make install

看到相似以下提示即說明安裝成功
Installing shared extensions: /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/

2.修改配置

修改php.ini 將其extension-dir修改到咱們安裝的這個目錄

echo "extension_dir = \"/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/\"" >> /etc/php.ini
echo "extension=mcrypt.so"  >> /etc/php.ini

3.測試

重啓httpd

apachectl restart

再次訪問phpinfo頁面,看到以下圖即爲安裝成功
爲httpd2.4.x編譯安裝php模塊爲httpd2.4.x編譯安裝php模塊

原文來自:http://100ye.wang/linux/httpd-make-php.html

本文地址:http://www.linuxprobe.com/httpd-make-php.html

相關文章
相關標籤/搜索