ports:web:php

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ports:php [2020/04/24 07:54] – [Jail] zorroports:web:php [2022/04/28 15:56] (Version actuelle) david
Ligne 14: Ligne 14:
 php { php {
         host.hostname = php;           # Hostname         host.hostname = php;           # Hostname
 +#        ip4 = disable; # update/install ended: lock out the jail
         ip4.addr = "lo1|192.168.0.12";                   # IP address of the jail         ip4.addr = "lo1|192.168.0.12";                   # IP address of the jail
         path ="/jails/php";                     # Path to the jail         path ="/jails/php";                     # Path to the jail
Ligne 21: Ligne 22:
 } }
 </file> </file>
 +
 +On assure le démarrage au reboot:
 +<code bash>
 +root@popeye:# sysrc jail_enable="YES"
 +root@popeye:# sysrc jail_list+="php"
 +</code>
 +
  
 Installez ici la version de ''php'' que vous désirez: Installez ici la version de ''php'' que vous désirez:
Ligne 37: Ligne 45:
  
 Si vous installez un [[https://www.freebsd.org/doc/handbook/ports.html|port]] ce sera fait automatiquement, mais vous pouvez souvent vous contenter de cloner un dépôt. Si vous installez un [[https://www.freebsd.org/doc/handbook/ports.html|port]] ce sera fait automatiquement, mais vous pouvez souvent vous contenter de cloner un dépôt.
 +
 +==== Configuration ====
 +
 +Configurez ''php'' à partir d'un fichier exemple:
 +
 +<code bash>
 +root@php:/ # cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
 +</code>
  
 Configurez ''php-fpm'' pour qu'il écoute soit sur un port TCP, sur l'adresse de votre ''jail'', soit sur une ''socket unix''. Configurez ''php-fpm'' pour qu'il écoute soit sur un port TCP, sur l'adresse de votre ''jail'', soit sur une ''socket unix''.
Ligne 50: Ligne 66:
 <note tuyau> <note tuyau>
 Dans ce cas, on utilise une socket unix. Dans ce cas, on utilise une socket unix.
-Il est alors  inutile de donner une ip à la jail, vous pouvez supprimer la ligne ''ip4.addr'' de la configuration de la ''jail''  +Il est alors  inutile de donner une ip à la jail, vous pouvez  
-et préciser ''ip4=disable''+  - supprimer la ligne ''ip4.addr'' de la configuration de la ''jail''  
 +  et préciser ''ip4=disable''
 </note> </note>
  
 +Démarrez:
 +<code bash>
 +root@popeye:# service -j php php-fpm start
 +</code>
  
  
  
 +Programmez newsyslog(8) pour nettoyer les journaux:
 +<file shell /etc/newsyslog.conf.d/php.conf>
 +/var/log/php-fpm.log                   600  7     1000 *             /var/run/php-fpm.pid
 +</file>
 +==== Messagerie ====
 +
 +Par défaut, //php// utilise les fonctions de sendmail(8) pour envoyer des messages. Si vous avez besoin de cette fonction, activer le [[jails:zfs#mail|service de transport de sendmail]] dans votre ''jail'' et précisez vos paramètres dans le fichier de configuration,
 +
 +  *Soit dans le fichier général de ''php'',
 +
 +<file diff /usr/local/etc/php.ini>
 +--- usr/local/etc/php.ini-production    2020-04-19 16:29:28.000000000 +0200
 ++++ usr/local/etc/php.ini       2020-05-07 14:07:14.400227000 +0200
 +@@ -1056,7 +1056,7 @@
 + 
 + ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
 + ; http://php.net/sendmail-path
 +-;sendmail_path =
 ++sendmail_path = /usr/sbin/sendmail -t -i
 + 
 + ; Force the addition of the specified parameters to be passed as extra parameters
 + ; to the sendmail binary. These parameters will always replace the value of
 +</file>
 +
 +  * Soit dans le fichier dédié à votre service:
 +
 +<file ini /usr/local/etc/php-fpm.d/www.conf>
 +php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i 
 +php_flag[display_errors] = off
 +php_admin_value[error_log] = /var/log/fpm-php.www.log
 +php_admin_flag[log_errors] = on
 +php_admin_value[memory_limit] = 32M
 +</file>
 ===== Serveur Web ===== ===== Serveur Web =====
  
Ligne 101: Ligne 155:
 C'est bien souvent le ''fastcgi_param'' qu'il faut adapter à la ''jail'' au lieu d'utiliser un ''$document_root''. C'est bien souvent le ''fastcgi_param'' qu'il faut adapter à la ''jail'' au lieu d'utiliser un ''$document_root''.
  
 +Par exemple,ce dokuwiki:
 +
 +<file javascript /usr/local/etc/nginx/dokuwi.conf>
 +include drop.conf;
 +
 +client_max_body_size 15M;
 +client_body_buffer_size 128k;
 +location / {
 +        try_files $uri $uri/ @dokuwiki;
 +}
 +
 +location ~ \.php$ {
 +        try_files $uri $uri/ /doku.php;
 +        fastcgi_pass unix:/jails/php/var/run/php-fpm.sock;
 +        fastcgi_param REDIRECT_STATUS 200;
 +        include fastcgi_params;
 +        fastcgi_param SCRIPT_FILENAME /usr/local/www/dokuwiki/$fastcgi_script_name;
 +}
 +location @dokuwiki {
 +        rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
 +        rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
 +        rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
 +        rewrite ^/(.*) /doku.php?id=$1&$args last;
 +}
 +
 +# Block access to data folders
 +location ~ /(data|conf|bin|inc)/ {
 +        deny all;
 +}
 +
 +# Block access to .htaccess files
 +location ~ /\.ht {
 +        deny  all;
 +}
 +</file>
 +
 +<note>
 +Vous trouverez des explications [[https://www.nginx.com/resources/wiki/start/topics/recipes/dokuwiki/|sur le site de nginx]].
 +</note>
 +
 +===== Versions =====
 +
 +Attention, les ports dépendant de php sont gérés par les [[https://docs.freebsd.org/en/books/porters-handbook/flavors/|flavors]]. Pensez à l'indiquer dans le nom des //ports// à télécharger ou à construire.
 +De même, précisez la version par défaut de php dans votre ''Make.conf'': 
 +<code=bash>
 +DEFAULT_VERSIONS+=php=7.4
 +</code>
  • ports/web/php.1587714876.txt.gz
  • Dernière modification : 2020/04/24 07:54
  • de zorro