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 [24/06/2016 08:02] Hypathie [Pour résumer] |
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-prendre-en-main-apache2-sur-jessie [07/12/2020 20:05] Hypathie [Modules Php] |
||
---|---|---|---|
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 224: | Ligne 228: | ||
<code root>service apache2 reload</code> | <code root>service apache2 reload</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 255: | ||
</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 278: | ||
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 750 /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 ===== | ||
- | === Les 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 750 sur le dossier du site** :\\ ''chmod -R 750 /home/utilisateur/site/'' |
* 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> | ||
+ | **Ne pas laisser les droits d’exécution sur les fichiers !** | ||
+ | |||
+ | 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 f -exec chmod 640 {} \;</code> | ||
+ | </note> | ||
===Fichiers de configuration d'apache === | ===Fichiers de configuration d'apache === | ||
Ligne 328: | Ligne 439: | ||
* 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 465: | ||
* 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> | ||