首頁 >後端開發 >PHP7 >編譯安裝PHP7.4(ubuntu)

編譯安裝PHP7.4(ubuntu)

จุ๊บ陈
จุ๊บ陈原創
2021-12-13 16:34:024297瀏覽

本篇文章由PHP7教學專欄來介紹一下關於怎麼編譯安裝PHP7.4(ubuntu)。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

下載PHP7.4原始碼套件

wget https://www.php.net/distributions/php-7.4.26.tar.gz

解壓縮

tar -zxvf php-7.4.26.tar.gz

安裝PHP依賴函式庫

apt-get install libxml2 libxml2-dev sqlite3 libsqlite3-dev libcurl3-dev libxml-dev

執行./configure

# cd 到php源码目录
./configure --prefix=/usr/local/php7 \
--with-config-file-path=/etc \
--with-fpm-user=test \
--with-fpm-group=test \
--with-curl --enable-fpm

注意:這裡只有很少的擴展,因為多的話編譯時間會很長。只是用來測試編譯安裝php,所以就沒有加入很多擴充。如果安裝完成後,後續想要加入更多擴展,又忘記了先前的編譯參數,可以在原始碼目錄 cat config.nice 就可以看到先前的編譯參數。然後加入新的參數重新編譯(別忘了先安裝擴充依賴函式庫)。
執行make && make install
執行make install 可加入 -j 參數,表示同時多個job工作,編譯速度會快一些。

make install -j 2

設定PHP環境變數

1. 開啟檔案

vim /etc/profile

2. 寫入內容

PATH=$PATH:/usr/local/php7/bin
export PATH

3. 使環境變數立即生效

source /etc/profile

4. 輸入php -v 沒有報錯,環境變數設定成功

設定檔

# 修改配置文件 
cd /usr/local/php7/etc 
cp php-fpm.conf.default php-fpm.conf 
cp php-fpm.d/www.conf.default php-fpm.d/www.conf  

# 修改pid文件位置
vim php-fpm.conf
# 添加这行
pid = /run/php-fpm.pid

# 创建php-fpm软链接  
ln -s /usr/local/php7/sbin/php-fpm /usr/sbin/php-fpm

#啟動停止php-fpm

# 启动 
/usr/sbin/php-fpm 
# 关闭 
kill -INT `cat /run/php-fpm.pid` 
# 重启 
kill -USR2 `cat /run/php-fpm.pid`

錯誤處理

#ERROR: [pool www] cannot get uid for user 'test'

1. 原因:由於前面編譯的時候設定了,php-fpm的使用者和使用者群組是test【隨便設定的】(--with-fpm-user=test --with-fpm-group= test),實際上這個使用者跟本不存在,有兩種處理辦法:

  • 建立使用者和使用者群組為test

  • ##修改php-fpm.conf將使用者和使用者群組設定為跟nginx或apache使用者群組一樣即可

  • # 打开php-fpm.conf 
    vim /usr/local/php7/etc/php-fpm.conf
    # 找到位置修改为(我nignx用户组是 www-data user = www-data) 
    group = www-data
2. ERROR: failed to retrieve TCP_INFO for socket: Protocol not available (92 )

#原因:我用的是windows下的linux子系統(ubuntu系統),不是完全虛擬的系統,會有一點問題,但不影響。在宿主機工作管理員查看php-fpm已經啟動了。

編譯安裝PHP7.4(ubuntu)

解決方案:修改php-fpm.conf

# 方法1: 
listen = /run/php-fpm.sock 
# 方法2 设置 
log_level = alert

新增守護程式##

# PHP源码里有自带的服务脚本,只需要复制到/etc/init.d 目录,加上执行权限就可以了。
# 要注意保持 /usr/local/php7/etc/php-fpm.conf 里面的 pid 文件位置是初始值。原来的是 pid = run/php-fpm.pid
# 在源码目录执行
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
systemctl daemon-reload

# 使用方法与上面相同,也可以使用 systemctl
service php-fpm start 
service php-fpm stop 
service php-fpm restart 
service php-fpm status
# 或者
systemctl start php-fpm
systemctl stop php-fpm
systemctl restart php-fpm
systemctl status php-fpm

以上是編譯安裝PHP7.4(ubuntu)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn