Monitorer Apache avec Zabbix

Configuration de Nginx Le serveur apache doit donner sont status en local via l’url http://localhost/server-status Pour cela, il faut ajouter configurer le vhost localhost comme ci-dessous. Il sera disponible uniquement via localhost: <VirtualHost 127.0.0.1:80> ServerName localhost <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location> </VirtualHost> Configuration de l’agent Zabbix Dans la configuration de l’agent Zabbix ajouter les paramètres suivant pour remonter au serveur les nouvelles clefs [Voir plus]

Redirection http vers https derrière un reverse proxy

Pour que cela fonctionne, le reverse proxy doit définir dans le header X-Forwarded-Proto si la requête était en http ou https

La régle de récriture apache pour forcer l’https :

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule / https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

Ou au contraire si l’on veut forcer en http :

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !http
RewriteRule / http://%{SERVER_NAME}%{REQUEST_URI} [L,R]

Article complémentaire : Offloading SSL avec Nginx

Calculé la mémoire consommé par apache

La commande suivante va vous calculer la totalités de la mémoire utilisé par Apache ainsi que la taille de vos processus Apache.

La commande se base sur PS, les configurations d’apache et php ne sont pas lu.

Si votre processus apache se nome httpd, vous devez adaptez la commande en remplaçant apache2 par httpd 🙂

ps -ylC apache2 | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Proccess Size (MB): "x/((y-1)*1024)}

Mise en place de Monit

Monit a pour fonction de “surveiller” service et/ou les ressources système et d’exécuter une ou plusieurs actions en fonction de condition. Par exemple, il peut redémarrer Nginx si celui ci ne répond plus.

[Voir plus]

Installer son FAMP (FreeBSD Apache MySQL PHP)

Un “FAMP” est une plateforme Apache/PHP/MySQL installé sur une FreeBSD 😉 et oui, ce n’est pas un L_inux_AMP !

Apache

cd /usr/ports/www/apache22/
make config install distclean
echo 'apache2_enable="YES"' >> /etc/rc.conf
echo 'apache2ssl_enable="YES"' >> /etc/rc.conf
echo 'accf_http_ready="YES"' >> /etc/rc.conf && kldload accf_http

PHP

cd /usr/ports/lang/php5
make config install distclean
cd /usr/ports/lang/php5-extensions
make config install distclean

MySQL

cd /usr/ports/databases/mysql51-server
make install WITH_OPENSSL=yes
make distclean
echo 'mysql_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/mysql-server start
/usr/local/bin/mysql_secure_installation

Dynamique Vhost

Exemple de configuration du module Apache mod_vhost_alias :

Options FollowSymLinks
AllowOverride all
Allow from all
UseCanonicalName Off

LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog /var/log/apache2/access.vhosts.log vcommon

VirtualDocumentRoot /var/www/%0/www
VirtualScriptAlias /var/www/%0/cgi-bin

Documentation : http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html

Compiler Apache2 et PHP5

Les dependances

Paquet dev installé pour satisfaire les dépendances :

libstdc++-devel
zlib-devel
e2fsprogs-devel
libpng-devel
cyrus-sasl
db4-devel
httpd-devel
glibc-devel
keyutils-libs
libselinux-devel
libidn-devel
libxml2-devel
ncurses-devel
krb5-devel
openssl-devel
curl-devel
apr-devel
apr-util
libsepol-devel
freetype-devel
libjpeg-devel
openldap-devel
expat-devel

Compiler

Apache

Compiler et installer Apache

./configure -prefix=/usr/local/httpd \
--enable-so \
--enable-suexec \
--enable-rewrite=static \
--enable-proxy=static \
--enable-ssl=static \
--enable-headers=static \
--enable-deflate=static \
--enable-status=static && make && make install

PHP

Compiler et installer PHP

./configure -with-apxs2=/usr/local/httpd/bin/apxs \
--disable-short-tags \
--enable-mysql \
--enable-memory-limit \
--enable-calendar \
--enable-magic-quotes \
--with-openssl \
--with-libxml-dir \
--with-xmlrpc \
--with-zlib \
--enable-calendar \
--with-curl \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv \
--with-gettext \
--with-ldap \
--enable-mbstring \
--enable-zip \
--with-pear \
--enable-bcmath \
--enable-sigchild \
--enable-gd-native-ttf \
--enable-pcntl && make && sudo make install

Problème de semaphores lorsqu'Apache se lance

Le symptômes est qu’apache n’ecoute pas sur le port indiqué en disant que quelque chose escoute deja sur celui ci mais cela est faut. Ou alors, le fichier de lock ne peut être créé : [emerg] (28)No space left on device: Couldn't create accept lock [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [notice] Digest: generating secret for digest authentication ... [notice] Digest: done [warn] pid file /etc/httpd/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run? [Voir plus]

Modifier des parametres php dans un .htaccess

Dans votre fichier .htaccess

<FilesMatch script.php>
  php_value max_execution_time "600"
  php_value upload_max_filesize "100M"
</FilesMatch>
  • max_execution_time : Pour modifier le temps d’exécution maximum.
  • upload_max_filesize : Pour modifier la taille maximum.

Masquer la version d'apache

Dans la configuration, passer les paramètres suivant :

ServerTokens Prod ServerSignature Off