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 : * [[Debian]] 8 “Jessie”, qui apporte Apache 2.4, MySQL 5.5, PHP 5.6 * partitionnement : || `/` || 2 G || || `/tmp` || 1 G || || `/var` || 1 G || || `/var/log` || 2 G || || `/var/lib/mysql` || 2 G || || `/var/www` || 3 G || * ajustements pour supporter pleinement [[Etude/Unicode|Unicode]] * mot de passe admin MySQL placé dans `/root/.my.cnf` * création d'un [[PKI|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` : {{{ ServerName dev-crm.auf.org Redirect / https://dev-crm.auf.org/ 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 Require all denied Require ip 199.84.140.0/24 Require ip 70.25.27.118/32 Satisfy all 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 }}} * 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 }}} . {i} `php5-mysql` apporte le module mysqli . {i} `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`)