Outils pour utilisateurs

Outils du site


linux:apache (lu 68364 fois)

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
linux:apache [11-12-2015 22:05]
edmc73
linux:apache [03-10-2019 16:26] (Version actuelle)
edmc73 [htcacheclean]
Ligne 1: Ligne 1:
 ====== Apache ====== ====== Apache ======
 Cette page est juste un mémo Cette page est juste un mémo
 +
 +Docs => http://devdocs.io/apache_http_server/
  
 ===== Commandes utiles ===== ===== Commandes utiles =====
Ligne 26: Ligne 28:
   apache2ctl fullstatus   apache2ctl fullstatus
  
 +===== Configuration de base =====
  
 +La doc => http://httpd.apache.org/docs/2.2/fr/
 +
 +Le minimum pour un accès avec un nom de domaine
 +<code apache>
 +# Apache doit écouter sur le port 80
 +Listen 80
 +
 +# Toutes les adresses IP doivent répondre aux requêtes sur les 
 +# serveurs virtuels
 +NameVirtualHost *:80
 +
 +<VirtualHost *:80>
 +DocumentRoot /www/example.com
 +ServerName www.example1.com
 +
 +# Autres directives ici
 +
 +</VirtualHost>
 +
 +<VirtualHost *:80>
 +DocumentRoot /www/example.org
 +ServerName www.example2.org
 +
 +# Autres directives ici
 +
 +</VirtualHost>
 +</code>
 +
 +Les directives
 +<code apache>
 +<Directory /usr/local/httpd/htdocs>
 +  AllowOverride None
 +  Options Indexes FollowSymLinks
 +</Directory>
 +</code>
 +
 +Les options
 +
 +  * AllowOverride None / All : permet la prise en compte des fichiers .htaccess (plus d'options dans la doc http://httpd.apache.org/docs/2.2/fr/mod/core.html#allowoverride )
 +  * Options : par défaut All (toutes les options sauf MultiViews). Plus d'options dans la doc http://httpd.apache.org/docs/2.2/fr/mod/core.html#options)
 +    * None : Désactive toutes les fonctions
 +    * ExecCGI : Exécution de scripts CGI permise
 +    * FollowSymLinks : Permet au serveur de suivre les liens symboliques
 +    * Indexes : Affiche la liste des fichiers contenu dans le répertoire si aucun fichier index.html/php n'est présent
 +    * MultiViews : Permet au serveur d'exécuter un fichier qui ressemblerait au fichier demandé si il n'existe pas. ex: un appel à /fichier exécutera /fichier.php si /fichier n'existe pas mais que /fichier.php existe
 +
 +Accès par mot de passe
 +<code apache>
 +#accès au fichier de mot de passe généré par la commande htpasswd
 +AuthUserFile .htpasswd
 +AuthGroupFile /dev/null
 +AuthName "Ce message s'affichera dans la boite de dialogue demandant l'identification"
 +AuthType Basic
 +<Limit GET POST>
 +  require valid-user
 +</Limit>
 +</code>
 ===== Installation de Apache2-mpm-worker ===== ===== Installation de Apache2-mpm-worker =====
 http://www.skyminds.net/serveur-dedie-installation-dapache-php-mysql-et-webmin/ http://www.skyminds.net/serveur-dedie-installation-dapache-php-mysql-et-webmin/
Ligne 153: Ligne 213:
 par par
   create 644 root adm   create 644 root adm
 +
 +
 +==== internal dummy connection ====
 +
 +--- source: https://blog.nicolargo.com/2011/03/supprimer-les-logs-apache-internal-dummy-connection.html
 +
 +Si vous avez plein de log apache avec des lignes **internal dummy connection**, créez un fichier de conf avec
 +
 +  # Filters
 +  SetEnvIf Remote_Addr "127\.0\.0\.1" local
 +  SetEnvIf Remote_Addr "\:\:1" local
 +
 +Ensuite, on doit activer ce filtre le fichier de définition de votre site (sous le répertoire /etc/apache2/site-enabled). Il faut modifier la ligne suivante:
 +  CustomLog /var/log/apache2/www-access.log combined env=!local
 +
 +Un restart d'apache pour appliquer
      
 ===== Lorsque Apache est installé dans un NAT à travers d'un reverse proxy ===== ===== Lorsque Apache est installé dans un NAT à travers d'un reverse proxy =====
Ligne 192: Ligne 268:
 Ensuite on recharge apache2 Ensuite on recharge apache2
   service apache2 reload   service apache2 reload
-  + 
 +Quelques préconisations de configuration et sécurité => http://wiki.goldzoneweb.info/configuration_securisation_et_optimisations_de_php
 ===== ALERT - script tried to increase memory_limit ===== ===== ALERT - script tried to increase memory_limit =====
  
Ligne 231: Ligne 308:
  
 Avec **httperf** voir très bon tuto => http://www.synbioz.com/blog/benchmark_avec_httperf Avec **httperf** voir très bon tuto => http://www.synbioz.com/blog/benchmark_avec_httperf
 +
 +Un outils intégré avec apache, **ab** pour apache benchmark
 +
 +Pour tester une url avec 2000 requêtes dont 10 en simultanées
 +  ab -c 10 -n 2000 'https://mon_serveur/url_a_bourriner'
 +
 +
 +
 +Pour envoyer en POST, créer un fichier **post.txt** avec les paramètres urlencodé
 +  email=toto%40toto.fr&variable=1
 +
 +Utilisez la commande suivante
 +  ab -p post.txt -T 'application/x-www-form-urlencoded' -c 10 -n 2000 'https://mon_server/api/test'
  
  
Ligne 257: Ligne 347:
  
 Coté sécurité, le mpm itk permet d’isoler la configuration de chaque vhost directement dans son fichier de configuration. Coté sécurité, le mpm itk permet d’isoler la configuration de chaque vhost directement dans son fichier de configuration.
 +
 +Il n'y a plus qu'a créer un utilisateur et de rajouter ces lignes dans vos config
 +  <IfModule mpm_itk_module>
 +    AssignUserId username groupname
 +  </IfModule>
  
 Plus d'info : Plus d'info :
Ligne 265: Ligne 360:
  
  
- --- //auteur [[user:edmc73|edmc73]]//+ 
 +===== En cas de piratage ===== 
 + 
 +Restaurer une sauvegarde et comparer les répertoires avec **diff** 
 +  diff -qr repOK repHACKED 
 + 
 +Recopier que les fichiers qui ont changé avec **rsync** 
 +  rsync -avP repOK repHACKED 
 + 
 +Refaite un diff pour des nouveaux fichiers ne serait pas resté tout seul 
 + 
 + 
 + 
 +Comparer les logs 
 + 
 + 
 +===== Debian 10 Apache 2.4 php7.3 ===== 
 + 
 +Sur la dernière debian, apache est par défaut apache mpm event. 
 +Plus question ici d'installer le module apache php. Pour activer php, suivez les commandes 
 + 
 +  apt install php7.3-fpm 
 +  a2enmod proxy_fcgi 
 +  a2enconf php7.3-fpm 
 +  systemctl restart apache 
 + 
 +le module itk n'est plus nécessaire, maintenant on peut gérer les users directement dans la config des pools php 
 + 
 +=> doc: https://villalard.net/utiliser-apache-avec-php-fpm 
 + 
 +<code> 
 +# cd /etc/php/7.3/fpm/pool.d 
 +# ls 
 +www.conf 
 + 
 +cp www.conf dev.conf 
 +vi dev.conf 
 + 
 +</code>   
 + 
 +On modifie au minimum 
 +<code> 
 +; Start a new pool named 'www'
 +; the variable $pool can be used in any directive and will be replaced by the 
 +; pool name ('www' here) 
 +[dev] 
 + 
 +; Unix user/group of processes 
 +; NoteThe user is mandatory. If the group is not set, the default user's group 
 +;       will be used. 
 +user = edmc 
 +group = edmc 
 + 
 +; The address on which to accept FastCGI requests. 
 +; Valid syntaxes are: 
 +;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on 
 +;                            a specific port; 
 +;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on 
 +;                            a specific port; 
 +;   'port'                 - to listen on a TCP socket to all addresses 
 +;                            (IPv6 and IPv4-mapped) on a specific port; 
 +;   '/path/to/unix/socket' - to listen on a unix socket. 
 +; Note: This value is mandatory. 
 +listen = /run/php/dev.sock 
 +</code> 
 + 
 +ensuite on adapte notre config apache 
 +<code> 
 +        <FilesMatch \.php$> 
 +                SetHandler "proxy:unix:/run/php/dev.sock|fcgi://localhost/" 
 +        </FilesMatch> 
 +</code> 
 + 
 +on restart php et apache 
 +  systemctl restart php7.3-fpm.service apache2.service 
 + 
 +et voila :) 
 + 
 +===== htcacheclean ===== 
 + 
 +Activez les modules 
 +  a2enmod mod_cache mod_cache_disk 
 + 
 +Dans la config du site, pour un cache de 60 secondes 
 +<code apache> 
 +    <IfModule mod_cache.c> 
 +      <IfModule mod_cache_disk.c> 
 +        #LogLevel debug 
 +        CacheRoot /var/cache/apache2/mod_cache_disk 
 +        CacheDefaultExpire 60 
 +        CacheMinExpire 60 
 +        CacheMaxExpire 60 
 +        CacheEnable disk / 
 +        #CacheDetailHeader On 
 +        CacheHeader On 
 +        CacheIgnoreCacheControl On 
 +        CacheIgnoreNoLastMod On 
 +        CacheStoreNoStore On 
 +        CacheStoreExpired On 
 +        #CacheIgnoreHeaders None 
 +        #CacheDisable "/index.php" 
 +        #UnsetEnv no-cache 
 +      </IfModule> 
 +    </IfModule> 
 +</code> 
 + 
 +Voir les fichiers en cache 
 +  htcacheclean -A -p/var/cache/apache2/mod_cache_disk 
 + 
 +Si vous avez configuré un autre répertoire que celui par défaut, la purge ne se fera pas, mettez un cron 
 +  0 */2 * * * /usr/bin/htcacheclean -n -t -p/home/user/apache2_mod_cache_disk -l100M 
 + 
 +Cette exemple purge toutes les 2 heures en vérifiant que la taille globale ne dépasse pas 100Mo, ''-t'' supprimer les répertoires vide (important car il peut vite y'en avoir un paquet), ''-n'' met une priorité basse au processus afin de ne pas bloquer le serveur.
linux/apache.1449867947.txt.gz · Dernière modification: 11-12-2015 22:05 (modification externe)