Architecture serveur requise

De Wiki.

Le contexte d'application web est celui d'une architecture LAMP : Linux, Apache, MySQL, PHP

Un hébergement dédié ou semi-dédié est préconisé (éventuellement serveur virtuel).


Sommaire

Exploitation : configuration logicielle

  • Système d’exploitation : Système Linux Debian squeeze, ou tout autre distribution Linux stable adaptée à l'architecture LAMP
  • Serveur Web : Apache 2.* (Apache 1.3 compatible) avec Mod PHP et CGI
  • Langage d'Application Serveur : PHP 5.3.* et supérieur, PHP 7.0
  • Base de Données : MySQL 5.0 / 5.1 / 5.5, MariaDB (prévoir un accès PhpMyAdmin)
  • Librairie graphique : Imagick (ou a minima GD 2.0.)
  • Un MTA configuré (en smtp ou en relais) : Postfix recommandé

Développement : configuration logicielle complémentaire

  • Accès SSH au serveur, droits d'accès aux Log Access et Error d'Apache
  • Binaire GIT installé sur le serveur pour réaliser des déploiemements


Réglages et autorisations spécifiques

  • Configuration PHP/Apache spécifique par fichier .user.ini (directives PHP include_path, auto_prepend_file, auto_append_file)
  • Autoriser l'écriture par PHP/Apache de fichiers sur le serveur
  • Mise à disposition de 256 Mo de RAM à PHP pour la génération des archives de présentations hors-ligne
  • Upload limit relevé à 32 Mo pour autoriser les uploads de médias (photos plein écran, vidéos... )
  • Les valeurs de ces deux derniers réglages peuvent être ajustées en regard de la quantité et de la taille des médias gérés par l'application.

Support de configurations hors de nos préconisations

L'application peut être hébergé sur serveur Windows (Architecture IIS/PHP ou Apache/PHP), toutefois la plate-forme - non recommandée - doit être validée par nos techniciens.

Autres bases de données pouvant être supportées (sur base Apache/PHP) : SQL Server, PostgresSQL, Oracle (devis complémentaire, selon versions)

Configuration avancée

Modules binaires compilés :


Modules PHP :

  • php-curl (libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18)
  • php-gd
  • ImageMagick (optionnel pour support étendu des images)
  • FFMPEG (optionnel pour support étendu des vidéos)

Configuration PHP.ini :

output_buffering = 4096
zlib.output_compression = On
zlib.output_compression_level = 1
safe_mode = Off
max_execution_time = 180     ; Maximum execution time of each script, in seconds
max_input_time = 90 ; Maximum amount of time each script may spend parsing request data
memory_limit = 128M      ; Maximum amount of memory a script may consume 
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
ignore_repeated_errors = On
register_globals = Off
post_max_size = 32M
upload_max_filesize = 24M
allow_url_include = Off

autoriser popen et l'exécution de sendmail

Modules Apache :

alias.conf
authz_groupfile.load
cgi.load
headers.load
php5.conf
rewrite.load
status.conf
alias.load
authz_host.load
dir.conf
mime.conf
php5.load
setenvif.conf
status.load
auth_basic.load
authz_user.load
dir.load
mime.load
proxy.conf
setenvif.load
authn_file.load
autoindex.conf
env.load
negotiation.conf
proxy_http.load
ssl.conf
authz_default.load
autoindex.load
expires.load
negotiation.load
proxy.load 
ssl.load


Modules complémentaires recommandés :

  • webmin
  • awstats
  • wget
  • rsync
  • curl
  • lynx