編譯安裝php和php擴充套件

2021-10-03 08:52:34 字數 2798 閱讀 8647

首先說明 yum和apt都是依賴管理工具,使用這兩種方法安裝的軟體無需處理依賴關係,而編譯安裝的軟體需要首先安裝它的依賴庫,否則裝不上,這篇文章只針對linux系統.

安裝必要的依賴庫

(1)ubuntu系列 apt-get install gcc autocnf libxml2-dev

(2)centos系列 yum install gcc gcc-c++ autocnf libxml2 libxml2-devel 

進入解壓的資料夾執行./configure --prefix=(指定路徑)通過--help檢視幫助可以攜帶更多引數

基於個人需要我的編譯引數 根據需要增減 這個專案夠用

'./configure' '--prefix=/www/server/php/72'

'--with-config-file-path=/www/server/php/72/etc' '-- enable-fpm'

'--with-fpm-user=www' '--with-fpm-group=www' '--enable-mysqlnd' '--with-mysqli=mysqlnd'

'--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype'

'--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml'

'--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem'

'--enable-inline-optimization' '--with-curl=/usr/local/curl' '--enable-mbregex'

'--enable-mbstring' '--enable-intl' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf'

'--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc'

'--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-opcache'

(注意) php已經不再支援mysql了 可以選擇pdo和mysqli  這裡--enable-mysqlnd支援了資料庫 如果不加這個連不上資料庫,後面的openssl curl之類的都是需要的 根據需要新增

make && make install(構建和安裝 建議分步進行好找錯誤)

php.ini中的display_errors = on讓錯誤資訊列印到頁面上

做乙份fpm 如果你用apache就忽略此步驟 

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm

修改fpm配置檔案(這裡是配置路徑 根據自己的修改一下)

cd /www/server/php/72/etc

cp php-fpm.conf.default php-fpm.conf //改個名

vim php-fpm.conf

去掉 pid=run/php-fpm.pid 前面的分號

cd php-fpm.d

cp www.conf.default www.conf //改個名

/etc/init.d/php-fpm start/stop/restart 啟動/停止/重啟

10.      如果你的php編譯安裝沒有考慮到mysql,選擇重新編譯pdo擴充套件

進入php/ext/pdo_mysql

./configure --with-php-config=/datas/soft/php72/bin/php-config --with-pdo-mysql=/usr/

make clean

make && make install

這裡的--with-pdo-mysql路徑如果是yum apt安裝的 這裡直接寫/usr/ 如果是編譯安裝的寫你安裝路徑即可

11.    此時編譯安裝已經完成了 如果需要的話可以配置環境變數

(1)在/etc/proflie下面新增 export path=$path:/usr/local/php/bin(你安裝的目錄)

(2)source /etc/profile 重新整理

(3)php -v驗證一下  

不過我一般使用 alias 就是起別名的方式 這樣我可以把多個php區分開

(1)進入~/.bashrc

(2) 加一行  alias php7='/www/server/bin/php'        

(3)source /~/.bashrc 重新整理

(4)php -v驗證一下 

12. 你以為這裡就結束了其實並沒有, 如果你需要編譯完成的php需要安裝某個擴充套件怎麼辦,

(1) 第一種方法進入ext下面尋找對應擴充套件, ./configure --with-php-config=你想新增擴充套件的php安裝路徑 然後 make && make install

(3) 安裝完之後在php.ini中新增一下, tips:有時候安裝完不用新增也能生效,這裡本人就不懂為什麼了

(4) 如果你的編譯有任何問題都不會通過,不過他在make的時候就會告訴你,一般都是缺少依賴導致的,安裝上即可

編譯安裝php擴充套件fileinfo

缺失了乙個php擴充套件php fileinfo,用yum安裝未果,後來找到安裝成功的方法,寫下備忘 伺服器的php版本是5.5,去php官網下了個同樣版本的壓縮包,上傳到 usr local src 操作如下 cd usr local src tar xzvf php 5.5.36.tar.gz ...

Linux編譯安裝php擴充套件

進入解壓後的php原始碼包目錄 cd usr local src php 7.2.7 然後再進入到裡面的ext目錄裡面對應的擴充套件目錄 這裡我列出自己編譯過的擴充套件 安裝好之後,需要到php.ini檔案裡面開啟對應的擴充套件 phpize找不到的話,用find查詢一下phpize,用絕對路徑 p...

PHP 編譯安裝event擴充套件

由於業務中用到了workerman框架,為了優化併發效能,決定安裝event擴充套件。伺服器上是原始碼安裝的php5.6。1.安裝libevent event擴充套件依賴於libevent,首先安裝。root wget c root tar zxvf libevent 2.1.8 stable.ta...