跳至主要內容

在 Ubuntu 安裝 PHP 7

Pamis Wang大约 2 分鐘後端PHPPHP 7UbuntuUbuntu 22.04

在 Ubuntu 安裝 PHP 7

前言

由於 Ubuntu 每個版本的作業系統對應的套件版本都不一樣,
可以從命令列來查詢,也可以官網查詢。

Ubuntu 20.04 對應的版本是 PHP 7.4open in new window
Ubuntu 22.04 對應的版本是 PHP 8.1open in new window

但如果為了要安裝 PHP 7.4,
而選擇使用舊版的作業系統,
那麼代價也太大了。

本文會記錄在 Ubuntu 22.04 安裝 PHP 7.4 的過程。

下載安裝

使用第三方套件庫

這是第三方的軟體存放庫列表,
如果要安裝官方套件列表以外的套件,
也不失為是一個解決方案。

不過第三方套件有風險存在需要謹慎評估。

https://launchpad.net/~ondrej/+archive/ubuntu/phpopen in new window

下載指令

跟著該套件庫的教學將套件庫列表加入系統。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

安裝 PHP 7.4 FPM for Nginx

sudo apt install php7.4-fpm
php-fpm7.4 -v

安裝 PHP 7.4 擴充模組

指令參考如下,extension_name 要替換成擴充的名字。

sudo apt install php7.4-extension_name

常用的擴充

根據 Laravel 8 系統要求open in new window
開發會用到,如果是使用 Laravel 就會要求要安裝。

懶得打就整串丟進去跑吧。

sudo apt install php7.4-bcmath -y
sudo apt install php7.4-curl -y
sudo apt install php7.4-dev -y
sudo apt install php7.4-gd -y
sudo apt install php7.4-imagick -y
sudo apt install php7.4-imap -y
sudo apt install php7.4-intl -y
sudo apt install php7.4-mbstring -y
sudo apt install php7.4-mysql -y
sudo apt install php7.4-redis -y
sudo apt install php7.4-soap -y
sudo apt install php7.4-xmlrpc -y
sudo apt install php7.4-zip -y

修改設定

檔案路徑

預設安裝的設定檔路徑就是這個。

sudo nano /etc/php/7.4/fpm/php.ini

常用設定

常用設定可參照這篇文章 PHP 常用設定

執行測試

sudo php7.4-fpm -t

重新啟動

sudo service php7.4-fpm restart

權限設定

如果 /var/log/nginx/error.log
出現  connect() to unix:/var/run/php/php8.1-fpm.sock failed (13: Permission denied)
代表 php-fpm 的權限設定有問題
由於預設用戶名稱為  www-data
但因為新版本的 nginx 的使用者名稱從  www-data  改成  nginx
所以  /etc/php/8.1/fpm/pool.d/www.conf  內要修改預設值

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nginx
group = nginx

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nginx
listen.group = nginx
上次編輯於:
貢獻者: pamis,Pamis Wang