Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie [07/12/2020 18:17] Hypathie [Le module php5] |
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie [07/12/2020 22:56] Hypathie [Créer son site web rapidement] |
||
---|---|---|---|
Ligne 71: | Ligne 71: | ||
- | <code root>service apache2 reload</code> | + | <code root>systemctl restart apache2</code> |
</note> | </note> | ||
===Création d'un virtualhost en local pour le site dans /etc/apache2/sites-available/=== | ===Création d'un virtualhost en local pour le site dans /etc/apache2/sites-available/=== | ||
Ligne 113: | Ligne 113: | ||
===Activer le site (cela crée un lien symbolique dans /etc/apache2/sites-enabled/)=== | ===Activer le site (cela crée un lien symbolique dans /etc/apache2/sites-enabled/)=== | ||
<code root>a2ensite hypathie.net.conf</code> | <code root>a2ensite hypathie.net.conf</code> | ||
- | <code root>service apache2 reload</code> | + | <code root>systemctl restart apache2</code> |
Ligne 148: | Ligne 148: | ||
On désactive ce site : | On désactive ce site : | ||
- | <code root>cd /etc/apache2/sites-enabled/ && a2dissite 000-default.conf && service apache2 reload</code> | + | <code root>cd /etc/apache2/sites-enabled/ && a2dissite 000-default.conf && systemctl restart apache2</code> |
</note> | </note> | ||
Ligne 226: | Ligne 226: | ||
* On modifie le fichier /etc/hosts des machines du réseau local avec lesquelles on souhaite se connecter au site web. | * On modifie le fichier /etc/hosts des machines du réseau local avec lesquelles on souhaite se connecter au site web. | ||
- | <code root>service apache2 reload</code> | + | <code root>systemctl restart apache2</code> |
===fichier hosts sur debian === | ===fichier hosts sur debian === | ||
Ligne 341: | Ligne 341: | ||
* Par exemple, dans le navigateur : **''site1.local''** | * Par exemple, dans le navigateur : **''site1.local''** | ||
- | ===== Le module php5 ===== | + | ===== Le module php7 ===== |
- | Sur Jessie inutile d'activer le module avec a2enmod. | ||
- | * Pour les autres paquets concernant php5 : | + | ===On installe les paquets nécessaires=== |
- | <code user>apt-cache search php5</code> | + | <code root>apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json</code> |
- | + | ||
- | * On installe les paquets nécessaires. | + | |
- | <code root>apt -y install php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath</code> | + | <code root>apt -y install libapache2-mod-php</code> |
+ | === On active le mode php === | ||
+ | <code root>a2enmod php7.3</code> | ||
- | ==== Le module php7 ==== | + | <code root>systemctl restart apache2</code> |
+ | ==== Fichiers intéressants ==== | ||
- | On installe les paquets nécessaires. | + | Tout est configuré comme il faut, mais à savoir ! |
- | <code root>apt -y install libapache2-mod-php</code> | + | ===La directive active directory=== |
- | <code root>a2enmod rewrite</code> | + | <code user>more /etc/apache2/mods-available/dir.conf</code> |
- | <code root>a2enmod php7.3</code> | + | <code bash>DirectoryIndex DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</code> |
- | ==== Configurer Apache pour utiliser du code php dans un fichier avec une extension html ==== | ||
- | Il faut vérifier la directive active directory : | + | ===Le fichier php7.3.conf=== |
- | <code user>cd /etc/apache2/mods-available/</code> | + | <code user> vim php7.3.conf</code> |
+ | <code user>more /etc/apache2/mods-enabled/php7.3.conf</code> | ||
- | <code root>vim dir.conf</code>: | + | <code bash> |
- | + | <FilesMatch ".+\.ph(ar|p|tml)$"> | |
- | <code>DirectoryIndex index.html index.php</code> | + | |
- | + | ||
- | <code user>/cd etc/apache2/mods-enabled</code> | + | |
- | <code root> vim php7.3.conf</code> | + | |
- | il faut modifier le fichier **/etc/apache2/mods-enabled/php7.3.conf** en ajoutant : | + | |
- | + | ||
- | <code> | + | |
- | <FilesMatch ".+\.html$"> | + | |
SetHandler application/x-httpd-php | SetHandler application/x-httpd-php | ||
</FilesMatch> | </FilesMatch> | ||
</code> | </code> | ||
- | <code root>systemctl restart apache2</code> | + | Les premières lignes que l'application x-httpd-php interprète les fichier qui se termine soit par ''.phar'', soit par ''.php'' soit par ''.phtml''. |
- | === Test=== | ||
- | Par défaut, le code php est interprété s'il se trouve dans un fichier nommé avec l'extension .php, par exemple index.php.\\ | ||
- | Pour utiliser du code php comme ci-dessous dans un fichier nommé avec l'extension html, par exemple index.html : \\ | ||
- | <code html> | ||
- | <!DOCTYPE html> | ||
- | <html> | ||
- | <head> | ||
- | <meta charset="UTF-8"> | ||
- | <title>test1.net _ index.html</title> | ||
- | </head> | ||
- | |||
- | <body> | ||
- | <h1>Bienvenue sur le site de test de /var/www/test1.net/index.php ! </h1> | ||
- | <?php | ||
- | phpinfo(); | ||
- | |||
- | ?> | ||
- | </body> | ||
- | </html> | ||
- | </code> | ||
Ligne 416: | Ligne 388: | ||
===== Pour résumer ===== | ===== Pour résumer ===== | ||
+ | |||
+ | |||
+ | ===Fichiers de log d'apache === | ||
+ | |||
+ | * Erreurs | ||
+ | <code user>more /var/log/apache2/error.log</code> | ||
+ | |||
+ | Par exemple erreur suivante indique un problème de droit sur le fichier index.php | ||
+ | |||
+ | <code>[Mon Dec 07 19:18:33.354048 2020] [php7:error] [pid 5220] [client ::1:38114] PHP Fatal error: Unknown: Failed opening required '/home/user/www/mon_site.com/index.php' (include_path='.:/usr/share/php') in Unknown on line 0 | ||
+ | </code> | ||
+ | |||
+ | * Accès | ||
+ | |||
+ | <code user>more /var/log/apache2/access.log</code> | ||
=== Propriétés et droits === | === Propriétés et droits === | ||
Ligne 421: | Ligne 408: | ||
* **On donne les propriétés** : utilisateur du site et au groupe www-data :\\ ''chown -R utilisateur:www-data /chemin/du/site/'' | * **On donne les propriétés** : utilisateur du site et au groupe www-data :\\ ''chown -R utilisateur:www-data /chemin/du/site/'' | ||
- | * **On donne récursivement les droits 750 sur le dossier du site** :\\ ''chmod -R 750 /home/utilisateur/site/'' | + | * **On donne récursivement les droits 2750 sur le dossier du site** :\\ ''chmod -R 750 /home/utilisateur/site/'' |
+ | * SGID sur un fichier ou un dossier, Valeur octale : 2000, valeur symbolique : s | ||
* les droits de lecture + écriture + exécution pour l'utilisateur (7) | * les droits de lecture + écriture + exécution pour l'utilisateur (7) | ||
* les droits de lecture + exécution pour le groupe www-data (5) | * les droits de lecture + exécution pour le groupe www-data (5) | ||
Ligne 428: | Ligne 416: | ||
<note tip> | <note tip> | ||
- | **Ne pas laisser les droits d’exécution sur les fichiers !** | + | Pour les //paranoïdes// de la sécurité.\\ |
- | + | ||
- | Si le droit d'exécution est nécessaire pour traverser les sous-dossiers du site, quand ceux-ci contiendront les fichiers de code source, mieux vaut retirer récursivement depuis le dossier racine du site le droit d'exécution sur tous les fichiers.\\ | + | |
- | + | ||
- | Pour ce faire : | + | |
+ | <code root>cd /chemin/dossier/site_web && find . -type d -exec chmod 2750 {} \;</code> | ||
<code root>cd /chemin/dossier/site_web && find . -type f -exec chmod 640 {} \;</code> | <code root>cd /chemin/dossier/site_web && find . -type f -exec chmod 640 {} \;</code> | ||
</note> | </note> | ||
Ligne 494: | Ligne 479: | ||
<code root>a2dismod nomModule</code> | <code root>a2dismod nomModule</code> | ||
- | ===== Modules Php ===== | ||
- | |||
- | Pour installer un module php en fonction de sa version de php | ||
- | |||
- | <code user> | ||
- | php -v | ||
- | </code> | ||
- | |||
- | Puis | ||
- | |||
- | <code root> | ||
- | apt-get install php[version-here]-sqlite3 | ||
- | </code> | ||
===== Pour un projet symfony5 ===== | ===== Pour un projet symfony5 ===== |