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 19:55] Hypathie [Le module php7] |
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie [07/12/2020 23:06] 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 140: | Ligne 140: | ||
===Vérifications=== | ===Vérifications=== | ||
- | * En local : Dans le navigateur : **''http://localhost''** | + | * En local : Dans le navigateur : **''localhost''** |
<note tip> | <note tip> | ||
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> | ||
====Création de plusieurs virtualhosts accessibles depuis d'une autre machine du réseau local==== | ====Création de plusieurs virtualhosts accessibles depuis d'une autre machine du réseau local==== | ||
+ | === IP fixe === | ||
+ | Au préalable, il faut aller configurer son routeur (box_machin ADSL) pour qu'il attribut une IP fixe à la machine sur laquel tourne apache. \\ Si l'on veut aussi accéder au site depuis l'extérieur du réseau local, il faut aussi configurer son routeur pour qu'il fasse une redirection de port vers l'IP fixe en question. | ||
+ | |||
===Remarques sur la configuration physique=== | ===Remarques sur la configuration physique=== | ||
+ | |||
* Il n'y a pas à modifier le fichier /etc/hosts de la machine sur laquelle tourne apache2 qui désert le site web: | * Il n'y a pas à modifier le fichier /etc/hosts de la machine sur laquelle tourne apache2 qui désert le site web: | ||
Ligne 226: | Ligne 230: | ||
* 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 291: | Ligne 295: | ||
- | <code root>chmod -R 750 /home/user/www/</code> | + | <code root>chmod -R 2750 /home/user/www/</code> |
Ligne 344: | Ligne 348: | ||
- | On installe les paquets nécessaires. | + | ===On installe les paquets nécessaires=== |
<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> | <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> | ||
<code root>apt -y install libapache2-mod-php</code> | <code root>apt -y install libapache2-mod-php</code> | ||
+ | |||
+ | === On active le mode php === | ||
<code root>a2enmod php7.3</code> | <code root>a2enmod php7.3</code> | ||
Ligne 353: | Ligne 359: | ||
<code root>systemctl restart apache2</code> | <code root>systemctl restart apache2</code> | ||
- | === Configurer Apache pour utiliser un index.php === | + | ==== Fichiers intéressants ==== |
- | Il faut vérifier la directive active directory. | + | Tout est configuré comme il faut, mais à savoir ! |
- | <code user>cd /etc/apache2/mods-available/</code> | + | ===La directive active directory=== |
- | <code root>vim dir.conf</code> | + | <code user>more /etc/apache2/mods-available/dir.conf</code> |
- | <code>DirectoryIndex DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</code> | + | <code bash>DirectoryIndex DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</code> |
- | ==== Autre fichier intéressant ==== | ||
- | <code user>/cd etc/apache2/mods-enabled</code> | + | ===Le fichier php7.3.conf=== |
- | <code root> vim php7.3.conf</code> | + | |
- | il faut modifier le fichier **/etc/apache2/mods-enabled/php7.3.conf** en ajoutant : | + | |
- | <code> | + | <code user> vim php7.3.conf</code> |
+ | <code user>more /etc/apache2/mods-enabled/php7.3.conf</code> | ||
+ | |||
+ | <code bash> | ||
<FilesMatch ".+\.ph(ar|p|tml)$"> | <FilesMatch ".+\.ph(ar|p|tml)$"> | ||
SetHandler application/x-httpd-php | SetHandler application/x-httpd-php | ||
</FilesMatch> | </FilesMatch> | ||
- | |||
</code> | </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''. | ||
+ | |||
+ | |||
Ligne 383: | Ligne 392: | ||
===== 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 388: | Ligne 412: | ||
* **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 395: | Ligne 420: | ||
<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 461: | Ligne 483: | ||
<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 ===== |