Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Chargement du mineur pour soutenir Vision du Web ...
Démarrer le mineur va utiliser les ressources de votre machine pour créer de la monnaie numérique Monero.
Le montant des donations pour Vision du web est de 0.018026365499642 Monero.

Installer Apache2 sur Debian : Différence entre versions

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
m (Bibliographie)
m (Bibliographie)
 
Ligne 271 : Ligne 271 :
  
 
Debian 9 - Apoache MariaDB PHPMyAdmin : http://jc.etiemble.free.fr/abc/index.php/realisations/trucs-astuces/deb9php7
 
Debian 9 - Apoache MariaDB PHPMyAdmin : http://jc.etiemble.free.fr/abc/index.php/realisations/trucs-astuces/deb9php7
 +
 +
Installer Apache PHP MySQL et Webmin : https://www.skyminds.net/serveur-dedie-installation-dapache-php-mysql-et-webmin/
  
 
{{Transclusion_Navigation}}
 
{{Transclusion_Navigation}}

Version actuelle datée du 12 novembre 2017 à 22:55

Exemples

Le besoin premier est de pouvoir envoyer des mails avec un serveur fonctionnel.
Mon étude ne porte pas sur l'ensemble des impactes de sécurité : 391 directives de configuration pour Apache 2.2 .

Paramètres pour envoyer les mails dans php.ini avec le paramètre -f dans sendmail_path.

Mise en place des logs pour la remontée des erreurs.
Les logs de Apache pour PHP sont à configurer - à identifer.
Les logs des Mails sont à configurer - à identifier.

Redémarrer les services de Apache en ligne de commande

# /etc/init.d/httpd restart
Exemple de redémarrage
Arrêt de httpd :
OK
Démarrage de httpd : [Fri May 30 00:28:20 2014] [warn] NameVirtualHost *:443 has no VirtualHosts
[Fri May 30 00:28:20 2014] [warn] NameVirtualHost *:80 has no VirtualHosts [ OK ]

Savoir si Apache écoute Internet

netstat -ntlp | grep ":80"
tcp  0 0 :::80  :::*  LISTEN 3996/httpd

Trouver le service PHP

whereis php
php: /usr/bin/php /etc/php.d /etc/php.ini /usr/lib64/php /usr/share/php /usr/share/man/man1/php.1.gz

Vérifiez les fichiers logs régulièrement dans /var/log/ afin de détecter les erreurs

Le contenu du dossier var/log/ est lu et copié en local avant la mise en place du nouveau php.ini de développement.
Les logs de PHP sont configurés depuis le php.ini de Apache. Chemin : /var/log/phpini/error_log.log
Les logs des Mails sont configurés depuis le php.ini de Apache. Chemin : /var/log/phpini/mail.log.log
0- Créer le dossier phpini : mkdir phpini
1- Créer le fichier de log sur le serveur : touch /var/log/error_log.log et touch /var/log/mail.log.log
2- Mettre les droits en écriture sur le fichier si nécessaire.
3- Ouvrir le fichier php.ini en lecture/écriture, avec Nano : nano /etc/php.ini
4- Appliquer les changements listés dans l'étude du php.ini
5- Redémarrer apache : /etc/init.d/httpd restart
7- Tester les logs suite à l'envoi d'un mail : cat /var/log/phpini-log-mail.log
8- Passer le paramètre -f pour l'envoie des mails ?
Exemple de fichier php.ini qui m'a servit de référence sur une Centos en 2014 : Exemple Apache pour le fichier php ini

Informations complémentaires

user_ini.filename et user_ini.cache_ttl ont été ajoutées pour contrôler l'utilisation des fichiers INI utilisateurs.
exit_on_timeout a été ajouté pour forcer les fils Apache 1.x à se terminer si un délai d'exécution maximal PHP survient.
Ajout de mbstring.http_output_conv_mimetype. Cette directive définit une expression rationnelle qui identifie les types de contenus pour lesquels mb_output_handler()
est activé.
Ajout de request_order. Autorise le contrôle des options de requêtes disponibles dans $_REQUEST.
Le directives INI suivantes ont changé de valeur par défaut :
session.use_only_cookies vaut maintenant "1" (activé) par défaut.
oci8.default_prefetch a changé de valeur par défaut, passant de "10" à "100".
###############################
###############################
###############################

Installer et démarrer Apache2 sur GNU/Linux Debian Jessie 8.5

sudo apt-get install Apache2

Lancer le service avec /etc/init.d/apache2 start ou service apache2 start.

Lancer la commande sudo apache2 -k start permet d'afficher les erreurs éventuellement rencontrées.

Attention, sudo apache2 -k start ne lance pas Apache2 mais n'affiche que les alertes.

L'option -k permet de vérifier la configuration en mode test.

Identifier un problème sur Apache2 : Etat, logs, journal

La commande sudo systemctl status apache2.service détail l'état de Apache2.

Le fichier error.log de Apache2 est localisé dans /var/log/apache2/error.log

Consulter le journal avec la commande journalctl -xn

Résoudre les éventuels incidents

Revenir à une configuration d'origine pour le paquet Apache2 de Debian Jessie

Exemple : Installation du mod complémentaire passenger qui a été désinstallé, mais, pas sa configuration.
Je n'ai pas apt-get autoremove --purge mod_passenger et de ce fait la configuration est restée installée.
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/passenger.load: Cannot load /usr/lib/apache2/modules/mod_passenger.so into server: /usr/lib/apache2/modules/mod_passenger.so: cannot open shared object file: No such file or directory 

sudo dpkg --force-confmiss -i /var/cache/apt/archives/apache2_*.deb

Je ne suis pas certain que cette manipulation permette de corriger le problème résultant des restes de la configuration de passenger qui n'a pas été supprimé.

Plutôt que de revenir à une configuration initiale de Apache2, nous pouvons aussi supprimer la configuration de passenger, ce qui semble plus adéquate dans ce cas la.

La configuration empêche Apache2 de démarrer car le mod_passenger n'est pas installé

Lancer le service avec sudo service apache2 start.

Une erreur est affichée sur le terminal : job for apache2.service failed. see 'systemctl status apache2.service'

En utilisant la commande sudo apache2 -k start on observe qu'il manque le mod_passenger.

[Sat Jul 16 19:33:43.934286 2016] [core:warn] [pid 8653] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Sat Jul 16 19:33:43.934362 2016] [core:warn] [pid 8653] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Sat Jul 16 19:33:43.934378 2016] [core:warn] [pid 8653] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Sat Jul 16 19:33:43.934384 2016] [core:warn] [pid 8653] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Sat Jul 16 19:33:43.934400 2016] [core:warn] [pid 8653] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/passenger.load: Cannot load /usr/lib/apache2/modules/mod_passenger.so into server: /usr/lib/apache2/modules/mod_passenger.so: cannot open shared object file: No such file or directory

Utiliser apache2ctl configtest en cas d'erreur de démarrage

Lancer la commande sudo apache2ctl configtest pour identifier ce qui empêche Apache2 de démarrer.

apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/passenger.load: Cannot load /usr/lib/apache2/modules/mod_passenger.so 
into server: /usr/lib/apache2/modules/mod_passenger.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.

Erreur de mod manquant pour libapache2-mod-passenger.

Installer ou supprimer un mod et sa configuration. Cette erreur est résolue.


Je relance la commande sudo apache2ctl configtest

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Cette erreur est un simple avertissement qui n'empêche pas le fonctionnement du serveur Apache.

Définir la directive 'ServerName' globalement pour supprimer ce message. Cette erreur est résolue.

Apache démarre! It works!

sudo service apache2 start

Saisir localhost dans la barre d'adresses url du navigateur.

It works!

Apache2-debian-default-page.png


Debian-apache2-configuration-overview.png

Identifier et corriger les erreurs de démarrage de Apache2 installé par défaut

Lancer la commande sudo apache2 -k start pour simuler le démarrage de Apache2

[Sun Jul 17 00:06:34.871360 2016] [core:warn] [pid 12027] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Sun Jul 17 00:06:34.871428 2016] [core:warn] [pid 12027] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Sun Jul 17 00:06:34.871443 2016] [core:warn] [pid 12027] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Sun Jul 17 00:06:34.871450 2016] [core:warn] [pid 12027] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Sun Jul 17 00:06:34.871465 2016] [core:warn] [pid 12027] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Sun Jul 17 00:06:34.876551 2016] [core:warn] [pid 12027:tid 139957733336960] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Sun Jul 17 00:06:34.876713 2016] [core:warn] [pid 12027:tid 139957733336960] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Sun Jul 17 00:06:34.876730 2016] [core:warn] [pid 12027:tid 139957733336960] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}


  • Vu sur un forum

faire export des 2 variables d'environnement

export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data

faire export de la variable

export APACHE_PID_FILE=/var/run/apache2.pid

...

...

Que donne

: sudo systemctl -l status apache2

Consulter les status du service Apache2

Apache2 démarre. Nous consultons les status du service systemctl status apache2.service

Dans cet exemple, on constate que Passenger est présent. Il ne s'agit donc pas d'une configuration de Apache2 minimaliste, nous avons déjà ajouté un mod.

systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: active (running) since dim. 2016-07-17 01:02:34 CEST; 12h ago
  Process: 11953 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 12930 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
  Process: 12127 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/apache2.service
           ├─12162 /usr/sbin/apache2 -k start
           ├─12948 PassengerWatchdog
           ├─12955 PassengerHelperAgent
           ├─12970 PassengerLoggingAgent
           ├─12987 /usr/sbin/apache2 -k start
           └─12988 /usr/sbin/apache2 -k start

Le besoin étant de faire tourner Apache2 en local, au plus simple, au plus propre, le mod Passenger est désinstallé ainsi que sa configuration, pour revenir à un état initial de Apache2. Je rappel que le mod Passenger avait été installé pour redmine, puis, le mod Passenger a été désinstallé en laissant sa conf ce qui a empêché la nouvelle installation de Apache de démarrer. La désinstallation du mod Passenger avec --purge a permis de lancer Apache2.

On observe bien que Passenger n'est plus présent.

systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: active (running) since dim. 2016-07-17 14:03:23 CEST; 5min ago
  Process: 14150 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 14176 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/apache2.service
           ├─14192 /usr/sbin/apache2 -k start
           ├─14195 /usr/sbin/apache2 -k start
           └─14196 /usr/sbin/apache2 -k start

Les lignes avec -k start ne sont pas nécessaires. On les tues rapidement avec sudo killall apache2

systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: inactive (dead) since dim. 2016-07-17 15:38:57 CEST; 56min ago
  Process: 14696 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 14585 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)

...

Installer PHP

PHP multi-versions sur le même Apache

Ko.png http://www.pulsar-informatique.com/actus-blog/entry/php-multi-versions-sur-le-meme-apache

...

2) faire export des 2 variables d'environnement : export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data

3) faire export de la variable : export APACHE_PID_FILE=/var/run/apache2.pid

Mais alors pourquoi ces variables sont elles mal définies?


je me demande si l'erreur n'en n'est pas une.

En tapant la commande suivante qui test la configuration d'un serveur apache,

sudo apache2 -t

l'erreur : apache2 : bad user name ${ APACHE_RUN_USER }

Hors d'après les processus. Le démon apache est bien lancé en www-data donc le fichier envvars est bien pris en compte. j'ai aussi essayé de changer le fichier pid pour voir...

Je me demande si ce n'est pas le test de la configuration qui ne comprend pas, pour les directives user et group, le fait d'avoir des appels à des variables. Du coups, je laisse comme ça...

resolu ?? à la place de la commande apache2 -k restart

je lance : apache2ctl restart

Permet d'éviter de remplacer les variables dans le fichier apache2.conf voici la commande à lancer pour tester la configuration d'Apache2 qui prend en compte les variables d'environnement.

apache2ctl -t

Autres liens à survoler

http://www.commentcamarche.net/contents/796-installation-d-un-serveur-web-sous-linux-apache-php-et-mysql

http://olange.developpez.com/articles/debian/installation-serveur-dedie/

http://debian-facile.org/doc:reseau:apache2:multisite

Sécurité Serveur que faire de plus pour aller plus loin

Changer le chemin par défaut de phpmyadmin.

Modifier le nom du script d'accès à APC (?)

port-knocking

Bibliographie

Utiliser la documentation officielle pour le serveur HTTP Apache Version 2.4 : https://httpd.apache.org/docs/2.4/

Debian 9 - Apoache MariaDB PHPMyAdmin : http://jc.etiemble.free.fr/abc/index.php/realisations/trucs-astuces/deb9php7

Installer Apache PHP MySQL et Webmin : https://www.skyminds.net/serveur-dedie-installation-dapache-php-mysql-et-webmin/

NAVIGATION

CHERCHER UNE AUTRE PAGE SUR LE WIKI

D'autres pages du wiki peuvent correspondre à vos attentes : La liste de toutes les pages du wiki.

COMPRENDRE LA BLOCKCHAIN PAR LA PRATIQUE

Obtenir gratuitement de la cryptomonnaie sur internet : https://www.visionduweb.eu/forum/bitcoin/1597-gagner-des-bitcoins-miner-des-bitcoins

LIRE ET PARTAGER

Le wiki collaboratif du HackerSpace Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur cette page sont issues d'une recherche personnelle.
Vous pouvez partager les liens du wiki avec l'ensemble de la communauté des internautes.
Vous pouvez améliorer le contenu du wiki et faire vos propositions depuis l'onglet discussion.

SOUTENIR VISIONDUWEB

Soutenir Vision du web avec quelques Bitcoins : 33ZsupGQr1rUmwj62HadcZ55hsGJajD9wN
Soutenir Vision du web avec quelques Bitcoins Cash : 1ATSDJeoQr71x7xNDRytxFnxQ8ckDUeDbT
Soutenir Vision du web avec quelques Blackcoins : B6MyLMPtzg8D15mHt8jYi7nVjYWEyVXJzA
Soutenir Vision du web avec quelques Dogecoins : A64jhqCgsUyrUCPte6fV3BcG2Y7daH13Ym
Soutenir Vision du web avec quelques Ethereum : 0x0E4D6B7A1F88A56A1A66bf408c72FAE3d104D632
Soutenir Vision du web avec quelques Litecoins : 3LKigW6TCS5MvXrZFGh8VMEtZf6MtE86iz
Soutenir Vision du web avec quelques Potcoins : PUYvjeJ3n2frypgD5yd95yNnwoztnZL5P3