L2 Info : PHP et Programmation Web
 
◃  Ch. 10 Un serveur HTTP : Apache  ▹
 

Configuration d'un environnement apache2-php-postgresql

Liste des packages ubuntu pour installer un environnement web (ici apache2) :

  • apache2
  • apache2-bin
  • apache2-data
  • apache2-utils
  • ressource (en L2 je ne recommande pas LAMP qui concerne un environnement apache-mysql-php qui n'inclut pas postgresql)
  • Commande d'installation des packages : $ sudo apt install apache2 apache2-bin ... (accepter l'installation des éventuels packages dépendants)

Liste des packages pour installer php

  • php (installe aussi php7.x version standard php sur ubuntu)
  • php-cli pour faire du php en mode terminal sans passer par un serveur web (installe aussi php7.x-cli)
  • php-common (installe aussi php7.x-common)
  • libapache2-mod-php pour faire la liaison avec apache2
  • d'autres packages peuvent être aussi installés voir lien ci-dessous
  • ressource

Liste des packages pour associer php et apache2

  • libapache2-mod-php (installe aussi libapache2-mod-php7.x)

Liste des packages pour installer postgresql

  • postgresql
  • postgresql-client
  • postgresql-client-common
  • postgresql-common
  • libpq5
  • plus d'autres packages dépendant des précédents (ceux de postgresql*-10 notamment)
  • ressource
  • Bien lire le point 3.8 pour la création d'un utilisateur postgres standard, voilà à quoi ça peut ressembler :
    dominique@hal9000:~$ sudo su postgres
    postgres@hal9000:/home/dominique/$ psql 
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
    Type "help" for help.
    postgres=# CREATE USER lambda;  
    CREATE ROLE  
    postgres=# ALTER ROLE lambda WITH CREATEDB;  
    ALTER ROLE  
    postgres=# CREATE DATABASE lambda OWNER lambda;
    CREATE DATABASE
    postgres=# ALTER USER lambda WITH ENCRYPTED PASSWORD 'lambdapassword';
    ALTER ROLE
    postgres=# postgres=# \q
    postgres@hal9000:/home/dominique/$ 
    exit
    dominique@hal9000:~/$ psql -h localhost -U lambda -d lambda
    Password for user lambda: 
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
    Type "help" for help.
    lambda=> 
    

Liste des packages pour associer postgresql et php

  • php-pgsql

Liste des packages pour installer mysql (pas nécessaire pour InfoWeb en L2)

  • mysql-server
  • mysql-client
  • mysql-common
  • plus d'autres packages dépendant des précédents (mysql-*-5.7 notamment) (numéro de version sujet à modification)
  • ressource

Liste des packages pour associer mysql et php (pas nécessaire pour InfoWeb en L2)

  • php-mysql

Pour activer le module php de apache

  • Les modules disponibles pour apache sont visibles dans /etc/apache2/mods-available, parmi ceux-ci les modules activés sont visibles dans /etc/apache2/mods-enabled, il s'agit juste d'un lien symbolique vers les fichiers accessibles via le premier répertoire. Pour activer un module on peut soit créer à la main les liens symbolique avec la commande ln -s soit utiliser la commande a2enmod
  • $ sudo a2enmod php8.1 (adapter le numéro de version de php si besoin)
  • $ sudo cp /usr/lib/php/8.1/php.ini-development /etc/php/8.1/apache2/php.ini : pour avoir les messages d'erreurs php qui remontent dans le navigateur
  • $ sudo service apache2 restart
  • Par défaut les fichiers du serveurs se trouvent dans /var/www/html et sont accessibles par http://localhost
  • /var/www/html appartient à root, il est donc préférable de se créer un dossier perso pour travailler :
     $ sudo mkdir /var/www/html/perso
    $ sudo chown login.login /var/www/html/perso

    avec perso un nom de répertoire de votre choix et login remplacé par votre login ubuntu