technique:lamp_phpmyadmin

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
technique:lamp_phpmyadmin [2020/09/08 17:28] francoisatechnique:lamp_phpmyadmin [2020/09/14 11:59] (Version actuelle) – supprimée francoisa
Ligne 1: Ligne 1:
-====== Installer serveur Web complet : PHP / MySQL / phpmyadmin ====== 
- 
-Cas où on veut installer un serveur web complet à partir de Debian , avec PHP (plusieurs versions possibles), MySQL (mariaDB) et Phpmyadmin pour une administration simplifiée 
- 
-Cette installation pourrait se faire dans un conteneur de Proxmox par exemple et héberger un ou des sites web comme Booked. 
- 
-Doc : [[https://linuxhint.com/install_phpmyadmin_debian_10|https://linuxhint.com/install_phpmyadmin_debian_10]] (mais ici apache) 
- 
-Conseils de RomainR : Installer Debian + Nginx + PHP-FPM pour pouvoir personnaliser plusieurs version de PHP 
- 
-Cas de [[http://web.cemea.lan|http://web.cemea.lan]] 
- 
-===== 1. Installation Debian 10 ===== 
- 
-Installer Debian 10 à partir d'un template fourni. 
- 
-- Créer un CT, template Debain-10-standard avec un compte root, 1Go de Ram, 512 Mo de swap, 10 Go de disque, firewall désactivé. 
- 
-- Se connecter en mode console en root via Proxmox (xterm.js), editer le fichier /etc/ssh/sshd_config et changer le mode d'autorisation de connexion de root : 
-<code> 
- 
-PermitRootLogin Yes 
- 
-</code> 
- 
-Quitter l'édition du fichier sshd_config et relancer le service ssh 
- 
-<code> 
-systemctl restart sshd.service 
- 
-</code> 
- 
-- Identifier son IP (ip a) et se connecter en SSH dessus depuis un client externe. La connexion avec root devrait fonctionner. 
- 
-<code> 
-ssh root@ip_CT 
- 
-</code> 
- 
-Mettre à jour le CT 
- 
-<code> 
-apt-get update && apt-get dist-upgrade 
- 
-</code> 
- 
-===== 2. Installer MysqL (mariadb) ===== 
- 
-Installation du paquet mariadb et vérification du service : 
- 
-<code> 
-apt install mariadb-server mariadb-client 
- 
-systemctl status mariadb 
- 
-</code> 
- 
-doit renvoyer "enabled" (lancé au démarrage) et "active (running)" 
- 
-==== Sécuration MysqL avec : ==== 
- 
-<code> 
-mysql_secure_installation 
- 
-</code> 
- 
-Par défaut le mot de passe root de mysql est vide, donc 
- 
-<code> 
-Enter current password for root (enter for none): Enter 
- 
-</code> 
- 
-Puis définir le mot de passe "root" de Mysql (y) et entrer le mot de passe. 
- 
-- On supprime le compte anonyme par défaut 
- 
-<code> 
-Remove anonymous user (Y/n) : y 
- 
-</code> 
- 
-- On restreint les connexions root au localhost 
- 
-<code> 
-Disallow root login remotely (Y/n) :  y 
- 
-</code> 
- 
-- Suppression de la base "test" : 
- 
-<code> 
-Remove Test database an access (Y/n) : y 
- 
-</code> 
- 
-- Prise en compte immédiate des changements (Y/n) : y 
- 
-Et c'est tout bon. 
- 
-On peut tester l'accès à mysql avec 
- 
-<code> 
-mysql -u root -p 
- 
-</code> 
- 
-+ mot de passe 
- 
-Et on arrive sur la console mysql> 
- 
-Ex pour créer un utilisateur avec son mot de passe et tous les privilèges sur cette base : 
- 
-<code> 
-GRANT ALL ON *.* TO 'nouvelutilisateur'@'localhost' IDENTIFIED BY 'motdepasse'; 
- 
-FLUSH PRIVILEGES; 
- 
-</code> 
- 
-pour la prise en compte immédiate des changements. 
- 
-''quit;'' ou ''\q'' pour quitter MySQL. 
-===== 3. Installer Serveur Web (nginx) avec PHP ===== 
- 
-[[https://tecadmin.net/install-nginx-php-fpm-debian-10/|https://tecadmin.net/install-nginx-php-fpm-debian-10/]] 
- 
-==== Install du serveur Web ==== 
-<code> 
- 
-apt install nginx 
- 
-</code> 
- 
-Le serveur doit déjà être fonctionnel sur [[http://ip_CT|http://ip_CT]] ("Welcome to nginx" , page présente dans /var/www/html/ ) 
- 
-==== Installation de PHP (ici PHP7.3 par défaut) ==== 
-<code> 
- 
-apt install php php-fpm php-mysqli 
- 
-</code> 
- 
-Le service doit être actif : 
- 
-<code> 
-systemctl status php7.3-fpm 
- 
-</code> 
- 
-Service "enabled" et "active (running)" 
- 
-On peut aussi rajouter des modules complémentaires utiles comme : php-gd, php-json, php-zip (à compléter…). 
- 
-===== 4. Définitions des Virtualhost ===== 
- 
-Création d'un virtualhost (pour héberger un site-espace web) (un fichier "default" existe pour modèle). 
- 
-<code> 
-nano /etc/nginx/sites-available/monsite 
- 
-</code> 
- 
-On définir le port d'écoute, les fichiers lus, son nom, son emplacement (root) et le socket associé (.sock) 
- 
-<code> 
-server { 
-   listen 80; 
-        root /var/www/dossiersite; 
-        index index.php index.html index.htm; 
-        server_name MonSite; 
- 
-        location / { 
-            try_files $uri $uri/ =404; 
-        } 
- 
-        location ~ \.php$ { 
-            include snippets/fastcgi-php.conf; 
-            fastcgi_pass unix:/run/php/php7.3-fpm.sock; 
-        } 
-} 
- 
-</code> 
- 
-On active le virtualhost avec un lien symbolique vers sites-enabled 
- 
-<code> 
-ln -s /etc/nginx/sites-available/monsite /etc/nginx/sites-enabled/monsite 
- 
-</code> 
- 
-Et on redémarre nginx par sécurité (on ne redémarre qu'en cas de plantage ou changement de version, sinon on reloade simplement) 
- 
-<code> 
-systemctl restart nginx.service 
- 
-</code> 
- 
-On teste avec : 
- 
-<code> 
-echo "<?php phpinfo(); ?>"> /var/www/dossiersite/info.php 
- 
-</code> 
- 
-On peut effacer le virtualhostpar défaut 
- 
-<code> 
-rm /etc/nginx/sites-enabled/default 
- 
-</code> 
- 
-Et relancer nginx 
- 
-<code> 
-systemctl restart nginx 
- 
-</code> 
- 
-Et on vérifie sur : [[https://ip_CT/info.php|https://ip_CT/info.php]] 
- 
-on devrait voir un tableau d'infos sur la version de PHP et les modules activés. 
- 
-===== 5. Installation de Phpmyadmin ===== 
- 
-[[https://www.itzgeek.com/how-tos/linux/debian/how-to-install-phpmyadmin-with-nginx-on-debian-10.html|https://www.itzgeek.com/how-tos/linux/debian/how-to-install-phpmyadmin-with-nginx-on-debian-10.html]] 
- 
-[[https://kifarunix.com/install-phpmyadmin-with-nginx-on-debian-10-buster/|https://kifarunix.com/install-phpmyadmin-with-nginx-on-debian-10-buster/]] 
- 
-[[https://www.digitalocean.com/community/tutorials/how-to-install-phpmyadmin-from-source-debian-10|https://www.digitalocean.com/community/tutorials/how-to-install-phpmyadmin-from-source-debian-10]] 
- 
-- Installer les pré-requis : 
-<code> 
- 
-apt install php-{mbstring,zip,gd,xml,pear,gettext,cgi} 
- 
-</code> 
- 
-On adapte le PHP-FPM 
- 
-nano /etc/php/7.3/fpm/php.ini 
- 
-et on modifié le cgi.fix_pathinfo 
- 
-<code> 
-cgi.fix_pathinfo=0 
- 
-</code> 
- 
-Puis redémarrer le service 
- 
-<code> 
-systemctl restart php7.3-fpm.service 
- 
-</code> 
- 
-- Téléchargement de la dernière version depuis le site officiel : [[https://www.phpmyadmin.net/downloads/|https://www.phpmyadmin.net/downloads/]] et exctraction dans /usr/share/phpMyAdmin 
-<code> 
- 
-cd /root/ && wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip 
- 
-unzip phpMyAdmin-5.0.2-all-languages.zip # installer unzip si besoin 
- 
-mv phpMyAdmin-5.0.2-all-languages /usr/share/phpMyAdmin 
- 
-</code> 
- 
-- Copie du fichier de config par défaut 
- 
-<code> 
-cp -pr /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php 
- 
-</code> 
- 
-Edition du fichier et modification du secret pour génération de cookies : ''nano /usr/share/phpMyAdmin/config.inc.php'' 
-<code> 
-$cfg['blowfish_secret'] = 'longuechaineagenererauhasard'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ 
- 
-</code> 
- 
-Décommenter les variables de stockage 
- 
-<code> 
-$cfg['Servers'][$i]['controlhost'] = 'localhost'; 
-// $cfg['Servers'][$i]['controlport'] = ''; 
-$cfg['Servers'][$i]['controluser'] = 'pma'; 
-$cfg['Servers'][$i]['controlpass'] = 'pmapass'; 
- 
-/* Storage database and tables */ 
-$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; 
-$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; 
-$cfg['Servers'][$i]['relation'] = 'pma__relation'; 
-$cfg['Servers'][$i]['table_info'] = 'pma__table_info'; 
-$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; 
-$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; 
-$cfg['Servers'][$i]['column_info'] = 'pma__column_info'; 
-$cfg['Servers'][$i]['history'] = 'pma__history'; 
-$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; 
-$cfg['Servers'][$i]['tracking'] = 'pma__tracking'; 
-$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; 
-$cfg['Servers'][$i]['recent'] = 'pma__recent'; 
-$cfg['Servers'][$i]['favorite'] = 'pma__favorite'; 
-$cfg['Servers'][$i]['users'] = 'pma__users'; 
-$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; 
-$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; 
-$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; 
-$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; 
-$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; 
-$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; 
- 
-</code> 
- 
-Création des tables initiales : 
- 
-mysql < /usr/share/phpMyAdmin/sql/create_tables.sql -u root -p 
- 
-+ Mot de passe SQL de root 
- 
-On se connecter ensuite sur mysql et on attribue les privilèges de cette base à l'utilisateur pma 
- 
-sudo mysql -u root -p 
- 
-+ Mot de passe SQL de root 
- 
-<code> 
-GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'; 
- 
-FLUSH PRIVILEGES; 
- 
-</code> 
- 
-On crée un virtualhost pour phpmyadmin 
- 
-<code> 
-nano /etc/nginx/conf.d/phpMyAdmin.conf 
- 
-</code> 
- 
-et on complète son contenu 
- 
-<code> 
-server { 
-   listen 80; 
-   server_name phpmyadmin.cemea.lan; 
-   root /usr/share/phpMyAdmin; 
- 
-   location / { 
-      index index.php; 
-   } 
- 
-## Images and static content is treated different 
-   location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { 
-      access_log off; 
-      expires 30d; 
-   } 
- 
-   location ~ /\.ht { 
-      deny all; 
-   } 
- 
-   location ~ /(libraries|setup/frames|setup/libs) { 
-      deny all; 
-      return 404; 
-   } 
- 
-   location ~ \.php$ { 
-      include /etc/nginx/fastcgi_params; 
-      fastcgi_pass 127.0.0.1:9000; 
-      fastcgi_index index.php; 
-      fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name; 
-   } 
-} 
- 
-</code> 
- 
-On crée un dossier temporaire avec les droits associés (!!! Bizarre comme méthode. A mettre plutôt dans tmp) 
-<code> 
- 
-mkdir /usr/share/phpMyAdmin/tmp 
- 
-chmod 777 /usr/share/phpMyAdmin/tmp (NE PAS FAIRE) 
- 
-</code> 
- 
-On autorise www:data à accéder au dossier : 
- 
-<code> 
-chown -R www-data:www-data /usr/share/phpMyAdmin 
- 
-</code> 
- 
-Ert on redémarre les services : 
- 
-<code> 
-sudo systemctl restart nginx 
- 
-sudo systemctl restart php7.3-fpm 
- 
-</code> 
- 
-MAIS CA MARCHE PAS : 
- 
-502 Bad Gateway - nginx/1.14.2 
- 
-Il faut sans doute définir un autre port dans le virtualhost pour utiliser le même serveur. 
- 
-===== Cas de plusieurs virtualhosts ===== 
- 
-===== Cas de plusieurs versions de PHP ===== 
- 
-- Utiliser les dépot Sury de PHP à ajouter 
- 
-[[https://packages.sury.org/php/|https://packages.sury.org/php/]] 
- 
-- Connecter les versions de PHP à différents sockets 
- 
-- Personnaliser les virtualhosts à partir de ces sockets. 
- 
-===== Cas des certificats Let's Encrypt pour SSL ===== 
- 
-Des certifcats autosignés suffiraient. 
- 
-===== 5. Cas de plusieurs versions de PHP ===== 
- 
-- Utiliser les dépot Sury de PHP à ajouter 
- 
-[[https://packages.sury.org/php/|https://packages.sury.org/php/]] 
- 
-- Connecter les versions de PHP à différents sockets 
- 
-- Personnaliser les virtualhosts à partir de ces sockets. 
- 
-===== 6. Cas des certificats Let's Encrypt pour SSL ===== 
- 
-Des certifcats autosignés suffiraient. 
- 
  
  • technique/lamp_phpmyadmin.1599578937.txt.gz
  • Dernière modification : 2020/09/08 17:28
  • de francoisa