Installation de php avec nginx sur FreeBSD 10.1


Où l’on va voir comment installer et faire fonctionner php5 et nginx sur un FreeBSD 10.1.

Installation avec poudriere

Nous avons une poudriere, nous allons donc nous en servir pour cette installation.

Installation de php5

Nous allons éditer le fichier /usr/local/etc/poudriere.d/101Ramd64-list.txt et ajouter les ports suivants :

1
2
lang/php5
lang/php5-extensions

Et nous allons choisir les options pour ces deux nouveaux paquets :

1
# poudriere options -j 101Ramd64 -f /usr/local/etc/poudriere.d/101Ramd64-list.txt 

Pour php5 prenez soin de choisir FPM en plus des options par défaut.

Pour php5-extensions, choisissez :

  • CURL ;
  • FILEINFO ;
  • GD ;
  • IMAP ;
  • LDAP ;
  • MBSTRING ;
  • MCRYPT ;
  • MySQL ;
  • MySQLi ;
  • OPENSSL ;
  • PDO_MySQL ;
  • ZIP ;
  • ZLIB.

On demande ensuite à poudriere de construire les paquets que nous venons de configurer :

1
# poudriere bulk -j 101Ramd64 -f /usr/local/etc/poudriere.d/101Ramd64-list.txt 

  la dernière étape peut être longue

Il ne nous reste qu’à installer les paquets :

1
2
# pkg install php5
# pkg install php5-extensions

Configuration de php5

La configuration de php5 se fait dans le fichier /usr/local/etc/php.ini, en copiant le fichier d’exemple php.ini-production.

1
# cp php.ini-production php.ini

Puis trouvez ces lignes (elles ne se suivent pas) :

1
2
3
4
5
output_buffering = 4096
;session.save_path = "/tmp"
upload_max_filesize = 2M
post_max_size = 8M
date.timezone = America/Los_angeles

et modifiez-les ainsi :

1
2
3
4
5
output_buffering = OFF
session.save_path = "/tmp"
upload_max_filesize = 5120M
post_max_size = 5120M
date.timezone = Europe/Paris

  mettez bien sûr le fuseau horaire qui correspond à votre réalité

Configuration de php-fpm

FPM (fastCGI Process Manager) a été installé avec php5, c’est l’option que nous avons choissie.

La configuration se fait dans le fichier /usr/local/etc/php-fpm.conf. À la fin du fichier, ajouter les valeurs spécifique à roundcube :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[roundcube]
user = www
group = www
listen = /var/run/php-fpm-roundcube.sock
listen.owner = www
listen.group = www
listen.mode = 0666

listen.backlog = -1
listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500

On règle ici les propriétaires et groupe du processus (user et group), le chemin vers la socket de communication (listen), les propriétaires et groupe de la socket, les droits de la socket (listen.owner, listen.group et listen.mode). Ensuite, on configure les caractéristiques du process manager (pm). Pour plus d’informations sur ces réglages, regardez la documentation officielle.

Il faut que php-fpm soit lancé au démarrage de la machine, on ajoute donc une entrée dans le fichier /etc/rc.conf :

1
php_fpm_enable = "YES"

On démarre le processus :

1
# service php-fpm start

Et on vérifie :

1
2
# netstat -l | grep fpm
fffff803abddda50 stream      0      0 fffff8036b8ceb10        0        0        0 /var/run/php-fpm-roundcube.sock

Voilà, php5 et php5-fpm sont installés, nous pouvons maintenant retourner à l’installation de roundcube.

powered by FreeBSD