Cette page décrit la mise en place du serveur hébergeant l'environnement de test du projet CRM.
Mise en place de base du système
- VM chez OVH à l'adresse dev-crm.auf.org (accès restreints)
- 2 Gio de mémoire
- 2 vCPU
mise en place du modèle LAMP, en particulier :
mot de passe admin MySQL placé dans /root/.my.cnf
création d'un certificat SSL/TLS :
- nom principal : dev-crm.auf.org
- nom secondaire : test-crm.auf.org
installation aux endroits habituels (/etc/ssl/…, cf config' Apache)
création d'un VirtualHost Apache dans /etc/apache2/site-available/dev-crm.auf.org.conf :
<VirtualHost *:80> ServerName dev-crm.auf.org Redirect / https://dev-crm.auf.org/ </VirtualHost> <VirtualHost *:443> ServerName dev-crm.auf.org ServerAdmin technique-dev-crm@auf.org DocumentRoot /srv/www/dev-crm.auf.org ErrorLog ${APACHE_LOG_DIR}/dev-crm.auf.org-ssl-error.log CustomLog ${APACHE_LOG_DIR}/dev-crm.auf.org-ssl-access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/dev-crm.auf.org-cert.pem SSLCertificateKeyFile /etc/ssl/private/dev-crm.auf.org-key.pem SSLCACertificateFile /etc/ssl/certs/AC-AUF-RACINE+BA.pem SSLVerifyClient None <Location /> Require all denied Require ip 199.84.140.0/24 Require ip 70.25.27.118/32 Satisfy all </Location> <Directory "/srv/www/dev-crm.auf.org/"> AllowOverride all #php_value include_path ".:/srv/www/dev-crm.auf.org/include" php_value memory_limit 512M php_value display_errors On php_value log_errors On php_value error_log /var/log/php5.log php_value post_max_size 32M php_value upload_max_filesize 32M </Directory> </VirtualHost>
activation du VirtualHost ci-dessus :
a2enmod ssl a2ensite dev-crm.auf.org a2dissite 000-default service apache2 restart # à cause du module SSL
Mise en place préparatoire pour SugarCRM
ajout des modules PHP nécessaires pour SugarCRM 7 :
apt-get install php5-curl php5-gd php5-imap php5-json php5-mysql php5-fpm
php5-mysql apporte le module mysqli
php5-fpm apporte les modules bcmath, hash, mbstring, OpenSSL, SimpleXML, zip, zlib (et autres)
ajout d'un module PHP jsmin (depuis le dépôt AUF, construit selon PHP/jsmin) :
apt-get install php-jsmin
activation du module de ré-écriture d'URL de Apache :
a2enmod rewrite service apache2 restart
Ajustements spécifiques Solutions Metrix
ajouts à /etc/mysql/conf.d/local.cnf (section [mysqld]) :
############################### # Tuned By Jean-Gabriel Laine # #vvvvvvvvvvvvvvvvvvvvvvvvvvvvv# #skip-name-resolve long_query_time = 30 max_connect_errors = 10 ### Timeouts ### interactive_timeout = 300 wait_timeout = 300 ################ # InnoDB Setup # ################ default-storage-engine = InnoDB innodb_flush_method = O_DIRECT innodb_file_per_table innodb_additional_mem_pool_size = 32M innodb_buffer_pool_size = 2G innodb_file_io_threads = 16 innodb_log_buffer_size = 32M innodb_log_file_size = 64M innodb_open_files = 600 innodb_lock_wait_timeout = 50 innodb_thread_concurrency = 0 ############### # Fine Tuning # ############### key_buffer = 32M key_buffer_size = 256M query_cache_limit = 2M query_cache_size = 384M max_allowed_packet = 64M max_connections = 25 thread_stack = 192K thread_cache_size = 50 table_cache = 20148 thread_concurrency = 25 query_cache_min_res_unit = 2K query_cache_type = 1 query_prealloc_size = 65536 join_buffer_size = 256k tmp_table_size = 256M read_buffer_size = 128k read_rnd_buffer_size = 128k sort_buffer_size = 256k bulk_insert_buffer_size = 128M myisam_sort_buffer_size = 16M max_heap_table_size = 512M #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^# # Tuned By Jean-Gabriel Laine # ###############################
Notes
- toute modification système (autre que le redémarrage d'un service) doit être rapportée aux sysadmins du serveur (une information par courriel a posteriori suffira ici)
- les modifications devraient être faites dans des fichiers spécifiques aux besoins et non dans la configuration globale, par exemple :
pour MySQL dans /etc/mysql/conf.d/local.cnf
pour Apache dans /etc/apache2/site-available/dev-crm.auf.org.conf
pour PHP dans la section VirtualHost du site web (donc dans Apache) plutôt que dans la configuration globale de PHP (donc pas dans /etc/php5/apache2/php.ini)