PHP是使用最廣泛的服務(wù)器端編程語言之一。有許多流行的CMS和框架,例如WordPress,Magento和Laravel都是用PHP編寫的。
PHP 8.1是PHP語言的最新主要版本。它引入了一些重大更改,性能改進(jìn)以及許多新功能,例如命名參數(shù),JIT編譯器,聯(lián)合類型,匹配表達(dá)式等。
時(shí)至今天,主流的HTTP服務(wù)器已不是Apache,我們推薦使用Nginx作為HTTP服務(wù)器,Nginx相對(duì)于Apache來說簡單且性能更好。
本教程將向您展示如何在Ubuntu 20.04安裝PHP 8.1并將其與Nginx集成。在撰寫本文時(shí),默認(rèn)的Ubuntu 20.04存儲(chǔ)庫包括PHP 7.4版本。
安裝 PHP 8.1
我們將從ondrej/php的PPA存儲(chǔ)庫中安裝PHP。升級(jí)或安裝PHP 8之前,請(qǐng)確保您的應(yīng)用程序支持它。
Ond?ejSury維護(hù)著一個(gè)包含多個(gè)PHP版本的存儲(chǔ)庫。請(qǐng)運(yùn)行下面的命令安裝PHP 8.1。
終端將會(huì)提示你是否繼續(xù)的消息,Press [ENTER] to continue or Ctrl-c to cancel adding it.。按Enter鍵回車即可。
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.1-fpm
安裝 PHP擴(kuò)展
PHP擴(kuò)展是已編譯的動(dòng)態(tài)庫,它擴(kuò)展了PHP的核心功能。PHP擴(kuò)展程序作為軟件包提供,可以通過apt
安裝PHP擴(kuò)展。
按照慣例PHP擴(kuò)展的通常是以php開頭,接著是版本號(hào),然后是-
和擴(kuò)展名稱。這是通用的格式php8.1-[extname]
。
并不是所有php擴(kuò)展都可以通過apt命令進(jìn)行安裝,Apt倉庫僅提供常用PHP擴(kuò)展,某些擴(kuò)展可能需要自己手動(dòng)編譯。
例如,要安裝MySQL和GD擴(kuò)展,您可以運(yùn)行命令sudo apt install php8.1-mysql php8.1-gd
。
在安裝PHP擴(kuò)展之后,請(qǐng)不要忘記重啟Apache或PHP-FPM服務(wù),否則新的PHP擴(kuò)展不會(huì)加載到PHP-FPM。運(yùn)行命令sudo systemctl restart php8.1-fpm
。
最后運(yùn)行命令sudo systemctl status php8.1-fpm
打印PHP-FPM服務(wù)的狀態(tài)信息,驗(yàn)證是否成功重啟PHP-FPM。
sudo apt update
sudo apt install php8.1-fpm php8.1-mysql php8.1-gd
sudo systemctl restart php8.1-fpm
sudo systemctl status php8.1-fpm
● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-12-03 16:10:47 UTC; 6s ago
配置 Nginx PHP
Nginx不支持直接運(yùn)行PHP文件。我們將使用PHP-FPM FastCGI進(jìn)程管理器來運(yùn)行PHP文件。
現(xiàn)在使用你的喜歡的文本編輯器創(chuàng)建Nginx虛擬主機(jī)配置文件etc/nginx/sites-enabled/example.conf目錄中。
在本教程中我們將使用vim編輯器打開文件etc/nginx/sites-enabled/example.conf
。
復(fù)制粘帖以下內(nèi)容到etc/nginx/sites-enabled/example.conf
文件中, 使Nginx可以運(yùn)行PHP文件。
sudo vim etc/nginx/sites-enabled/example.conf
server {
server_name example.com;
root /var/www/html/;
location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
保存文件并退出vim。創(chuàng)建Nginx虛擬主機(jī)配置后,你應(yīng)該在每次修改Nginx配置文件運(yùn)行nginx -t
命令測(cè)試Nginx配置的語法是否正確。
如果沒有錯(cuò)誤nginx將會(huì)提示你nginx: configuration file etc/nginx/nginx.conf test is successful
。
當(dāng)測(cè)試Nginx配置正確之后,不要忘記運(yùn)行systemctl
命令重新啟動(dòng)Nginx服務(wù),運(yùn)行命令sudo systemctl restart nginx
使nginx配置文件生效。
為了能夠正確解釋域名example.com
。因此我們還需要映射example.com
到本地回環(huán)地址127.0.0.1
。
運(yùn)行命令echo "127.0.0.1 example.com" | sudo tee -a etc/hosts
。
sudo nginx -t
sudo systemctl restart nginx
echo "127.0.0.1 example.com" | sudo tee -a etc/hosts
phpinfo 頁面
要測(cè)試是否已正確配置Web服務(wù)器運(yùn)行PHP,請(qǐng)?jiān)?code>/var/www/html目錄中創(chuàng)建一個(gè)名為info.php
的新文件。然后保存文件并退出vim。
保存文件后,我們還需要使用chmod命令讓info.php
具有可執(zhí)行權(quán)限。運(yùn)行命令sudo chmod +x /var/www/html/info.php
。
Nginx必須對(duì)站點(diǎn)的根目錄有讀取權(quán)限,對(duì)于可執(zhí)行文件,例如php。nginx必須對(duì)其有可執(zhí)行權(quán)限,否則nginx返回500內(nèi)部服務(wù)器的錯(cuò)誤。
sudo vim /var/www/html/info.php
sudo chmod +x /var/www/html/info.php
/var/www/html/info.php
phpinfo();
打開你的瀏覽器,然后訪問。您將看到您的PHP配置的信息。
結(jié)論
在Ubuntu 20.04安裝PHP 8.1是一項(xiàng)簡單的任務(wù)。您需要做的就是啟用ondrej/php存儲(chǔ)庫,并使用apt
安裝PHP 8.1。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9246瀏覽量
85730 -
Ubuntu
+關(guān)注
關(guān)注
5文章
563瀏覽量
29904 -
PHP
+關(guān)注
關(guān)注
0文章
454瀏覽量
26721 -
nginx
+關(guān)注
關(guān)注
0文章
151瀏覽量
12194
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論