Ubuntu11.10 源碼編譯安裝PHP5.3.8

 

1、 準備php

   環境:64位 Ubuntu 11.10html

   服務器: Nginx 1.1.13mysql

   下載PHP源碼:本文使用5.3.8版本nginx

  

2、 安裝git

# tar zxvf php5.3.8.tar.gz # cd php5.3.8 # ./configure         --prefix=/usr/local/php5
        --with-config-file-path=/usr/local/php5/etc
        --with-curl
        --with-pear
        --with-gd
        --with-jpeg-dir         --with-png-dir         --with-zlib
        --with-xpm-dir         --with-freetype-dir         --with-t1lib
        --with-mcrypt
        --with-mhash
        --with-mysql         --with-mysqli
        --with-pdo-mysql         --with-openssl
        --with-xmlrpc
        --with-xsl
        --with-bz2
        --with-gettext
        --with-fpm-user=xiaoxiao
        --with-fpm-group
        --enable-fpm
        --enable-exif
        --enable-wddx
        --enable-zip
        --enable-bcmath
        --enable-calendar
        --enable-ftp
        --enable-mbstring
        --enable-soap
        --enable-sockets
        --enable-sqlite-utf8
        --enable-shmop
        --enable-dba
        --enable-sysvmsg
        --enable-sysvsem
        --enable-sysvshm


出現得錯誤以下:github

錯誤一:sql

configure: error: xml2-config not found. Please check your libxml2 installation.ubuntu

而我已經安裝過了libxml2,可是仍是有這個提示:vim

解決辦法:api

# sudo apt-get install libxml2-dev

 

錯誤二:

configure: error: Please reinstall the BZip2 distribution

而我也已經安裝了bzip2,網上找到得解決方案都是須要安裝bzip2-dev,但是11.10裏面沒有這個庫。

解決辦法:在網上找到bzip2-1.0.5.tar.gz,解壓,直接make ,sudo make install.(我使用的該源來自於http://ishare.iask.sina.com.cn/f/9769001.html)

 

錯誤三:

configure: error: Please reinstall the libcurl distribution -easy.h should be in <curl-dir>/include/curl/

解決辦法:

# sudo apt-get install libcurl4-gnutls-dev

 

錯誤四:

configure: error: jpeglib.h not found.

解決辦法:

# sudo apt-get install libjpeg-dev

 

錯誤五:

configure: error: png.h not found.

解決辦法:

# sudo apt-get install libpng-dev

 

錯誤六:

configure: error: libXpm.(a|so) not found.

解決辦法:

# sudo apt-get install libxpm-dev

 

錯誤七:

configure: error: freetype.h not found.

解決辦法:

# sudo apt-get install libfreetype6-dev

 

錯誤八:

configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.

解決辦法:

# sudo apt-get install libt1-dev 

 

錯誤九:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解決辦法:

# sudo apt-get install libmcrypt-dev

 

錯誤十:

configure: error: Cannot find MySQL header files under yes.

Note that the MySQL client library is not bundled anymore!

解決辦法:

# sudo apt-get install libmysql++-dev

 

錯誤十一:

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

解決辦法:

# sudo apt-get install libxslt1-dev

可見PHP源碼安裝以前須要先安裝這些依賴,詳細可見http://forum.ubuntu.org.cn/viewtopic.php?f=88&t=231159

如上錯誤都解決以後,再次./config....沒有錯誤以後,

# make # sudo make install

3、 配置

   php-fpm是一個php fastCGI得管理器,在PHP5.3.X已經集成了這個東西,因此咱們能夠省去本身裝這個得麻煩了,只要配置一下就能夠。

   先將相關得配置文件都拷貝到php5/etc目錄下(該目錄是我得配置文件存放目錄),主要涉及有:

      一、php-fpm配置文件:php源目錄/sapi/fpm/php-fpm.conf.in

      二、php-fpm啓動文件:php源目錄/sapi/fpm/init.d.php-fpm.in

      三、php自己配置文件:php源目錄/php.ini-development  php源目錄/php.ini-production

      若是須要保存一份原始得文件,那麼就將以上文件另外cp一份出來,若是是不保存的,那麼以上文件cp到etc下就直接改名爲本身須要的。我是保留了一份在etc目錄下。

     如今php5/etc目錄下有以下格式配置文件:

     php-fpm.conf   init.d.php-fpm   php.ini    pear.conf(安裝完成以後就有該文件)

    

    首先:配置php-fpm.conf文件:

    1、pid配置

    ;pid=run/php-fpm.pid

   將前面得;號去掉,能夠後面得路徑能夠根據本身得需求配置一個路徑。

    2、log配置

   ;error-log=log/php-fpm.log

   log的配置能夠根據本身的需求是否開啓及存放位置

   3、listen 配置

   listen=127.0.0.1:9000

   這個配置主要注意端口不要衝突,我在配置這個的時候採用的是網上說的socket方式,配置以下:

   listen=/usr/local/php5/var/run/php-fpm.socket

   而後在/usr/local/php5/var/run/該目錄下創建該文件,注意權限須要

   其餘項的配置能夠根據本身的需求更改,配置項的說明在這能夠看到:http://www.php.net/manual/en /install.fpm.configuration.php。同時在github上有一份比較完整可用的配置:https://github.com /vladgh/VladGh.com/blob/master/php-fpm.conf   能夠做爲參考。


    其次:配置init.d.php-fpm

   改文件做爲啓動文件,須要配置的就是在開頭位置的幾個變量值,包括:

   一、php_fpm_BIN:指向安裝好的php目錄/sbin/php-fpm

   二、php_fpm_CONF:指向安裝好的php目錄/etc/php-fpm.conf  {若是該配置文件你不是叫這個名字,跟這裏應該爲你真是得配置名}

   三、php_fpm_PID:這裏指向php-fpm的pid存放路徑。

   完成以後,將該文件拷貝到/etc/init.d目錄下,本文是採用創建軟連接的方式:

# sudo ln -s /usr/local/php5/etc/init.d.php-fpm /etc/init.d/php-fpm # sudo update-rc.d -f php-fpm defaults

 

     而後:配置php

     我是拿的php.ini- development,幾乎不用配置

 

    最後:配置nginx.conf

     完成上面以後,須要配置nginx可運行php,以下配置:

    Server{}下:

     1、root html: 該項配置指明腳本程序的目錄,本文是設置爲root  /home/www

     2、識別.php文件:

location / {
            index  index.html index.htm index.php;
        }

     3、解析php腳本:這塊只要將註釋」#」去掉就好。

location ~ \.php$ {
       fastcgi_pass  unix:/usr/local/php5/var/run/php-fpm.socket; #127.0.0.1:9000;        fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       include  fastcgi_params;

   }

    注意:fastcgi_pass 這裏,後面跟php-fpm.conf中配置得listen一致,在listen中我是配置了socket方式,因此這裏也這樣配。

    啓動服務:

# sudo /etc/init.d/nginx restart # sudo /etc/init.d/php-fpm start

在網頁中輸入localhost,就能夠看到啦:

 若是有須要,能夠添加爲系統路徑中:

# sudo vim /etc/bash.bashrc //在最後添加以下 if [ -d "/usr/local/php5/bin" ] && [ -d "/usr/local/php5/sbin" ]; then
        PATH="$PATH:/usr/local/php5/bin:/usr/local/php5/sbin"

fi

 

4、虛擬機配置

    nginx的虛擬機配置其實挺簡單的,打開nginx.conf  在http{}中加入 include /usr/local/nginx/conf/virtual_sites.conf;(也能夠是文件夾下的文件如sites/*.conf)

而後在virtual_sites.conf中配置須要得虛擬機:

server {
    listen       80;
    server_name  p9.xxx;
    root         /home/www/p9/www;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/usr/local/php5/var/run/php-fpm.socket;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_index  index.php;
        include        fastcgi_params;
    }
}

 

而後綁定p9.xxx到hosts中便可。一份可用的虛擬機配置也許是這樣的http://wiki.nginx.org/NginxVirtualHostExample

相關文章
相關標籤/搜索