Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


PHP : un langage de programmation libre

Pour le Raspberry Pi, tout faire en ligne de commande via SSH.

Nginx utilise PHP-FMP (une version plus rapide de PHP) plutôt qu’un PHP plus traditionnel.

C'est pourquoi nous installons php-fpm pour gérer les fichiers PHP avec Nginx.

Pré-requis

Installation

  1. Installer php :

    :~$ sudo apt install {php}

  2. Repérer la version de php et la mettre en variable (ici, la version de php installée est 7.4) :

    :~$ php -v
    PHP 8.3.11 (cli) (built: Aug 30 2024 09:28:18) (NTS)
    ...
    :~$ 
    php -v
    PHP 7.4.3 (cli)
    ...
    :~$ __=$(php -v) ; phpver=php${__:4:3} ; echo $phpver
    php7.4

  3. Installez les modules de php :

    USER@MACHINE:~$ sudo apt install $phpver-{fpm,gd,curl,intl,xmlrpc,mbstring,mysql,sqlite,xml,zip}

  4. Selon vos besoins, installez

    USER@MACHINE:~$ sudo apt install lib$phpver-embed
    USER@MACHINE:~$ sudo apt install $phpver-{cgi,cli,common,dev,gmp,json,ldap,odbc,opcache,pgsql,pspell,readline,snmp,sqlite3,tidy,bcmath,bz2,dba,enchant,imap,interbase,phpdbg,soap,sybase,xsl}
    USER@MACHINE:~$ sudo apt install php-{gearman,geoip,gnupg,xdebug,amqp,apcu,apcu-bc,ds,gmagick,igbinary,imagick,lua,mailparse,memcache,memcached,mongodb,msgpack,oauth,pinba,propro}
    USER@MACHINE:~$ sudo apt install php-{ps,radius,raphf,redis,rrd,sass,solr,ssh2,stomp,tideways,uploadprogress,uuid,yaml,zmq,http}

    FIXME php-pcov et php-psr introuvables

  5. Démarrez le service fpm :

    USER@MACHINE:~$ sudo systemctl restart php7.4-fpm.service

  6. Repérez le socket d’écoute de php-fpm :

    USER@MACHINE:~$ ls -l /var/run/php
    ...
    -rw-r--r-- 1 root     root      5 sept.  7 18:42 php7.4-fpm.pid
    srw-rw---- 1 www-data www-data  0 sept.  7 18:42 php7.4-fpm.sock
    lrwxrwxrwx 1 root     root     30 sept.  7 11:34 php-fpm.sock -> /etc/alternatives/php-fpm.sock

    Ici, il faudra utiliser /var/run/php/php7.4-fpm.sock dans les fichiers de configuration de nginx

  7. Vérifiez votre installation de PHP FPM :

    USER@MACHINE:~$ sudo systemctl status php7.4-fpm.service
    ● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
    ...
         Active: active (running) since Mon 2020-09-07 18:42:26 CEST; 7min ago
    ...

  8. Redémarrez le module php-fpm pour valider la configuration :

    USER@MACHINE:~$ sudo systemctl restart php7.4-fpm.service

Configuration

  1. Configuration de l'envoi d'email par PHP
    1. Installez exim4-config

      USER@MACHINE:~$ sudo apt install {exim4-config}

    2. Lancez la configuration :

      USER@MACHINE:~$ sudo dpkg-reconfigure exim4-config

      1. Acceptez la première page (Tab ⇆ puis ↵ Entrée)
      2. 2e page : sélectionnez Envoi par relais (« smarthost ») — réception SMTP ou … puis <Ok>.
      3. Acceptez les réglages par défaut sauf pour la page Nom réseau ou adresse IP du système « smarthost » : sur laquelle vous entrez l’adresse du serveur SMTP de votre fournisseur d’accès à internet
      4. Pour les autres options, laissez les paramètres par défaut proposés. Cela suffira pour activer l’envoi de mail avec PHP. Les e-mails envoyés avec la fonction mail() arriveront car le serveur local transmet la demande d’envoi au serveur de votre FAI.
  2. Augmenter la taille d'upload
    1. Éditez avec les droits d'administration le fichier /etc/php/8.1/fpm/pool.d/www.conf pour ajouter ceci à la fin :
      /etc/php/8.1/fpm/pool.d/www.conf
      ...
      php_admin_value[upload_max_filesize] = 1000M
      php_admin_value[memory_limit] = 10000M ;128M
      php_admin_value[post_max_size] = 1000M
    2. redémarrez le service PHP8.0

Utilisation

Désinstallation

Problèmes connus

Voir aussi


Basé sur « Manuel PHP » par php.net.

Navigation
  • Pages :
    • créer :
QR Code
QR Code PHP : un langage de programmation libre (generated for current page)