Installation à partir de paquets ou de ports sur OpenBSD

Cette section contient les notes spécifiques à l'installation de PHP sous » OpenBSD.

Utilisation des paquets binaires

Cette méthode est la méthode recommandée pour installer PHP sur OpenBSD. C'est aussi la méthode la plus simple. Le paquet core a été séparé des modules et chacun d'entre eux peut être installé et supprimé indépendamment des autres. Les fichiers nécessaires sont sur le CD OpenBSD ou sur le site FTP.

Le paquet principal à installer est php, qui contient le moteur de base (en plus de fpm, gettext et iconv) et pourrait être disponible sous plusieurs versions au choix. Puis, jeter un œil aux paquets de module, comme php-mysqli ou php-imap. Il faut utiliser la commande phpxs pour activer et désactiver ces modules dans le php.ini.

Exemple #1 Exemple d'installation de PHP sous OpenBSD avec Ports

# pkg_add php
# pkg_add php-apache
# pkg_add php-mysqli
  (installer les bibliothèques PEAR)
# pkg_add pear

Suivre les instructions affichées avec chaque paquet !

  (pour supprimer des paquets)
# pkg_delete php
# pkg_delete php-apache
# pkg_delete php-mysqli
# pkg_delete pear

Lire la page de manuel Unix » packages(7) pour plus de détails sur les paquets binaires d'OpenBSD.

Utilisation des ports

Il est aussi possible de compiler PHP en utilisant » l'arbre des ports. Cette méthode est recommandée aux utilisateurs expérimentés de OpenBSD. Le port PHP est divisé en core et extensions. Les extensions génèrent les sous-paquets de tous les modules PHP supportés. Pour ne pas créer certains de ces modules, utiliser le FLAVOR no_*. Par exemple, pour ne pas compiler le module imap, définir le FLAVOR à no_imap.

Problèmes courants

  • Apache et Nginx ne sont plus le serveur par défaut sur OpenBSD, mais ils peuvent être facilement trouvés dans les ports et les packages. Le nouveau serveur par défaut est également appelé 'httpd'.
  • L'installation par défaut de httpd fonctionne dans un » contexte chroot(2), qui va limiter l'accès des scripts PHP au dossier /var/www. Il faut donc créer un dossier /var/www/tmp pour que les sessions PHP soient stockées, ou bien utiliser une autre solution de sauvegarde. De plus, les sockets de bases de données doivent être placés dans ce dossier, ou bien utiliser l'interface localhost. Lors de l'utilisation de fonctions de réseau avec des fichiers comme /etc, par exemple /etc/resolv.conf, et /etc/services, il faut les rendre accessibles aussi dans /var/www/etc. Le paquet OpenBSD PEAR installe automatiquement les bons dossiers.
  • Le paquet OpenBSD pour l'extension » gd requiert l'installation de Xorg. À moins d'avoir été déjà installé lors de l'installation de base en ajoutant le jeu de fichiers xbase.tgz, cela peut être ajouté après l'installation (voir » OpenBSD FAQ#4).
add a note

User Contributed Notes 2 notes

up
20
Anonymous
4 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.
up
19
pete att shitnami.net
10 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
To Top