【工具安裝】-CentOS源碼安裝php5.6

來源:互聯網
上載者:User

        伺服器安裝的是6.3版本的CentOS,預設內建的php版本是5.3,版本過低,致使最新的開源架構不能正常運行,想要運行最新的開源架構就必須升級php版本,但是伺服器上有很多舊的系統在運行,如果強行升級php那麼舊系統會有一些相容性的錯誤,比如:mysql和mysqli、系統自訂函數的更改等等,所以想要相容新舊系統最好的方法就是新增高版本的php環境,即:同一個linux系統掛載多個版本的php。接下來討論如何使用源碼安裝php5.6。


一、php安裝

下載PHP源碼包

[root@web1 dede]# wget http://cn2.php.net/distributions/php-5.6.0.tar.xz[root@web1 dede]# xz -d php-5.6.0.tar.xz[root@web1 dede]# tar xvf php-5.6.0.tar[root@web1 dede]# cd php-5.6.0

1.1 安裝相依元件 需要安裝的依賴包如下列表,如果系統已經內建了這些依賴包,則可以略過一些安裝項,另外也可以在configure過程中尋找未安裝的依賴項,逐個進行安裝。

gcc
bison
bison-devel
zlib-devel
libmcrypt-devel
mcrypt
mhash-devel
openssl-devel
libxml2-devel
libcurl-devel
bzip2-devel
readline-devel
libedit-devel
sqlite-devel

安裝方法如下:

[root@web1 dede]# yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel
Note:安裝後不一定能夠使用,因為php版本不同對上面所需要的依賴包的版本也不一樣,根據configure過程中產生的錯誤碼來決定安裝的依賴包版本即可。
1.2 建立www使用者 www使用者是php5.6預設的系統管理使用者,建立該系統使用者,否則在啟動時會報錯,提示沒有php使用者,添加方法如下:
[root@web1 dede]# groupadd www[root@web1 dede]# useradd -g www -s /sbin/nologin -M www
1.3 編譯安裝

[root@web1 php5.6.0]# ./configure \--prefix=/usr/local/php56 \--with-config-file-path=/usr/local/php56/etc \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-shared \--enable-opcache \--enable-fpm \--with-fpm-user=www \--with-fpm-group=www \--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-gettext \--enable-mbstring \--with-iconv \--with-mcrypt \--with-mhash \--with-openssl \--enable-bcmath \--enable-soap \--with-libxml-dir \--enable-pcntl \--enable-shmop \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \--enable-sockets \--with-curl \--with-zlib \--enable-zip \--with-bz2 \--with-readline

安裝的參數說明:
""" 安裝路徑 """--prefix=/usr/local/php56 \""" php.ini 設定檔路徑 """--with-config-file-path=/usr/local/php56/etc \""" 最佳化選項 """--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-shared \""" 啟用 opcache,預設為 ZendOptimizer+(ZendOpcache) """--enable-opcache \""" FPM """--enable-fpm \--with-fpm-user=www \--with-fpm-group=www \""" MySQL """--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \""" 國際化與字元編碼支援 """--with-gettext \--enable-mbstring \--with-iconv \""" 加密擴充 """--with-mcrypt \--with-mhash \--with-openssl \""" 數學擴充 """--enable-bcmath \""" Web 服務,soap 依賴 libxml """--enable-soap \--with-libxml-dir \""" 進程,訊號及記憶體 """--enable-pcntl \--enable-shmop \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \""" socket & curl """--enable-sockets \--with-curl \""" 壓縮與歸檔 """--with-zlib \--enable-zip \--with-bz2 \""" GNU Readline 命令列快速鍵綁定 """--with-readline

Note:依賴包要同時安裝依賴包的本身,以及該依賴包的開發版,例如:zlib和zlib-devel。配置過程中可能會出現一些問題,主要是依賴包沒有安裝開發板,或者安裝的依賴包版本過低導致的,更多編譯參數請使用 ./configure --help 查看。

1.4 編譯安裝

[root@web1 php5.6.0]# make[root@web1 php5.6.0]# make install
在編譯過程中也會遇到很多問題,導致這些問題主要是configure的配置項與開發環境衝突,根據衝突內容以及configure的help來解決衝突即可。
如果想重新安裝:

[root@web1 php5.6.0]# make clean[root@web1 php5.6.0]# make clean all[root@web1 php5.6.0]# ./configure ...[root@web1 php5.6.0]# make[root@web1 php5.6.0]# make install


1.5 配置 PHP 配置php.ini檔案:

[root@web1 php5.6.0]# cp php.ini-development /usr/local/php56/etc/php.ini

配置:php-fpm.conf

[root@web1 php5.6.0]# cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf[root@web1 php5.6.0]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm56[root@web1 php5.6.0]# chmod +x /etc/init.d/php-fpm56
啟動 php-fpm
[root@web1 php5.6.0]# service php-fpm56 start

php-fpm 可用參數 start|stop|force-quit|restart|reload|status


二、linux配置說明


      ./configure的作用是檢測系統配置,產生makefile檔案,以便你可以用make和make install來編譯和安裝程式。


2.1 configure

       這一步一般用來產生 Makefile,為下一步的編譯做準備,你可以通過在 configure 後加上參數來對安裝進行控制,比如代碼:./configure –prefix=/usr 意思是將該軟體安裝在 /usr 下面,執行檔案就會安裝在 /usr/bin (而不是預設的 /usr/local/bin),資源檔就會安裝在 /usr/share(而不是預設的/usr/local/share)。同時一些軟體的設定檔你可以通過指定 –sys-config= 參數進行設定。有一些軟體還可以加上 –with、–enable、–without、–disable 等等參數對編譯加以控制,你可以通過允許 ./configure –help 察看詳細的說明協助。
2.2 make

       這一步就是編譯,大多數的原始碼包都經過這一步進行編譯(當然有些perl或python編寫的軟體需要調用perl或python來進行編譯)。如果 在 make 過程中出現 error ,你就要記下錯誤碼(注意不僅僅是最後一行),然後你可以向開發人員提交 bugreport(一般在 INSTALL 裡有提交地址),或者你的系統少了一些依賴庫等,這些需要自己仔細研究錯誤碼。
2.3 make install

      這條命令來進行安裝(當然有些軟體需要先運行 make check 或 make test 來進行一些測試),這一步一般需要你有 root 許可權(因為要向系統寫入檔案)。
Linux的使用者可能知道,在Linux下安裝一個應用程式時,一般先運行指令碼configure,然後用make來編譯來源程式,在運行make install,最後運行make clean刪除一些臨時檔案。使用上述三個自動工具,就可以產生configure指令碼。運行configure指令碼,就可以產生Makefile檔案,然後就可以運行make、make install和make clean。
      configure是一個shell指令碼,它可以自動設定來源程式以符合各種不同平台上Unix系統的特性,並且根據系統三數及環境產生合適的Makefile檔案或是C的標頭檔(header file),讓來源程式可以很方便地在這些不同的平台上被編譯串連。
     這時,就可運行configure指令碼了,運行configure指令碼,就可產生出符合GNU規範的Makefile檔案了:

$ ./configure
     到此時,就可以運行make進行編譯,在運行make install進行安裝了,最後運行make clean刪除臨時檔案。
$ make$ make install           (註:運行這個要有足夠的許可權)$ make clean

     利用configure所產生的Makefile檔案有幾個預設的目標可供使用,其中幾個重要的簡述如下:
     make all:產生我們設定的目標,即此範例中的可執行檔。只打make也可以,此時會開始編譯原始碼,然後連結,並且產生可執行檔。
     make clean:清除編譯產生的可執行檔及目標檔案(object file,*.o)。

     make distclean:除了清除可執行檔和目標檔案外,把configure所產生的Makefile也清除掉。
     make install:將程式安裝至系統中。如果原始碼編譯無誤,且執行結果正確,便可以把程式安裝至系統預設的可執行檔存放路徑。如果用bin_PROGRAMS宏的話,程式會被安裝至/usr/local/bin這個目錄。
     make dist:將程式和相關的檔案封裝成一個壓縮檔以供發布。執行完在目錄下會產生一個以PACKAGE-VERSION.tar.gz為名稱的檔案。 PACKAGE和VERSION這兩個變數是根據configure.in檔案中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定義。在此範例中會產生test-1.0.tar.gz的檔案。
     make distcheck:和make dist類似,但是加入檢查封裝後的壓縮檔是否正常。這個目標除了把程式和相關檔案封裝成tar.gz檔案外,還會自動把這個壓縮檔解開,執行 configure,並且進行make all 的動作,確認編譯無誤後,會顯示這個tar.gz檔案可供發布了。這個檢查非常有用,檢查過關的包,基本上可以給任何一個具備GNU開發環境-的人去重新編譯。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.