2024 年日本 PHP 研討會

在 OpenBSD 上從套件或 ports 安裝

本節包含在 » OpenBSD 上安裝 PHP 的注意事項和提示。

使用二進制套件

在 OpenBSD 上使用二進制套件安裝 PHP 是推薦且最簡單的方法。核心套件已與各種模組分離,每個模組都可以獨立安裝和移除。您需要的檔案可以在您的 OpenBSD 光碟或 FTP 網站上找到。

您需要安裝的主要套件是 php,它包含基本引擎(以及 fpm、gettext 和 iconv),並且可能有幾個版本可供選擇。接下來,查看模組套件,例如 php-mysqliphp-imap。您需要使用 phpxs 命令在您的 php.ini 中啟用和停用這些模組。

範例 #1 OpenBSD 套件安裝範例

# pkg_add php
# pkg_add php-apache
# pkg_add php-mysqli
  (install the PEAR libraries)
# pkg_add pear

Follow the instructions shown with each package!

  (to remove packages)
# pkg_delete php
# pkg_delete php-apache
# pkg_delete php-mysqli
# pkg_delete pear

欲了解更多關於 OpenBSD 二進位套件的資訊,請閱讀 » packages(7) 使用手冊。

使用 Ports

您也可以使用 » ports tree 從原始碼編譯 PHP。然而,僅建議熟悉 OpenBSD 的使用者這樣做。PHP port 分為核心和擴充功能。擴充功能會為所有支援的 PHP 模組產生子套件。如果您不想建立某些模組,請使用 no_* FLAVOR。例如,要略過建置 imap 模組,請將 FLAVOR 設定為 no_imap

常見問題

  • Apache 和 Nginx 不再是 OpenBSD 的預設伺服器,但它們都可以在 ports 和 packages 中輕鬆找到。新的預設伺服器也稱為 'httpd'。
  • httpd 的預設安裝在 » chroot(2) jail 內執行,這會限制 PHP 腳本只能存取 /var/www 底下的檔案。因此,您需要建立一個 /var/www/tmp 目錄來儲存 PHP 工作階段檔案,或使用替代的工作階段後端。此外,資料庫 socket 需要放置在 jail 內或監聽 localhost 介面。如果您使用網路功能,則需要將 /etc 中的某些檔案,例如 /etc/resolv.conf/etc/services,移動到 /var/www/etc。OpenBSD PEAR 套件會自動安裝到正確的 chroot 目錄中。
  • » gd 擴充功能的 OpenBSD 套件需要安裝 Xorg。除非在基本安裝時透過新增 xbase.tgz 檔案集已安裝,否則可以在安裝後新增(請參閱 » OpenBSD 常見問題集#4)。
新增備註

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

pete att shitnami.net
9 年前
簡要更新:從 OpenBSD 5.7 (2015) 開始,安裝過程變得非常簡單。Apache httpd 已被 Nginx 取代,而 Nginx 又被 OpenBSD 自己的伺服器(恰如其分地命名為 'httpd')取代。

'httpd' 預設安裝,其他所有東西仍然可以從套件中取得,但名稱有所更改(包括 Apache 和 Nginx)。系統會詢問您要安裝哪個版本 — 在撰寫本文時,可用的版本從 5.3.29p1 到 5.6.5。

#pkg_add php
#pkg_add php-fpm
#pkg_add pear

----
OpenBSD 預設停用大多數服務;空白的 '_flags' 行會覆寫預設的 'NO' 值。pkg_scripts 位於 /etc/rc.d/ 中。
要在開機時啟動,請編輯 "/etc/rc.conf.local"

httpd_flags=
pkg_scripts=php_fpm

----
/etc/httpd.conf 範例
#
# 路徑相對於 chroot - 例如 '/var/www/run/php-fpm.sock'
server "default" {
listen on * port 80
location "*.php" {
fastcgi socket "/run/php-fpm.sock"
}
directory index index.php
根目錄 "/htdocs"
}

----
針對日期、時區問題,請複製 /etc/localtime
$cp /etc/localtime /var/www/etc/localtime

如果 'localhost' DNS 名稱無法解析,請複製 /etc/hosts
$cp /etc/hosts /var/www/etc/hosts
匿名
3 年前
更新:OpenBSD 6.9

- 「php-fpm」套件已不存在。它現在是預設值,因此您只需安裝「php」即可。
- 安裝 PHP 時,系統會自動建立 /var/www/tmp 目錄。
- PHP 8 以及舊版本皆可使用。 pkg_add 會詢問您要安裝哪個版本。
To Top