這篇文章給大家分享的是有關(guān)ubuntu如何編譯安裝PHP7.4的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
10年積累的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有閔行免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
下載PHP7.4源碼包
wget https://www.php.net/distributions/php-7.4.26.tar.gz
解壓
tar -zxvf php-7.4.26.tar.gz
安裝PHP依賴(lài)庫(kù)
apt-get install libxml2 libxml2-dev sqlite3 libsqlite3-dev libcurl3-dev libxml-dev
運(yùn)行./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
注意:這里只有很少的擴(kuò)展,因?yàn)槎嗟脑?huà)編譯時(shí)間會(huì)很長(zhǎng)。只是用于測(cè)試編譯安裝php,所以就沒(méi)有加入很多擴(kuò)展。如果安裝完成后,后續(xù)想要加入更多擴(kuò)展,又忘記了之前的編譯參數(shù),可以在源碼目錄 cat config.nice 就可以看到以前的編譯參數(shù)。然后加入新的參數(shù)重新編譯(別忘了先安裝擴(kuò)展依賴(lài)庫(kù))。
運(yùn)行make && make install
運(yùn)行make install 可加入 -j 參數(shù),表示同時(shí)多個(gè)job工作,編譯速度會(huì)快一些。
make install -j 2
設(shè)置PHP環(huán)境變量
1. 打開(kāi)文件
vim /etc/profile
2. 寫(xiě)入內(nèi)容
PATH=$PATH:/usr/local/php7/bin export PATH
3. 使環(huán)境變量立即生效
source /etc/profile
4. 輸入php -v 沒(méi)有報(bào)錯(cuò),環(huán)境變量設(shè)置成功
配置文件
# 修改配置文件 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 # 創(chuàng)建php-fpm軟鏈接 ln -s /usr/local/php7/sbin/php-fpm /usr/sbin/php-fpm
啟停php-fpm
# 啟動(dòng) /usr/sbin/php-fpm # 關(guān)閉 kill -INT `cat /run/php-fpm.pid` # 重啟 kill -USR2 `cat /run/php-fpm.pid`
錯(cuò)誤處理
ERROR: [pool www] cannot get uid for user 'test'
1. 原因:由于前面編譯的時(shí)候設(shè)置了,php-fpm的用戶(hù)和用戶(hù)組是test【隨便設(shè)置的】(--with-fpm-user=test --with-fpm-group=test),實(shí)際上這個(gè)用戶(hù)跟本不存在,有兩種處理辦法:
創(chuàng)建用戶(hù)和用戶(hù)組為test
修改php-fpm.conf將用戶(hù)和用戶(hù)組設(shè)置為跟nginx或者apache用戶(hù)組一樣即可
# 打開(kāi)php-fpm.conf vim /usr/local/php7/etc/php-fpm.conf # 找到位置修改為(我nignx用戶(hù)組是 www-data user = www-data) group = www-data
2. ERROR: failed to retrieve TCP_INFO for socket: Protocol not available (92)
原因:我用的是windows下的linux子系統(tǒng)(ubuntu系統(tǒng)),不是完全虛擬的系統(tǒng),會(huì)有一點(diǎn)問(wèn)題,但是不影響。在宿主機(jī)任務(wù)管理器查看php-fpm已經(jīng)啟動(dòng)了。
解決辦法:修改php-fpm.conf
# 方法1: listen = /run/php-fpm.sock # 方法2 設(shè)置 log_level = alert
添加守護(hù)進(jìn)程
# PHP源碼里有自帶的服務(wù)腳本,只需要復(fù)制到/etc/init.d 目錄,加上執(zhí)行權(quán)限就可以了。 # 要注意保持 /usr/local/php7/etc/php-fpm.conf 里面的 pid 文件位置是初始值。原來(lái)的是 pid = run/php-fpm.pid # 在源碼目錄執(zhí)行 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
感謝各位的閱讀!關(guān)于“ubuntu如何編譯安裝PHP7.4”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!