PHP Conference Nagoya 2025

Installation von Paketen oder Ports unter OpenBSD

Dieser Abschnitt enthält Hinweise und Tipps zur Installation von PHP unter » OpenBSD.

Verwendung von Paketen

Binärpakete zu verwenden, um PHP auf OpenBSD zu installieren, ist die empfohlene und zugleich einfachste Methode. Die verschiedenen Module sind vom Kernpaket getrennt und können unabhängig voneinander installiert und entfernt werden. Die benötigten Dateien finden Sie auf Ihrer OpenBSD-CD oder auf der FTP-Seite.

Das wichtigste Paket, das Sie installieren müssen, ist php; es enthält die Basissoftware (plus fpm, gettext und iconv) und steht möglicherweise in mehreren Versionen zur Auswahl. Weiter geht es mit den Modulpaketen, wie php-mysqli oder php-imap. Um diese Module in Ihrer php.ini zu aktivieren oder zu deaktivieren, müssen Sie den Befehl phpxs verwenden.

Beispiel #1 Beispiel für die Installation von OpenBSD-Paketen

# pkg_add php
# pkg_add php-apache
# pkg_add php-mysqli
  (Installation der PEAR-Bibliotheken)
# pkg_add pear

Befolgen Sie die Anweisungen, die bei jedem Package angegeben werden!

  (um Pakete zu entfernen)
# pkg_delete php
# pkg_delete php-apache
# pkg_delete php-mysqli
# pkg_delete pear

Weitere Informationen über OpenBSD-Binärpakete finden Sie in der Manpage » packages(7).

Verwendung von Ports

Sie können PHP auch aus dem Quelltext kompilieren, indem Sie den » Ports-Tree verwenden. Dies ist jedoch nur für Benutzer empfehlenswert, die mit OpenBSD vertraut sind. Der PHP-Port ist in core und extensions aufgeteilt. Die extensions erzeugen Unterpakete für alle unterstützten PHP-Module. Wenn Sie manche dieser Module nicht erstellen wollen, verwenden Sie den FLAVOR no_*. Um zum Beispiel die Erstellung des imap-Moduls zu überspringen, setzen Sie den FLAVOR auf no_imap.

Häufige Probleme

  • Apache und Nginx sind unter OpenBSD nicht mehr die Standard-Server, können aber beide problemlos über Ports und Pakete installiert werden. Der neue Standard-Server wird einfach als "httpd" bezeichnet.
  • Die Standardinstallation von httpd läuft in einem » chroot(2)-Jail, das den Zugriff von PHP-Skripten auf Dateien unter /var/www beschränkt. Sie müssen daher das Verzeichnis /var/www/tmp erstellen, in dem PHP-Session-Dateien gespeichert werden, oder ein alternatives Session-Backend verwenden. Außerdem müssen die Datenbank-Sockets innerhalb des Jails platziert werden oder auf der localhost-Schnittstelle lauschen. Wenn Sie Netzwerkfunktionen verwenden, müssen einige Dateien aus /etc wie /etc/resolv.conf und /etc/services nach /var/www/etc kopiert werden. Das PEAR-Paket von OpenBSD installiert sich automatisch in die richtigen chroot-Verzeichnisse.
  • Das OpenBSD-Paket für die Erweiterung » gd benötigt Xorg, um installiert zu werden. Wenn es nicht bereits bei der Basisinstallation durch Hinzufügen des xbase.tgz-Dateisets installiert wurde, kann es auch nachträglich hinzugefügt werden (siehe » OpenBSD FAQ#4).
add a note

User Contributed Notes 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