OpenBSD 上从软件包或者 ports 中安装 PHP

本章节的内容和提示仅限于将 PHP 安装到 » OpenBSD 系统上。

使用二进制包安装

使用二进制包安装 PHP 到 OpenBSD 系统上是被推荐的同时也是最简单的方法。PHP 核心包已经从其他模块中分离出来了并且每个模块可以被独立的安装/卸载而不影响其他模块。所有这些安装 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
  (安装 PEAR 库)
# pkg_add pear

Follow the instructions shown with each package!

  (移除包)
# pkg_delete php
# pkg_delete php-apache
# pkg_delete php-mysqli
# pkg_delete pear

阅读用户手册中的 » packages(7) 部分,可以得到更多 OpenBSD 系统下有关二进制软件包的信息。

使用 Ports

同样可以使用 » ports tree 来编译 PHP 的源代码。然而,这样的安装方式仅仅是建议对 OpenBSD 非常熟悉的高级用户去做。PHP port 分为 core 和 extensions。其中 extensions 产生了所有 PHP 所支持的子模块。如果不希望创建并且使用这些模块中的某些模块,请使用 no_* FLAVOR。例如,如果希望跳过编译 imap 模块,设置 FLAVOR 为 no_imap 即可。

常见问题

  • Apache 和 Nginx 不再是 OpenBSD 上的默认服务器,但他们都可以在 ports 和包中找到。 新的默认服务器也被称为 “httpd”。
  • 默认安装的 httpd 运行于 » chroot(2) jail 内,将限制 PHP 脚本只能访问 /var/www下面的文件。需要建立 /var/www/tmp 目录来存放 PHP session 文件,或使用其它的 session 后端。此外,数据库套接字需要被放入 jail 或者侦听 localhost接口。如果使用网络函数,某些 /etc 下面的文件例如 /etc/resolv.conf/etc/services 需要被移动到 /var/www/etc 中去。OpenBSD PEAR 包会自动安装到正确的 chroot 目录中。
  • 对应于 » gd 扩展的 OpenBSD 包需要安装 Xorg。 Unless already installed at base install by adding the xbase.tgz file set, this can be added at post-installation (see » OpenBSD FAQ#4).
添加备注

用户贡献的备注 2 notes

up
20
pete att shitnami.net
9 years ago
A brief update: As of OpenBSD 5.7 (2015) the installation process is extremely easy. Apache httpd was replaced by Nginx, which has since been further replaced by OpenBSD's own server, aptly named 'httpd'.

'httpd' is installed by default, everything else you can still get from packages, with a couple name changes (including Apache and Nginx.) You will be asked which version to install - at the time of writing, versions 5.3.29p1 thru 5.6.5 are available.

#pkg_add php
#pkg_add php-fpm
#pkg_add pear

----
OpenBSD disables most services by default; a blank '_flags' line overrides default 'NO' value. pkg_scripts are located in /etc/rc.d/
To start at boot, edit "/etc/rc.conf.local":

httpd_flags=
pkg_scripts=php_fpm

----
Example /etc/httpd.conf
#
# paths are relative to chroot - e.g, '/var/www/run/php-fpm.sock'
server "default" {
listen on * port 80
location "*.php" {
fastcgi socket "/run/php-fpm.sock"
}
directory index index.php
root "/htdocs"
}

----
For date, timezone issues, copy /etc/localtime:
$cp /etc/localtime /var/www/etc/localtime

If 'localhost' DNS name fails to resolve, copy /etc/hosts
$cp /etc/hosts /var/www/etc/hosts
up
18
Anonymous
3 years ago
UPDATE: OpenBSD 6.9:

- The package "php-fpm" no longer exists. It's the default, so you can just install "php".
- The /var/www/tmp directory will be created automatically when you install PHP.
- PHP 8 is available :D as well as older versions. pkg_add will ask you which version to install.
To Top