Archives pour la catégorie ‘Hébergement’

Nginx : création d’un fichier htpasswd avec openssl

boris@debian:~$ printf "USER:$(openssl passwd -crypt PASSWORD)\n" > vhost.htpasswd

WordPress: désactiver les mises à jour automatiques

$ vim wp-config.php
define('WP_AUTO_UPDATE_CORE', false);

Nginx : forcer le retry en configuration single upstream

upstream gitlab_ci {
  server unix:/tmp/sockets/gitlab-ci.socket fail_timeout=0;
}

Apache : proxy avec support SSL

<VirtualHost *:443>
   ServerName gitlab.my.domain

   SSLEngine On
   SSLCertificateFile /etc/ssl/certs/my.domain.crt
   SSLCertificateKeyFile /etc/ssl/private/my.domain.key
   SSLCertificateChainFile /etc/ssl/certs/my.domain.ca

   SSLProxyEngine on
   ProxyPass / https://gitlab.my.domain/
   ProxyPassReverse / https://gitlab.my.domain/
   ProxyPreserveHost On

   <Location />
      Order allow,deny
      Allow from all
   </Location>
</VirtualHost>

ProFTPD : mod_SFTP & authentification par clés publiques

Voici un rappel sur la configuration de ProFTP & mod_sftp pour permettre l’authentification par clé des utilisateurs :

# vim /etc/proftpd/proftpd.conf
Port 22
SFTPEngine on
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPCompression off
SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u

Include /etc/proftpd/conf.d/*.conf
AllowOverwrite on
AuthUserFile /etc/proftpd/ftpd.passwd
DefaultRoot ~
RequireValidShell off
TLSOptions NoCertRequest NoSessionReuseRequired

Umask 027

A noter que les clés publiques doivent être stockées sous le format SECSH, ce qui est obtenu avec cette commande :

# ssh-keygen -e -f keys/user.pub > /etc/proftpd/authorized_keys/user

Drupal : configuration des alias Drush pour la gestion multi-sites

# cat /etc/drush/dev-sites.aliases.drushrc.php 
<?php

$aliases['en'] = array (
  'root' => '/var/www/dev/site',
  'uri' => 'www.site-en.com'
);

$aliases['us'] = array (
  'root' => '/var/www/dev/site',
  'uri' => 'www.site-us.com'
);

$aliases['fr'] = array (
  'root' => '/var/www/dev/site',
  'uri' => 'www.site-fr.com'
);

?>

Les alias sont à utiliser de cette façon :

# drush @dev-sites.us status
# drush @dev-sites.us cc all

La gestion par groupe permet de simplifier la maintenance des différents sites :

# drush @dev-sites cc all

Tout comme l’exécution du cron de maintenance Drupal en crontab :

# crontab -l -u www-data
10 * * * * drush @dev-sites core-cron --quiet -y

Nginx : modifier le contenu HTML à la volée

Le module ngx_http_sub_module de Nginx permet la modification du contenu des réponses envoyées au client.

L’idée ici est de changer le titre des pages des sites hébergés sur un serveur de développement :

root@dev ~ # cat /etc/nginx/conf.d/environment.conf
sub_filter  </title> ' [DEV]</title>';
sub_filter_once on;

Debian : installation de PHP 5.3 sous Wheezy

root@amazon ~ # cat /etc/apt/sources.list
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
root@amazon ~ # cat /etc/apt/preferences.d/preferences
Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: libapache2-mod-php5
Pin: release a=oldstable
Pin-Priority: 700

Package: php-pear
Pin: release a=oldstable
Pin-Priority: 700

Package: php-apc
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600
root@amazon ~ # apt-get update
root@amazon ~ # apt-get install libapache2-mod-php5 php5-cli php5-curl php5-dev php5-gd php5-mcrypt php5-mysql

Nginx : limitation bruteforce

limit_conn_zone $binary_remote_addr zone=floodip:100m;
limit_conn floodip 10;

limit_req_zone $binary_remote_addr zone=flood:100m rate=5r/s;
limit_req zone=flood burst=10;

Apache : désactiver l’authentification pour un sous-répertoire spécifique

<Directory /var/www/>
   AuthUserFile /etc/apache2/user-passwd
   AuthType Basic
   AuthName "Restricted access"
   Require valid-user
   Order allow,deny
   Allow from 192.168.0
   Satisfy any
</Directory>

<Directory /var/www/public>
   Order allow,deny
   Allow from all
   Satisfy any
</Directory>
Haut de page