logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

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
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie [16/06/2020 15:49]
Hypathie [Pour un projet symfony5]
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie [17/09/2023 10:36] (Version actuelle)
Hypathie [Pour un projet symfony5]
Ligne 1: Ligne 1:
-====== ​Créer son site web en php _ prendre ​en main Apache2 ======+====== ​Prendre ​en main Apache2 ======
  
  
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 une autre machine du réseau local===== 
-===Remarques sur la configuration physique=== +==== IP fixe ==== 
-  * Il n'y a pas à modifier le fichier /etc/hosts de la machine sur laquelle ​tourne ​apache2 qui désert le site web:+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.
  
-<code user>​less /​etc/​hosts</​code>​ 
- 
-<​code>​ 
-127.0.0.1 ​      ​localhost 
-127.0.1.1 ​      db 
-127.0.1.1 ​      ​hypathie.net 
- 
- 
-# The following lines are desirable for IPv6 capable hosts 
-::1     ​localhost ip6-localhost ip6-loopback 
-ff02::1 ip6-allnodes 
-ff02::2 ip6-allrouters 
-</​code>​ 
- 
- 
-  *On part du principe que : 
-    * la machine sur laquelle tourne apache2 a pour ip :​192.168.0.17 
-    * la machine distante du réseau local a pour ip : 192.168.0.14 
  
 +==== Plusieurs fichiers pour chaque site ====
  
-  *Qu'​on ​a créé plusieurs ​fichiers de code source ​pour les différents ​sites qui correspondront aux virtualhosts qui vont être créés plus bas. +  * On a créé plusieurs ​dossiers ​pour ses sites contenant ​chacun un index.html différent. 
-Par exemple, on a créé les dossiers ''​essai''​ et ''​test''​ dans le dossier ''/​var/​www/'',​ avec dans chacun ​d'​eux ​un dossier ''​public''​ qui contient une page web d'​accueil.\\ +(voir plus haut si besoin)
  
 <code user>ls /​var/​www/</​code>​ <code user>ls /​var/​www/</​code>​
 <​code>​essai ​ html  hypathie.net ​ test</​code>​ <​code>​essai ​ html  hypathie.net ​ test</​code>​
  
-===Créations de plusieurs virtualhosts ​pour une même ip ===+====Créations de plusieurs virtualhosts ​====
 Comme plus haut : Comme plus haut :
  
Ligne 225: Ligne 208:
 <code root>​a2ensite test.conf</​code>​ <code root>​a2ensite test.conf</​code>​
  
-  * On modifie le fichier /etc/hosts des machines du réseau local avec lesquelles on souhaite se connecter au site web. +  * On redémarre apache :
-<code root>​service apache2 reload</​code>​+
  
-===fichier hosts sur debian ​===+<code root>​systemctl restart apache2</​code>​ 
 + 
 +====Configurer le fichier ​/etc/hosts ====
 On configure le fichier hosts des ordinateurs distants du réseau local susceptibles de se connecter aux sites ''​test.local''​ et ''​essai.local''​ : On configure le fichier hosts des ordinateurs distants du réseau local susceptibles de se connecter aux sites ''​test.local''​ et ''​essai.local''​ :
  
-Par exemple pour la machine d'ip : 192.168.0.14,​ qui se connectera sur le serveur d'ip 192.168.0.17 sur lequel tourne apache2 ​:+L'ip 192.168.0.17 ​est celle du réseau local sur lequel tourne apache2. Elle a été fixé au niveau du routeur.
  
 <code root>vim /​etc/​hosts</​code>​ <code root>vim /​etc/​hosts</​code>​
Ligne 240: Ligne 224:
 192.168.0.17 ​   test.local 192.168.0.17 ​   test.local
 192.168.0.17 ​   essai.local 192.168.0.17 ​   essai.local
- 
  
  
Ligne 255: Ligne 238:
 </​note>​ </​note>​
  
-===fichier hosts sur windows ===+====Le fichier hosts sur windows ​====
  
 On édite le fichier hosts qui se trouve : ''​C:​\Windows\System32\drivers\etc''​ On édite le fichier hosts qui se trouve : ''​C:​\Windows\System32\drivers\etc''​
Ligne 270: Ligne 253:
 </​code>​ </​code>​
  
-===On teste===  +====On teste==== 
-    * Dans le navigateur ​de la machine d'ip 192.168.0.14 ​de son réseau local : **''​essai.local''​** +  * Dans le navigateur ​depuis une autre machine ​du réseau local, par exemple une d'ip 192.168.0.14 : **''​essai.local''​** 
-    Dans le navigateur de la machine d'ip 192.168.0.14 de son réseau local : **''​test.local''​**+  Puis idem pour : **''​test.local''​**
  
  
-  * On teste depuis l'​extérieur de son réseau local :​**''​http://​ip_du_routeur_de_son_fai/​essai.local''​** +  * Pour tester ​depuis l'​extérieur de son réseau local :​**''​http://​ip_du_routeur_de_son_fai/​essai.local''​** ​
-Pour ce faire, il faut configurer son routeur pour rediriger les connexions extérieures qui viennent toc-toquer sur sa box-machin, dans cet exemple vers l'ip 192.168.0.17 de la machine sur laquelle tourne apache2.+
  
-==== Installer son site dans son répertoire personnel ==== 
  
-===On crée un dossier Web ===+===== Installer son site dans son répertoire personnel ===== 
 +<note tip> 
 +Attention de modifier ''​user''​ par l'​utilisateur qui est propriétaire du dit répertoire ! 
 +</​note>​ 
 +====On crée un dossier Web ====
  
-<code user>​mkdir ​Web/</​code>​+<code user>​mkdir /home/​user/​www/​site1</​code>​
  
-=== On donne propriétés et droits ===+==== On donne propriétés et droits ​====
  
-<code root>​chown -R hypathie:www-data /home/hypathie/Web/</​code>​+<code root>​chown -R user:www-data /home/user/www/</​code>​
  
-<note tip> 
-Attention de modifier ''​hypathie''​ par l'​utilisateur voulu ! 
-</​note>​ 
  
-<code root>​chmod -R 750 /home/hypathie/Web/</​code>​+<code root>​chmod -R 755 /home/user/www/</​code>​
  
-=== On déplace ​le dossier du site ===+<​note>​ 
 +Si on veut que www-data puisse écrire (log ou autre) il faut ajouter les droits d'​écriture pour le groupe : \\  
 +''​chmod -R 775 /​home/​user/​www/''​ \\
  
-<code user>cd /var/www/ && mv essai/ ~/​Web/</​code>​+  * 700 : 4 (lecture) + 2 (écriture) + 1 (exécution) pour l'​utilisateur 
 +  * 070 : idem pour le groupe 
 +  * 005 : 2 (écriture) + 1 (exécution) pour les autres 
 +  Avec -R pour récursif dans les répertoires,​ il faut le droit d'​éxécution pour traverser un répertoire.
  
-<note tip> 
-En user si on a modifier les droits sur ''​www'',​ sinon en root ! 
 </​note>​ </​note>​
  
-=== On crée un lien symbolique vers le répertoire utilisateur dans www ===+==== On crée un dossier pour le site1 et un index.html pour tester ====
  
-<code user>ln -s ~/Web/essai/ /var/www/essai</​code>​+<code user>cd /home/user/www&& mkdir site1/</​code>​
  
-Il n'y a rien de plus à faire, ni à modifier le virtualhost ni à recharger apache.+<code user>vim site1/index.html/</​code>​
  
-=== Avec la configuration du virtualhost ===+ 
 +==== On crée un lien symbolique vers le répertoire utilisateur dans www ==== 
 + 
 +<code root>ln -s /​home/​user/​www/​site1/​ /​var/​www/​site1</​code>​ 
 + 
 +==== On lui crée un virtualhost ​====
  
 On donne le chemin du dossier de son répertoire personnel dans le virtualhost. On donne le chemin du dossier de son répertoire personnel dans le virtualhost.
 +
 +<code root>vim /​etc/​apache2/​sites-available/​site1.conf</​code>​
  
 <​code><​VirtualHost *:80> <​code><​VirtualHost *:80>
-        ServerName ​test.local+        ServerName ​site1.local
         ServerAdmin webmaster@localhost         ServerAdmin webmaster@localhost
-        DocumentRoot /home/user/dossier-racine-du-site/+        DocumentRoot /home/user/www/site1/
  
-        <​Directory /home/user/dossier-racine-du-site/+        <​Directory /home/user/www/site1/
           require all granted           require all granted
           AllowOverride All           AllowOverride All
Ligne 330: Ligne 322:
 </​code>​ </​code>​
  
-==== Le module php5 ====+<code root> 
 +a2ensite site1.conf 
 +</​code>​
  
-Sur Jessie inutile d'​activer le module avec a2enmod.+<code root> 
 +systemctl reload apache2 
 +</​code>​
  
-    * Pour les autres paquets concernant php5 : +===On teste : ===
-<code user>​apt-cache search php5</​code>​ +
-   +
-  * On installe les paquets nécessaires.+
  
-<code root>​apt-get install php5 libapache2-mod-php5</​code>​+* Par exemple, dans le navigateur ​ : **''​site1.local''​**
  
 +===== Le module php7 =====
  
  
-==== Le module php7 ====+===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 -y install libapache2-mod-php</​code>​
  
-  * Pour les autres paquets concernant php7 : +=== On active le mode php ===
-<code user>​apt-cache search php7</​code>​+
  
-  * On installe les paquets nécessaires.+<code root>​a2enmod php7.3</​code>​
  
-<code root>apt install php-pear php7.4 libapache2-mod-php7.4</​code>​+<code root>systemctl restart apache2</​code>​
  
-==== Configurer Apache pour utiliser du code php dans un fichier avec une extension html ====+==== Fichiers intéressants  ​====
  
-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.\\ +===php.ini ===
-Pour utiliser du code php comme ci-dessous dans un fichier nommé avec l'​extension html, par exemple index.html : \\+
  
-<​code ​html   +<​code ​root>/etc/php/7.[version]/apache2/php.ini </code>
-<​!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();+
  
-    ?> +<code
- </body+file_uploads = On 
-</​html>​+allow_url_fopen = On 
 +short_open_tag = On 
 +memory_limit = 256M 
 +upload_max_filesize = 100M 
 +max_execution_time = 360
 </​code>​ </​code>​
  
-il faut modifier le fichier **/​etc/​apache2/​mods-enabled/​php7.4.conf** en ajoutant :\\+===La directive active directory===
  
-<​code>​ +<​code ​user>​more /​etc/​apache2/​mods-available/​dir.conf</​code>​ 
-<​FilesMatch ".+\.html$">+ 
 +<code bash>​DirectoryIndex DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</​code>​ 
 + 
 + 
 +===Le fichier php7.3.conf=== 
 + 
 +<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)$">
     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''​.
 +
 +
 +
 +
 +
 +
  
  
  
 ===== 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 393: 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 400: 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.\\  +<code root>cd /​home/​nathalie/​www/​ && find -type d -exec chmod 2775 {} \;</​code>​ 
- +<code root>cd /home/​nathalie/www/ && find . -type f -exec chmod 0664 {} \;</​code> ​
-Pour ce faire : +
- +
-<code root>cd /chemin/dossier/site_web ​&& find . -type f -exec chmod 640 {} \;</​code> ​+
 </​note>​ </​note>​
  
Ligne 439: Ligne 456:
  
   * Relancer le service d'​apache après une modification d'un ou plusieurs fichiers de configuration   * Relancer le service d'​apache après une modification d'un ou plusieurs fichiers de configuration
-__**Sur Jessie**__ 
-<code root>​service apache2 reload</​code>​ 
-<​note>​ 
-On peut faire aussi : 
-<​code>​{start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean}</​code>​ 
-</​note>​ 
- 
-__**Sur Buster (debian10)**__ 
  
 <code root>​systemctl reload apache2</​code>​ <code root>​systemctl reload apache2</​code>​
Ligne 466: Ligne 475:
 <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 =====
  
-==== On installe ​Apache2 ​si c'est pas fait ====+Apache2 ​et php7 sont installés.
  
-<code root>apt install apache2</​code>​ 
  
-==== On installe php7 ==== 
- 
-<code root> 
-apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-sqlite3 php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-ldap php7.2-gd php7.2-bcmath php7.2-xml php7.2-cli php7.2-zip 
-</​code>​ 
- 
-==== On configure php pour Apache ainsi==== 
- 
-<code root>/​etc/​php/​7.[version]/​apache2/​php.ini </​code>​ 
- 
-<​code>​ 
-file_uploads = On 
-allow_url_fopen = On 
-short_open_tag = On 
-memory_limit = 256M 
-upload_max_filesize = 100M 
-max_execution_time = 360 
-</​code>​ 
  
 ==== On crée un virtualhost de même nom que le projet symfony==== ==== On crée un virtualhost de même nom que le projet symfony====
Ligne 509: Ligne 486:
 cd /​etc/​apache2/​sites-available && vim TestSymfony cd /​etc/​apache2/​sites-available && vim TestSymfony
 </​code>​ </​code>​
-apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-sqlite3 php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-ldap php7.2-gd php7.2-bcmath php7.2-xml php7.2-cli php7.2-zip+
 <​code>​ <​code>​
 <​VirtualHost *:80> <​VirtualHost *:80>
Ligne 530: Ligne 507:
  
 ==== On donne les bons droits au dossier du projet ==== ==== On donne les bons droits au dossier du projet ====
 +Symfony a besoin du droit d’exécution de certains fichiers.
  
 <code root> <code root>
-chown -R user:www-data /​var/​www/​TestSymfony/​ +chown -R www-data:www-data /​var/​www/​TestSymfony/​ 
-chmod -R 750 /​var/​www/​TestSymfony/​ +chmod -R 755 /​var/​www/​TestSymfony/​ 
-cd /​var/​www/​TestSymfony  +
-find . -type f -exec chmod 640 {} \;+
 </​code>​ </​code>​
  
Ligne 573: Ligne 550:
 </​code>​ </​code>​
  
 +Le dossier web /var/www appartient à root :
 +
 +<code root>
 +chmod -R 777 /var/www/
 +</​code>​
  
 Pour créer une application plus légère comme un microservice,​ une app console ou une API dans une certaine version du framework : Pour créer une application plus légère comme un microservice,​ une app console ou une API dans une certaine version du framework :
Ligne 595: Ligne 577:
 </​code>​ </​code>​
  
 +
 +On n'​oublie de remettre les droits d'​origines à /var/www
 +
 +<code root>
 +chmod -R 755 /var/www/
 +</​code>​
 +
 +Avec un virualhost qui pointe dans un répertoire personnel pour symfony :
 +
 +<code root>
 +chmod -R 2775 /var/www/
 +</​code>​
 +===== Pour un projet symfony5 =====
 +
 +1. À la racine du projet symfony on ajoute un fichier dans public/​.htaccess
 +
 +<code file>
 +# Use the front controller as index file. It serves as a fallback solution when
 +# every other rewrite/​redirect fails (e.g. in an aliased environment without
 +# mod_rewrite). Additionally,​ this reduces the matching process for the
 +# start page (path "/"​) because otherwise Apache will apply the rewriting rules
 +# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
 +DirectoryIndex index.php
 +
 +# By default, Apache does not evaluate symbolic links if you did not enable this
 +# feature in your server configuration. Uncomment the following line if you
 +# install assets as symlinks or if you experience problems related to symlinks
 +# when compiling LESS/​Sass/​CoffeScript assets.
 +# Options +FollowSymlinks
 +
 +# Disabling MultiViews prevents unwanted negotiation,​ e.g. "/​index"​ should not resolve
 +# to the front controller "/​index.php"​ but be rewritten to "/​index.php/​index"​.
 +<​IfModule mod_negotiation.c>​
 +    Options -MultiViews
 +</​IfModule>​
 +
 +<​IfModule mod_rewrite.c>​
 +    # This Option needs to be enabled for RewriteRule,​ otherwise it will show an error like
 +    # '​Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden'​
 +    Options +FollowSymlinks
 +
 +    RewriteEngine On
 +
 +    # Determine the RewriteBase automatically and set it as environment variable.
 +    # If you are using Apache aliases to do mass virtual hosting or installed the
 +    # project in a subdirectory,​ the base path will be prepended to allow proper
 +    # resolution of the index.php file and to redirect to the correct URI. It will
 +    # work in environments without path prefix as well, providing a safe, one-size
 +    # fits all solution. But as you do not need it in this case, you can comment
 +    # the following 2 lines to eliminate the overhead.
 +    RewriteCond %{REQUEST_URI}::​$0 ^(/​.+)/​(.*)::​\2$
 +    RewriteRule .* - [E=BASE:%1]
 +
 +    # Sets the HTTP_AUTHORIZATION header removed by Apache
 +    RewriteCond %{HTTP:​Authorization} .+
 +    RewriteRule ^ - [E=HTTP_AUTHORIZATION:​%0]
 +
 +    # Redirect to URI without front controller to prevent duplicate content
 +    # (with and without `/​index.php`). Only do this redirect on the initial
 +    # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
 +    # endless redirect loop (request -> rewrite to front controller ->
 +    # redirect -> request -> ...).
 +    # So in case you get a "too many redirects"​ error or you always get redirected
 +    # to the start page because your Apache does not expose the REDIRECT_STATUS
 +    # environment variable, you have 2 choices:
 +    # - disable this feature by commenting the following 2 lines or
 +    # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
 +    #   ​following RewriteCond (best solution)
 +    RewriteCond %{ENV:​REDIRECT_STATUS} =""​
 +    RewriteRule ^index\.php(?:/​(.*)|$) %{ENV:​BASE}/​$1 [R=301,L]
 +
 +    # If the requested filename exists, simply serve it.
 +    # We only want to let Apache serve files and not directories.
 +    # Rewrite all other queries to the front controller.
 +    RewriteCond %{REQUEST_FILENAME} !-f
 +    RewriteRule ^ %{ENV:​BASE}/​index.php [L]
 +</​IfModule>​
 +
 +<​IfModule !mod_rewrite.c>​
 +    <​IfModule mod_alias.c>​
 +        # When mod_rewrite is not available, we instruct a temporary redirect of
 +        # the start page to the front controller explicitly so that the website
 +        # and the generated links can still be used.
 +        RedirectMatch 307 ^/$ /index.php/
 +        # RedirectTemp cannot be used instead
 +    </​IfModule>​
 +</​IfModule>​
 +</​code>​
 +
 +2. On active le mode rewrite d'​apache
 +
 +<code root>
 +a2enmod rewrite && systemctl restart apache2
 +</​code>​
utilisateurs/hypathie/tutos/creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie.1592315389.txt.gz · Dernière modification: 16/06/2020 15:49 par Hypathie

Pied de page des forums

Propulsé par FluxBB