diff --git a/INSTALL.fr.md b/INSTALL.fr.md index 48c159523ab0139a789ce479d2860a7fce1441eb..11780dec7e02bea04f25427a9eea70658c9bebe2 100644 --- a/INSTALL.fr.md +++ b/INSTALL.fr.md @@ -50,9 +50,7 @@ cd opacce ./update.sh ``` - - -# Configuration Apache / PHP: +# Serveur web Apache : ## Activez les modules : @@ -70,31 +68,12 @@ LoadModule php5_module modules/libphp5.so Activer mod_mpm_prefork (voir https://wiki.archlinux.org/index.php/Apache_HTTP_Server#PHP). - Désactivez le module negotiation qui pose problème avec Zend Framework sur les urls index/index: ``` a2dismod negotiation ``` -## Configurer PHP - -Dans /etc/php5/apache2/php.ini (ArchLinux: /etc/php/php.ini), configurer les variables suivantes: -``` -post_max_size = 10M -upload_max_filesize = 10M -error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED -extension = xhprof.so -xhprof.output_dir = /chemin/vers/bokeh/temp -``` - -Activez les extensions suivantes si elles ne le sont pas déjà (elles devraient l'être) : -``` -php5enmod calendar curl gd gettext iconv mcrypt mysql pdo_mysql openssl soap imagick -``` - -Sur ArchLinux décommenter les lignes correspondantes. - ## Configurer Apache Dans la conf Apache (/etc/apache2/sites-available/votre-site.conf), supprimer l'option Indexes (listing des fichiers) et autoriser les .htaccess: @@ -118,12 +97,166 @@ Note: pour apache 2.4 </Directory> ``` +# Serveur web Nginx (experimental) + +Le fait d’utiliser Nginx comme serveur Web implique d’utiliser le moteur PHP en mode FPM. + +La configuration recommandée utilise 2 fichiers qui présentent l’intérêt d’avoir des fichiers vHost simplifiés et permettent de concentrer le paramétrage commun à tous les vHost dans un fichier annexe, qui fait un peu le même job que le fichier .htaccess sous Apache. + +## Fichier d’include « bokeh.inc » à placer par exemple dans /etc/nginx/conf-enabled + +``` +# Include directives for Bokeh portal + +location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { + expires 30d; + log_not_found off; +} + +location = /favicon.ico { + log_not_found off; + access_log off; +} + +location = /robots.txt { + allow all; + log_not_found off; + access_log off; +} + +# Deny access to sensitive files. +location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ { + #deny all; + return 403; +} + +location ~ /(\.|\.htaccess|config\.(ini|php)) { + #deny all; + return 403; +} + +# Path without redirection +location ~ /(xhprof_html|ckeditor|\.well-known) { +} + +# Serve PHP +location ~ /cosmogramme/cosmozend { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include fastcgi_params; + #fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root/cosmogramme/cosmozend/index.php; + fastcgi_param SCRIPT_NAME /cosmogramme/cosmozend/index.php; + fastcgi_buffer_size 128k; + fastcgi_buffers 256 4k; + fastcgi_busy_buffers_size 256k; + fastcgi_temp_file_write_size 256k; + fastcgi_intercept_errors on; + fastcgi_pass bokeh-dock:9000; +} + +location ~ (\.php$|/(cosmogramme|exploit/(test\.php|fpm-ping|fpm-status))) { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include fastcgi_params; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_buffer_size 128k; + fastcgi_buffers 256 4k; + fastcgi_busy_buffers_size 256k; + fastcgi_temp_file_write_size 256k; + fastcgi_intercept_errors on; + fastcgi_pass bokeh-dock:9000; +} +``` + +## Fichier vhost à adapter à votre propre cas (changer URL_Bokeh, Path_Bokeh_Dir, Bokeh_Dir, …) + +``` +server { + listen 80; + index index.php; + server_name <URL_Bokeh>; + root <Path_Bokeh_Dir>/<Bokeh_Dir>; + access_log "<Path_Nginx_Log>/<URL_Bokeh>_access.log"; + error_log "<Path_Nginx_Log>/<URL_Bokeh>_error.log"; + + location / { + try_files $uri $uri/ @rewrite; + } -# Droits sur le répertoire temporaire + # if the requested file exists, return it immediately + if (-f $request_filename) { + break; + } + + location @rewrite { + rewrite ^(.*)$ /index.php last; + } + + include /etc/nginx/conf-enabled/bokeh.inc; +} +``` + +## Pour information exemple de fichier etc/nginx/fastcgi_params + +``` +fastcgi_param QUERY_STRING $query_string; +fastcgi_param REQUEST_METHOD $request_method; +fastcgi_param CONTENT_TYPE $content_type; +fastcgi_param CONTENT_LENGTH $content_length; + +fastcgi_param SCRIPT_NAME $fastcgi_script_name; +fastcgi_param REQUEST_URI $request_uri; +fastcgi_param DOCUMENT_URI $document_uri; +fastcgi_param DOCUMENT_ROOT $document_root; +fastcgi_param SERVER_PROTOCOL $server_protocol; +fastcgi_param REQUEST_SCHEME $scheme; +fastcgi_param HTTPS $https if_not_empty; + +fastcgi_param GATEWAY_INTERFACE CGI/1.1; +fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + +fastcgi_param REMOTE_ADDR $remote_addr; +fastcgi_param REMOTE_PORT $remote_port; +fastcgi_param SERVER_ADDR $server_addr; +fastcgi_param SERVER_PORT $server_port; +fastcgi_param SERVER_NAME $server_name; + +# PHP only, required if PHP was built with --enable-force-cgi-redirect +fastcgi_param REDIRECT_STATUS 200; +``` + +# Configurer PHP +Dans /etc/php5/apache2/php.ini (ArchLinux: /etc/php/php.ini), configurer les variables suivantes: +``` +post_max_size = 10M +upload_max_filesize = 10M +error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED +extension = xhprof.so +xhprof.output_dir = /chemin/vers/bokeh/temp ``` + +Activez les extensions suivantes si elles ne le sont pas déjà (elles devraient l'être) : +``` +php5enmod calendar curl gd gettext iconv mcrypt mysql pdo_mysql openssl soap imagick +``` + +Sur ArchLinux décommenter les lignes correspondantes. + + +# Droits d'écriture sur les répertoires + +- userfiles contient tous les fichiers téléversés via l'interface Bokeh ou moissonés sur des ressources tierces. +- temp contient les fichiers de caches, fichiers d'historiques de modification, et autres fichiers générés par Bokeh. + +Par exemple: +``` +chmod -R 777 opacce/userfiles chmod -R 777 opacce/temp ``` +Si vous ne souhaitez pas donner les droits d'écriture à tous sur ces répertoires, vous devez donner la permission à l'utilisateur sous lequel s'exécute le code PHP. + # Configuration MySQL