您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關ubuntu如何編譯安裝PHP7.4的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
下載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已經啟動了。
解決辦法:修改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
感謝各位的閱讀!關于“ubuntu如何編譯安裝PHP7.4”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。