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
Prochaine révision Les deux révisions suivantes
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie [24/06/2016 08:03]
Hypathie [Pour résumer]
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 1: Ligne 1:
-====== ​Créer son site web en php _ prendre ​en main Apache2 ​sur Jessie ​======+====== ​Prendre ​en main Apache2 ======
  
  
Ligne 26: Ligne 26:
  
 <code root>​apt-get install build-essential </​code>​ <code root>​apt-get install build-essential </​code>​
 +
 +
 +<code root>​apt-get install apache2</​code>​
 +
  
 Dans ce wiki : la prise en main d'​apache2 qui est le serveur web ! Dans ce wiki : la prise en main d'​apache2 qui est le serveur web !
Ligne 67: 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 109: 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 136: Ligne 140:
 ===Vérifications=== ===Vérifications===
  
-  * En local : Dans le navigateur : **''​http://localhost''​**+  * En local : Dans le navigateur : **''​localhost''​**
  
 <note tip> <note tip>
Ligne 144: 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 222: 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>​
  
-  * On configure le fichier hosts des ordinateurs distants du réseau local susceptibles de se connecter aux sites ''​test.local''​ et ''​essai.local''​ :+===fichier hosts sur debian === 
 +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 : 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 :
Ligne 250: Ligne 259:
 </​note>​ </​note>​
  
-  * On teste +===fichier hosts sur windows === 
 + 
 +On édite le fichier hosts qui se trouve ​''​C:​\Windows\System32\drivers\etc''​ 
 + 
 +On y ajoute l'ip du serveur debian qui se trouve sur le sous-réseau : 
 +<​code>#​ localhost name resolution is handled within DNS itself. 
 + 127.0.0.1 ​      ​localhost 
 + ::1             ​localhost 
 + 
 + 192.168.0.17 ​   db 
 + 192.168.0.17 ​   test.local 
 + 192.168.0.17 ​   essai.local 
 + 
 +</​code>​ 
 + 
 +===On teste=== ​
     * Dans le navigateur de la machine d'ip 192.168.0.14 de son réseau local : **''​essai.local''​**     * Dans le navigateur de la machine d'ip 192.168.0.14 de son réseau local : **''​essai.local''​**
     * Dans le navigateur de la machine d'ip 192.168.0.14 de son réseau local : **''​test.local''​**     * Dans le navigateur de la machine d'ip 192.168.0.14 de son réseau local : **''​test.local''​**
Ligne 258: Ligne 282:
 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. 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 ====+===== 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 ====
  
-===On crée un dossier Web ===+<code user>​mkdir /​home/​user/​www/​site1</​code>​
  
-<code user>​mkdir Web/</​code>​+==== On donne propriétés et droits ====
  
-=== On donne propriétés et droits ===+<code root>​chown -R user:​www-data /​home/​user/​www/</​code>​
  
-<code root>​chown -R hypathie:​www-data /​home/​hypathie/​Web/</​code>​ 
  
-<note tip> +<code root>chmod -R 2750 /​home/​user/​www/​</code>
-Attention de modifier ''​hypathie''​ par l'​utilisateur voulu ! +
-</note>+
  
-<code root>​chmod -R 750 /​home/​hypathie/​Web/</​code>​ 
  
-=== On déplace le dossier ​du site ===+==== On crée un dossier ​pour le site1 et un index.html pour tester ====
  
-<code user>cd /var/www/ && ​mv essai/ ~/Web/</​code>​+<code user>cd /home/user/www/ && ​mkdir site1/</​code>​
  
-<note tip> +<code user>vim site1/​index.html/​</code>
-En user si on a modifier les droits sur ''​www'',​ sinon en root ! +
-</note>+
  
-=== On crée un lien symbolique vers le répertoire utilisateur dans www === 
  
-<​code ​user>ln -s ~/Web/essai/ /​var/​www/​essai</​code>​+==== On crée un lien symbolique vers le répertoire utilisateur dans www ==== 
 + 
 +<​code ​root>ln -s /home/​user/​www/site1/ /​var/​www/​essai</​code>​
  
 Il n'y a rien de plus à faire, ni à modifier le virtualhost ni à recharger apache. Il n'y a rien de plus à faire, ni à modifier le virtualhost ni à recharger apache.
 +
 +==== On lui crée un virtualhost ====
 +
 +On donne le chemin du dossier de son répertoire personnel dans le virtualhost.
 +
 +<​code><​VirtualHost *:80>
 +        ServerName site1.local
 +        ServerAdmin webmaster@localhost
 +        DocumentRoot /​home/​user/​www/​site1/​
 +
 +        <​Directory /​home/​user/​www/​site1/​
 +          require all granted
 +          AllowOverride All
 +        </​Directory>​
 +
 +        LogLevel info
 +
 +        ErrorLog ${APACHE_LOG_DIR}/​error.log
 +        CustomLog ${APACHE_LOG_DIR}/​access.log combined
 +
 +</​VirtualHost>​
 +</​code>​
 +
 +<code root>
 +a2ensite site1.local
 +</​code>​
 +
 +<code root>
 +systemctl reload apache2
 +</​code>​
 +
 +===On teste : ===
 +
 +* Par exemple, dans le navigateur ​ : **''​site1.local''​**
 +
 +===== 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>​
 +
 +=== On active le mode php ===
 +
 +<code root>​a2enmod php7.3</​code>​
 +
 +<code root>​systemctl restart apache2</​code>​
 +
 +==== Fichiers intéressants ​ ====
 +
 +Tout est configuré comme il faut, mais à savoir !
 +
 +===La directive active directory===
 +
 +<code user>​more /​etc/​apache2/​mods-available/​dir.conf</​code>​
 +
 +<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
 +</​FilesMatch>​
 +</​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 ===
  
-  * __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)
     * aucun droit pour les autres (0)     * aucun droit pour les autres (0)
 +
 +
 +<note tip>
 +Pour les //​paranoïdes//​ de la sécurité.\\ ​
 +
 +<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> ​
 +</​note>​
  
 ===Fichiers de configuration d'​apache === ===Fichiers de configuration d'​apache ===
Ligne 328: 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>​ <code root>​service apache2 reload</​code>​
 <​note>​ <​note>​
 On peut faire aussi : On peut faire aussi :
 <​code>​{start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean}</​code>​ <​code>​{start|stop|graceful-stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean}</​code>​
 +</​note>​
 +
 +__**Sur Buster (debian10)**__
 +
 +<code root>​systemctl reload apache2</​code>​
 +<​note>​
 +Info sur systemctl : https://​www.linuxtricks.fr/​wiki/​systemd-les-commandes-essentielles
 +
 </​note>​ </​note>​
  
Ligne 345: Ligne 482:
   * Désactiver un module :   * Désactiver un module :
 <code root>​a2dismod nomModule</​code>​ <code root>​a2dismod nomModule</​code>​
 +
 +
 +===== Pour un projet symfony5 =====
 +
 +==== On installe Apache2 si c'est pas fait ====
 +
 +<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====
 +<code root>
 +cd /​etc/​apache2/​sites-available && vim TestSymfony
 +</​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>​
 +<​VirtualHost *:80>
 +   ​ServerName TestSymfony
 + 
 +   ​DocumentRoot /​var/​www/​TestSymfony/​public/​
 +   
 +   <​Directory /​var/​www/​TestSymfony/​public/>​
 + Options FollowSymLinks MultiViews
 + AllowOverride All
 + Order allow,deny
 +        Allow from All
 +   </​Directory>​
 + 
 +   ​ErrorLog /​var/​log/​apache2/​project_error.log
 +   ​CustomLog /​var/​log/​apache2/​projec_access.log combined
 +</​VirtualHost>​
 +</​code>​
 +
 +
 +==== On donne les bons droits au dossier du projet ====
 +Symfony a besoin du droit d’exécution de certains fichiers.
 +
 +<code root>
 +chown -R www-data:​www-data /​var/​www/​TestSymfony/​
 +chmod -R 755 /​var/​www/​TestSymfony/​
 +
 +</​code>​
 +
 +
 +==== On crée un lien symbolique vers "site enable"​ ====
 +
 +<code root>
 +a2ensite TestSymfony && systemctl restart apache2.service
 +</​code>​
 +
 +=== Discuter avec Apache ===
 +<code root>
 +systemctl [stop|start|enable] apache2.service
 +</​code>​
 +
 +
 +==== On installe symfony ====
 +
 +<code user>
 +mkdir InstallSymfonyComposer
 +cd InstallSymfonyComposer/​
 +wget https://​getcomposer.org/​installer
 +
 +php installer
 + 
 +cp composer.phar composer.phar_copy
 +
 +sudo mv composer.phar /​usr/​local/​bin/​composer
 +
 +sudo chmod +x /​usr/​local/​bin/​composer
 +
 +cd /var/www/
 +</​code>​
 +
 +<code user>
 +composer create-project symfony/​skeleton TestSymfony
 +</​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 :
 +<code user>
 +composer create-project symfony/​skeleton TestSymfony [^version_voulue]
 +</​code>​
 +
 +ou
 +<code user> ​
 +symfony new my_project [--version=lts|stable|4.4]
 +</​code>​
 +
 +Pour créer une application web traditionnelle :
 +<code user>
 +composer create-project symfony/​website-skeleton TestSymfony
 +</​code>​
 +
 +ou 
 +
 +<code user>
 +symfony new --full my_project [--version=lts|stable|4.4]
 +</​code>​
 +
 +
 +On n'​oublie de remettre les droits à /var/www
 +
 +<code root>
 +chmod -R 755 /var/www/
 +</​code>​
  
utilisateurs/hypathie/tutos/creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie.txt · Dernière modification: 17/09/2023 10:36 par Hypathie

Pied de page des forums

Propulsé par FluxBB