ubuntu 12 04 編譯 安裝PHP

2021-06-20 07:25:44 字數 3365 閱讀 6711

php-5.5.8.tar.gz 

2.安裝

解壓後進入解壓目錄,執行

(其中,--prefix選項指定了安裝目錄;--with-mysql選項指定了支援的mysql服務所在的目錄;--with-apxs2選項指定了 php要使用的apache應用所在的目錄;--with-config-file-path選項則是指定了php配置檔案所在的目錄。)

直接這樣執行後,將會看到這樣乙個錯誤:

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

與編譯mysql時相同,這是由於系統缺少php所需的庫檔案導致的,根據提示,進行如下操作:

sudo apt-get install libxml2

將會看到如下資訊:

libxml2 libxml2-dev libxml2-headers libxml2-utils

這裡需要安裝的是libxml2-dev軟體包(該軟體為ubuntu-server自帶的,需要使用ubuntu-server光碟安裝),操作如下:

sudo apt-get install libxml2-dev

3.配置

庫檔案安裝完成後,重新配置php,操作如下:

4.完成編譯安裝

編譯完成後將會看到「thank you for using php.」的字樣,表明php已經配置成功了。

接下來編譯、安裝php,操作如下:

sudo make

sudo make install

5.配置apache伺服器

安裝完php後,還需要手動修改一下apache的配置,以便使apache支援php,操作如下:

此外,不要忘了將php安裝目錄中的php.ini-recommended檔案拷貝到編譯時指定的php配置檔案目錄/opt/php/etc下,在php原始碼包目錄「php-5.2.6」中操作如下:

cd /usr/local/src/php-5.5.8

sudo cp php.ini /usr/local/development/php/etc/php.ini

全部配置完成後,不要忘了重啟apache,以便使新的配置生效。

sudo /etc/init.d/apachectl restart

6.完成測試

<?php

phpinfo();

?>

儲存退出後,在瀏覽器中輸入「http://ip/index.php」,如果配置正確,就能夠看到剛剛配置好的伺服器相關資訊了,其中包括 apache、mysql以及php的版本、安裝路徑、配置情況等。如果看到的只是「phpinfo();」字樣,說明apache沒能正確支援php,請檢查上述的配置過程是否都已經正確完成。  

7.特別說明

在php配置過程中有

配置命令列中有 --with-mysql=/usr/include/mysql

此時出現如下錯誤

configure: 

error

: cannot find 

mysql header

files under /usr/include/

mysql

網上查到如下方式解決(此方式未成功,在此僅作為記錄)

sudo apt-get install libmysqlclient-dev 安裝此軟體開發包

然後在/usr/include/mysql裡可以找到mysql.h      (也可以用#find / -name mysql.h命令搜尋)        

編譯的時候 gcc xx.c -o xx -l /usr/include/mysql -l mysqlclient

最終解決方案

即使用如下配置引數

--with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd --with-pdo-mysql=mysqlnd

原因說明:

php5.3以後,php無需指定mysql編譯路徑了

mysqlnd是php5.3以後加入的mysql系列擴充套件。

由於版權問題,php5中沒有預設支援mysql,不像以前的php4那樣可以直接使用mysql函式。mysql支援還需要把libmysql.dll複製到windows目錄,然後修改php.ini等等,比較麻煩。

它是新的函式庫,libmysql有的功能它幾乎都有,但是mysqlnd並不像libmysql那樣作為通用庫,它是專門為php而寫的乙個庫,用了php的內在管理函式以及一些網路流的函式。

php最近發布了5.3版本,在該版本當中,提供了乙個mysqlnd庫,用來訪問mysql資料庫,大大提公升了php的資料庫訪問效能。

我們知道,php訪問mysql資料庫,是通過mysql資料庫的libmysql client庫,這個libmysql client是用c/c++編寫的,雖然一直以來php通過libmysql訪問資料庫效能也一直很好,但是卻無法利用php本身的很多特性。

mysqlnd提供了和zend引擎高度的整合性,更加快速的執行速度,更少的記憶體消耗,利用了php的stream api,以及客戶段快取機制。由於mysqlnd是透過zend引擎,因此提供提供更多高階特性,以及有效利用zend進行加速。

ubuntu 12 04 編譯安裝 nginx

編譯前先安裝兩個包 直接編譯安裝會碰到缺少pcre等問題,這時候只要到再安裝兩個包就ok sudo apt get install libpcre3 dev aptitude libssl dev這樣再make install就可以成功了 執行如下操作來安裝openssl及其開發函式庫 sudo a...

Ubuntu1204 編譯安裝Ice3 5 0

花了一下午在 ubuntu1204 下編譯安裝ice3.5.0,過程比較順利,和以前編譯vlc什麼的比起來,得算是愉快的經歷了。回想一下由兩個原因,一是第三方依賴庫少 我只編譯了cpp 所以只有5個依賴庫 第二是第三方依賴庫要麼可以通過apt get輕鬆獲得,要麼直接提供原始碼 且原始碼可以直接編譯...

ubuntu12 04安裝攻略

之前 在vmware下安裝ubuntu12.04 64位系統,各種問題,又換成32位的,所有軟體都要重新來查詢,這裡記錄一下,以備以後還要用。二 在vmware 中新建乙個新的虛擬機器,選擇安裝映象檔案 安裝完ubuntu,登陸之後出現黑屏,有可能是3d加速被開啟了,關閉方法為 開啟虛擬機器配置檔案...