2024 年 PHP 日本會議

在 Debian GNU/Linux 和相關發行版上從軟體包安裝

雖然可以從原始碼安裝 PHP,但也可以透過 » Debian GNU/Linux 的軟體包取得。這也適用於其他基於 Debian 的發行版,例如 Ubuntu、Kali Linux 和 Linux Mint。

警告

來自第三方的建置版本被視為非官方版本,PHP 專案不直接支援。任何遇到的錯誤都應回報給這些非官方建置版本的提供者,除非可以使用 » 官方下載區 的建置版本重現。

可以使用 aptaptitude 命令安裝套件。本手冊頁會交替使用這兩個命令。

使用 APT

首先,請注意,您可能需要其他相關套件,例如與 Apache 2 整合的 libapache-mod-php,以及用於 PEAR 的 php-pear

其次,在安裝套件之前,最好確保套件列表是最新的。通常,這可以透過執行 apt update 命令來完成。

範例 #1:在 Debian 上安裝並整合 Apache 2 的範例

# apt install php-common libapache2-mod-php php-cli

APT 會自動安裝適用於 Apache 2 的 PHP 模組及其所有 dependencies,然後啟用它。您需要重新啟動 Apache 才能使變更生效。例如:

範例 #2:安裝 PHP 後停止並啟動 Apache

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

更精細的設定控制

在上一節中,只安裝了核心模組。您很可能需要額外的模組,例如 MySQLcURLGD 等。這些也可以透過 apt 命令安裝。

範例 #3:列出其他 PHP 套件的方法

# apt-cache search php
# apt search php | grep -i mysql
# aptitude search php

套件列表將包含大量套件,其中包含基本的 PHP 元件,例如 php-cgiphp-cliphp-dev,以及許多 PHP 擴充。安裝擴充時,系統會自動安裝其他必要的套件,以滿足這些套件的 dependencies。

範例 #4:安裝包含 MySQL 和 cURL 的 PHP

# apt install php-mysql php-curl

APT 會自動將適當的行添加到不同的 php.ini 相關檔案,例如 /etc/php/7.4/php.ini/etc/php/7.4/conf.d/*.ini 等,並根據擴充新增類似 extension=foo.so 的項目。但是,您需要重新啟動網路伺服器(例如 Apache)才能使這些變更生效。

常見問題

  • 如果網頁伺服器無法解析 PHP 腳本,則可能是 PHP 尚未添加到網頁伺服器的設定檔中,在 Debian 上,該檔案可能是 /etc/apache2/apache2.conf 或類似檔案。詳情請參閱 Debian 手冊。
  • 如果看似已安裝擴充,但函式卻未定義,請確認已載入適當的 ini 檔案,以及/或在安裝後已重新啟動網頁伺服器。
新增註釋

使用者貢獻的註釋 2 則註釋

thumbs at apache dot org
11 年前
為了更新這份文件,或許值得一提的是在 Apache httpd 下提供 PHP 內容的更現代方法。

具體來說,現在的首選方法是使用以下任一方法的 fastcgi:

(mod_fastcgi, httpd 2.2)
http://wiki.apache.org/httpd/php-fastcgi

(mod_fcgid, httpd 2.2)
http://wiki.apache.org/httpd/php-fcgid

(mod_proxy_fcgi, httpd 2.4)
http://wiki.apache.org/httpd/PHP-FPM

雖然傳統的 mod_php 方法仍然適用於一些較舊的安裝,但基於類似的流量模式,fastcgi 方法速度更快,所需的 RAM 也更少。

謝謝!
kearney dot taaffe at gmail dot com
6 年前
在 Ubuntu 系統上編譯 PHP。

如果您想從原始碼編譯 PHP,而不是依賴套件維護者,這裡列出了一些套件和您可以執行的命令。

步驟 1
sudo apt-get install autoconf build-essential curl libtool \\
libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \\
libreadline-dev libzip-dev libzip4 nginx openssl \\
pkg-config zlib1g-dev

為了避免覆蓋系統上任何現有的 PHP 安裝,請將 PHP 安裝在您的家目錄中。 建立一個目錄來存放 PHP 二進位檔案。

mkdir -p ~/bin/php7-latest/

步驟 2
# 下載最新的 PHP tarball,解壓縮它,然後 cd 到新的目錄。

步驟 3
設定 PHP。移除您不需要的任何選項(例如 MySQL 或 Postgres (--with-pdo-pgsql))

./configure --prefix=$HOME/bin/php-latest \\
--enable-mysqlnd \\
--with-pdo-mysql \\
--with-pdo-mysql=mysqlnd \\
--with-pdo-pgsql=/usr/bin/pg_config \\
--enable-bcmath \\
--enable-fpm \\
--with-fpm-user=www-data \\
--with-fpm-group=www-data \\
--enable-mbstring \\
--enable-phpdbg \\
--enable-shmop \\
--enable-sockets \\
--enable-sysvmsg \\
--enable-sysvsem \\
--enable-sysvshm \\
--enable-zip \\
--with-libzip=/usr/lib/x86_64-linux-gnu \\
--with-zlib \\
--with-curl \\
--with-pear \\
--with-openssl \\
--enable-pcntl \\
--with-readline

步驟 4
編譯二進位檔案,輸入:make

如果沒有錯誤,輸入:make install 進行安裝

步驟 5
將 PHP.ini 檔案複製到安裝目錄

cp php.ini-development ~/bin/php-latest/lib/

步驟 6

cd ~/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

步驟 7
為您的二進位檔案建立符號連結

cd ~/bin
ln -s php-latest/bin/php php
ln -s php-latest/bin/php-cgi php-cgi
ln -s php-latest/bin/php-config php-config
ln -s php-latest/bin/phpize phpize
ln -s php-latest/bin/phar.phar phar
ln -s php-latest/bin/pear pear
ln -s php-latest/bin/phpdbg phpdbg
ln -s php-latest/sbin/php-fpm php-fpm

步驟 8:將您的本地 PHP 連結到 php 命令。您需要登出然後重新登入,才能將 php 切換到本地版本,而不是已安裝的版本。

# 將此添加到 .bashrc
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

步驟 9:啟動 PHP-FPM

sudo ~/bin/php7/sbin/php-fpm
To Top