首頁 後端開發 PHP8 一步步教你如何搭建php8環境(附常見問題解決方法)

一步步教你如何搭建php8環境(附常見問題解決方法)

Oct 21, 2022 pm 04:27 PM
php8

這篇文章由php8教學專欄給大家詳細介紹如何一步一步搭建php8環境,希望對大家有幫助。

一、下載

1、https://www.php.net/distributions/php-8.0.0.tar.gz下載到本機,檔案傳輸上傳到/usr/local /src/

2、wget -P /usr/local/src/ https://www.php.net/distributions/php-8.0.0.tar.gz

#二、解壓縮、編譯、安裝

1、解壓縮

> cd /usr/local/src/
> tar xzf php-8.0.0.tar.gz
> cd php-8.0.0
登入後複製

2、設定編譯參數,參考https://www.php.net/manual/zh... 選擇自己需要的選項

./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8/etc --with-fpm-user=www --with-fpm-group=www --with-curl --with-openssl --with-mysqli --with-pdo-mysql --with-iconv --with-mhash --with-zlib  --enable-mbstring  --enable-gd   --enable-gd-jis-conv --enable-sockets --enable-fpm --enable- --enable-xml  --enable-pdo  --enable-cli --enable-pcntl --enable-soap --enable-opcache --enable-fileinfo --disable-rpath --enable-mysqlnd --with-zip --enable-simplexml --with-libxml --with-sqlite3 --with-pdo-sqlite --enable-phar --enable-tokenizer --enable-cgi
登入後複製

問題1:

configure: error: Package requirements (libxml-2.0 >= 2.9.0) were not met:
Package 'libxml-2.0', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBXML_CFLAGS
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
登入後複製

問題1解決:

> yum install libxml2-devel
登入後複製

問題2:

configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
登入後複製

問題2解決:##

> yum install sqlite-devel
登入後複製

問題3:

configure: error: Package requirements (libcurl >= 7.29.0) were not met:
登入後複製

問題3解決:

> yum install libcurl-devel
登入後複製

問題4:

configure: error: Package requirements (libpng) were not met:
登入後複製

問題4解決:

> yum install libpng libpng-devel
登入後複製

問題5:

configure: error: Package requirements (oniguruma) were not met:
登入後複製

問題5解決:

> cd /usr/local/src/
> wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic/liboniguruma5-6.9.6-alt1.x86_64.rpm -O liboniguruma5-6.9.6-alt1.x86_64.rpm
> rpm -ivh liboniguruma5-6.9.6-alt1.x86_64.rpm
> wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic/liboniguruma-devel-6.9.6-alt1.x86_64.rpm -O liboniguruma-devel-6.9.6-alt1.x86_64.rpm 
> rpm liboniguruma-devel-6.9.6-alt1.x86_64.rpmcli
登入後複製

問題6:

configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:
登入後複製

問題6解決:

> yum install libzip libzip-devel
登入後複製

配置編譯參數成功

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+
Thank you for using PHP.
登入後複製

3、編譯原始碼

> make -j2 # 這裡是依賴系統cpu核心數進行編譯,對效能有一定提升,通常利用核心數不要超過一半,

4、安裝

make install
登入後複製

安裝成功

[root@54skyer php-8.0.0]# make install
Installing shared extensions:     /usr/local/php8/lib/php/extensions/no-debug-non-zts-20200930/
Installing PHP CLI binary:        /usr/local/php8/bin/
Installing PHP CLI man page:      /usr/local/php8/php/man/man1/
Installing PHP FPM binary:        /usr/local/php8/sbin/
Installing PHP FPM defconfig:     /usr/local/php8/etc/
Installing PHP FPM man page:      /usr/local/php8/php/man/man8/
Installing PHP FPM status page:   /usr/local/php8/php/php/fpm/
Installing phpdbg binary:         /usr/local/php8/bin/
Installing phpdbg man page:       /usr/local/php8/php/man/man1/
Installing PHP CGI binary:        /usr/local/php8/bin/
Installing PHP CGI man page:      /usr/local/php8/php/man/man1/
Installing build environment:     /usr/local/php8/lib/php/build/
Installing header files:          /usr/local/php8/include/php/
Installing helper programs:       /usr/local/php8/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php8/php/man/man1/
  page: phpize.1
  page: php-config.1
/usr/local/src/php-8.0.0/build/shtool install -c ext/phar/phar.phar /usr/local/php8/bin/phar.phar
ln -s -f phar.phar /usr/local/php8/bin/phar
Installing PDO headers:           /usr/local/php8/include/php/ext/pdo/
登入後複製

5、新增環境變數

> vim /etc/profile # 在文件末尾加入
# PATH=$PATH:/usr/local/php8/bin/
# export PATH
# :wq 保存并退出
> source /etc/profile # 立刻生效配置
> php -v # 获得如下信息

php -v
PHP 8.0.0 (cli) (built: Dec 15 2020 02:46:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
登入後複製

6、取得預設設定

// 复制php.ini到编译配置参数指定的目录。php.ini在解压的源码目录里
> cp /usr/local/src/php-8.0.0/php.ini-production /usr/local/php8/etc/php.ini
// 复制一份php-fpm的配置模版文件到同级目录 方便备份和修改
> cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
// 复制一份php-fpm的扩展配置模板文件到同级目录 方便备份和修改
> cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
// 复制开启自起脚本到系统启动自动加载脚本目录。fpm/init.d.php-fpm在解压的源码目录里
> cp /usr/local/src/php-8.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
登入後複製

7、開機自啟動

設定指令可執行

> chmod +x /etc/init.d/php-fpm # 添加可执行权限
登入後複製

檢驗自啟動腳本

> service php-fpm start # 检验服务启动
> service php-fpm stop # 检验服务关闭
// 均正常提示
> chkconfig php-fpm on # 设置开机自动执行php-fpm开机自启动脚本
> reboot # 重启,ssh重连
# 重启后
[root@54skyer ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1097/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1061/sshd           
tcp        0      0 0.0.0.0:16379           0.0.0.0:*               LISTEN      1090/redis-server 0 
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      1083/php-fpm: maste
登入後複製

7、額外說明

關於設定檔的一些說明

php-fpm.conf是PHP-FPM特有的設定檔

php.ini是所有php模式中必須的設定檔

兩者的差異是,php-fpm.conf是PHP-FPM進程管理器的設定文件,php. ini是PHP解析器的設定檔

有的PHP版本的設定檔路徑中還有/fpm.d/www.conf設定檔

這是php-fpm.conf設定的文件的擴展文件,可以打開php-fpm.conf文件查看

; include=fpm.d/*.conf
登入後複製

我們可以使用php-fpm.conf配置慢日誌

#我們是可以開啟慢日誌功能的。

slowlog = /usr/local/var/log/php-fpm.log.slow
request_slowlog_timeout = 5s
登入後複製

以上是一步步教你如何搭建php8環境(附常見問題解決方法)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

php5和php8有什麼差別 php5和php8有什麼差別 Sep 25, 2023 pm 01:34 PM

php5和php8的差異在效能、語言結構、型別系統、錯誤處理、非同步程式設計、標準函式庫函數和安全性等方面。詳細介紹:1、效能提升,PHP8相對於PHP5來說在效能方面有了巨大的提升,PHP8引入了JIT編譯器,可以對一些高頻執行的程式碼進行編譯和最佳化,從而提高運行速度;2、語言結構改進,PHP8引入了一些新的語言結構和功能,PHP8支援命名參數,允許開發者透過參數名稱而不是參數順序等等。

php8怎麼加mysql擴展 php8怎麼加mysql擴展 Oct 07, 2023 pm 03:31 PM

php8加mysql擴充的步驟有:1.安裝MySQL客戶端函式庫;2、安裝PHP 8的開發工具;3、下載MySQL擴充原始碼;4、編譯和安裝MySQL擴充;5、啟用MySQL擴充;6、重啟Web伺服器即可。

圖文詳解apache2.4+php8.0的安裝設定方法 圖文詳解apache2.4+php8.0的安裝設定方法 Dec 06, 2022 pm 04:53 PM

本文為大家介紹如何安裝apache2.4,以及如何設定php8.0,文中附有圖文詳細步驟,以下就帶大家一起看看怎麼安裝設定apache2.4+php8.0吧~

php8怎麼連接資料庫 php8怎麼連接資料庫 Nov 16, 2023 pm 02:41 PM

PHP8可以使用mysqli和PDO來連接資料庫。詳細介紹:1、使用mysqli連接資料庫,透過傳入資料庫伺服器名稱、使用者名稱、密碼和資料庫名稱來連線。然後,使用`connect_error`屬性來檢查連線是否成功,如果連線失敗,則輸出錯誤訊息。最後,透過呼叫`close()`方法關閉連線;2、使用PDO連線資料庫,透過傳入資料庫伺服器名稱、密碼和資料庫名稱來進行連線等等。

php8資料類型怎麼轉換 php8資料類型怎麼轉換 Nov 16, 2023 pm 02:51 PM

php8資料型別的方法有字串轉換為整數、整數轉換為字串、字串轉換為浮點數、浮點數轉換為字串、陣列轉換為字串、字串轉換為陣列、布林值轉換為整數、整數轉換為布林值和變數類型判斷和轉換。詳細介紹:1、字串轉換為整數包括intval()函數和(int)強制型別轉換;2、整數轉換為字串包括strval()函數和(string)強制型別轉換;3、字串轉換為浮點數等等。

一文深入了解 PHP 8 中的 JIT 一文深入了解 PHP 8 中的 JIT Apr 25, 2022 pm 08:46 PM

這篇文章帶大家了解一下PHP 8 的 JIT,並聊聊JIT 是怎麼參與解釋流程的,希望對大家有幫助!

php8到底有哪些效能提升 php8到底有哪些效能提升 Dec 21, 2023 pm 02:44 PM

php8提高的效能包括:1、JIT編譯器的引進;2、函數呼叫的最佳化;3、垃圾回收機制的改進;4、型別系統的改良;5、新的語言特性;6、最佳化字串處理; 7.改進數組處理;8、引入新的記憶體管理機制;9、最佳化程式碼產生。詳細介紹:1、JIT編譯器的引入,PHP8引入了JIT編譯器,這是一種動態編譯技術,能夠將PHP程式碼轉換為機器碼,以便更有效率地執行;2、函數呼叫的最佳化等等。

php8有什麼特性 php8有什麼特性 Dec 21, 2023 pm 02:54 PM

php8的特性:1、JIT編譯器;2、命名參數;3、聯合型別;4、註解;5、建構子屬性提升;6、match表達式;7、nullsafe運算子;8、改進型別系統;9 、錯誤處理改進;10、一致性改進。詳細介紹:1、JIT編譯器,PHP8引入了即時編譯技術,將PHP程式碼編譯成本機機器碼,從而提高程式的執行速度;2、命名參數,PHP8支援命名參數,允許在函數呼叫時使用參數名稱等等。

See all articles