Table des matières
Installer un server LAMP (Linux - Apache - MySQL - PHP 7)
Installation
Suivez la procédure décrite sur le forum Ubuntu. Attention, il y a toutefois des changements depuis la 13.10 !
Si vous êtes pressé, ci-dessous, voici toutes les commandes minimales :
Installation
sudo apt-get install apache2 apache2-doc mysql-server php7.4 php7.4-gd libapache2-mod-php7.4 php7.4-mysql php7.4-xml
L'installation ne demande plus le mot de passe principal de la base MySQL. Il va falloir suivre une procédure particulière (voir plus loin).
Vérification du bon fonctionnement d'Apache
Ouvrez votre navigateur internet et rendez-vous à l'URL : http://127.0.0.1 Le navigateur doit afficher une page d'accueil avec des commentaires techniques.
Changer le root du serveur web (/var/www) pour mettre votre propre répertoire
Editer le fichier de configuration
sudo xed /etc/apache2/sites-available/000-default.conf
Modifier la ligne 'DocumentRoot' : mettez votre répertoire à la place de /var/www
DocumentRoot /home/votre_nom_de_user/website
Modifiez le bloc <Directory /> (ou ajoutez-le s'il n'existe pas)
<Directory /> Options FollowSymLinks AllowOverride None Order allow,deny allow from all Require all granted </Directory>
Remarque : si vous souhaitez faire de l'url-rewriting, mettez “AllowOverride All” à la place de “AllowOverride None”
Relancer le serveur web
/etc/init.d/apache2 restart
Rebooter si cela ne marche pas.
Afficher les erreurs en PHP
Si vous développez en PHP, il est utile de voir les erreurs de syntaxe, qui, par défaut, ne sont pas affichées.
Pour les visualiser, éditer le fichier /etc/php/7.4/apache2/php.ini
sudo xed /etc/php/7.4/apache2/php.ini
Chercher l'option display_errors et mettez-là à “on”.
display_errors = On
La fonction date()
La fonction PHP date() pose parfois problème : PHP exige désormais que le TimeZone soit défini.
Pour ce faire :
Dans le bloc [Date], ajoutez votre TimeZone :
date.timezone = "Europe/Brussels";
Vous trouverez ici les valeurs possibles pour ce paramètre : http://php.net/manual/en/timezones.php
Ici aussi il faut relancer le server web.
/etc/init.d/apache2 restart
Configurer l'url rewriting (si vous en avez besoin)
Activer mod_rewrite
Ouvrir un terminal et taper :
sudo a2enmod rewrite
(Ouvrez un fichier avec phpinfo() : si le mod_rewrite est activé, il sera mentionné.)
Configurer Apache
Si vous ne l'avez pas fait lors de l'étape de changement de répertoire : ouvrir le fichier de configuration
sudo xed /etc/apache2/sites-available/000-default.conf
Dans le bloc <Directory />, mettre AllowOverride All à la place de AllowOverride None
<Directory /> Options FollowSymLinks AllowOverride All Order allow,deny allow from all Require all granted </Directory>
Véfifier si l'url rewriting fonctionne bien :
Pour vérifier si le module mod_rewrite d'Apache est activé, il vous suffit de suivre les points suivants :
- Créez un répertoire nommé test que vous placerez à la racine de votre site (il sera donc accessible via l'adresse 127.0.0.1/test
- Dans ce répertoire, créez un fichier HTML nommé test.html (127.0.0.1/test/test.html) contenant uniquement les lignes suivantes :
<html><head><title>Test</title></head><body>OK !</body></html>
- Dans ce répertoire, créez un fichier nommé .htaccess contenant les lignes suivantes :
Options +FollowSymlinks RewriteEngine on RewriteRule inconnu\.html$ /test/test.html [L]
- Appelez l'adresse 127.0.0.1/test/inconnu.html
Vous devriez voir “OK” apparaître dans votre navigateur.
Source : http://www.webrankinfo.com/dossiers/techniques/tutoriel-url-rewriting
Problème avec le tag PHP
Ce code pose désormais problème : <? echo $_SERVER['REQUEST_URI'] ?>
Il a fallu le remplacer par <?php echo $_SERVER['REQUEST_URI'] ?>
Configurer MYSQL
- Ouvrir un terminal
sudo mysql_secure_installation
!!! Attention à la longueur du password ! 8 minimum par défaut !!!
Répondre comme suit :
Validate Password Plugin : y Level : 0 (LOW) (length min = 8) New Password for root : taper votre mot de passe Re-enter new password : retaper votre mot de passe Remove anonymous users : y Disallow root login remotely : n Remove test database : n Reload privileges tables : y
S'il y a encore un souci avec le mot de passe :
sudo mysql -u root -p
Taper ce qui suit pour modifier le mot de passe
mysql> FLUSH PRIVILEGES; mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'votre_mot_de_passe';
Si la modification du mot de passe est refusée, vérifier les critères de validation :
mysql> SHOW VARIABLES LIKE 'validate_password%';
Au besoin, modifier ces critères
mysql> SET GLOBAL validate_password.length = longueur minimale souhaitée; mysql> SET GLOBAL validate_password.number_count = 0; mysql> SET GLOBAL validate_password.policy=LOW;
Et remodifier le mot de masse
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'votre_mot_de_passe';
Adminer ?
Nous n'installons plus PHPMyAdmin. AdMiner suffit pour ce qu'on a besoin de faire. Peut-être est-ce votre cas..
Adminer, (ne pas prendre celui des dépôts, périmés), est une solution sans doute suffisante pour bon nombre d'utilisateurs.
Adminer (anciennement phpMinAdmin) est une application Web offrant une interface graphique pour le système de gestion de base de données MySQL, réalisée en PHP et distribuée sous licence Apache. Il se présente comme une alternative légère (plus léger que cela tu meurs) à phpMyAdmin et a pour particularité d'être entièrement contenu dans un seul fichier PHP.
Depuis la version 3.0.0, sortie le 15 octobre 2010, Adminer supporte également les bases de données MS SQL, SQLite, PostgreSQL et Oracle1.
Pour importer des fichiers de grandes tailles et contourner la limite de taille, mettre un .htaccess dans le répertoire adminer et y mettre :
php_value upload_max_filesize 10M php_value post_max_size 20M php_value memory_limit 32M