PHP 5.6 on Centos 6¶
You need to have Tuleap 9.14 minimum.
You can get better performances (~20% of gain) by running Tuleap with a recent version of PHP.
In order to achieve that, you will have to install PHP 5.6 fpm and nginx along regular Tuleap installation (apache 2.2 & php 5.3). Apache is mandatory for everything mailman or subversion related. If you are not using them, it can be removed.
The following configuration replace the one you might have done with nginx as a caching reverse proxy.
Those steps can be done in advance with your current Tuleap installation.
For mediawiki users, the PHP 5.6 support requires to have mediawiki 1.23, projects that still run mediawiki 1.20 won’t be accessible. However, you can migrate from 1.20 to 1.23 even after having upgrade to 5.6.
See Mediawiki section on how to upgrade.
my.cnf on your mysql server contains
old_passwords=1 you will have to desactivate it (comment the line)
and restart mysql.
Then update your password, as
dbauthuser DB user:
SET SESSION old_passwords=0;
SET PASSWORD = PASSWORD('your_existing_password')
Starting 9.14 a tool is available to automatically:
- deploy PHP FPM 5.6 configuration in
- deploy Nginx configuration in
/etc/nginx(listen on ~*:80 + all front configuration)
- update apache configuration (listen on 127.0.0.1:8080 + disable SSL)
service tuleap stop service httpd stop /usr/share/tuleap/tools/utils/php56/run.php
/etc/nginx/conf.d/tuleap.confto finish the SSL configuration (point toward the right files).
/etc/tuleap/conf/local.incand set (or add):
$sys_trusted_proxies = '127.0.0.1';
Finally you can restart all services:
service tuleap start service httpd start service rh-php56-php-fpm start service nginx start
You should also ensure that fpm and nginx will be started at machine boot:
chkconfig rh-php56-php-fpm on chkconfig nginx on
If configuration failed or if you don’t want to use the automated deployment, the next sections describe the manual process.
You need to adapt apache configuration to run it on localhost:8080. Moreover you no longer need to run ssl on it as it will be handled by nginx.
/etc/httpd/conf/httpd.conf and change the values for:
Listen 127.0.0.1:8080 NameVirtualHost *:8080 <VirtualHost *:8080> #Include conf/ssl.conf
service httpd restart
Tuleap web interface is no longer accessible.
Prepare the environment:
mkdir -p /var/tmp/tuleap_cache/php/wsdlcache chown -R codendiadm:codendiadm /var/tmp/tuleap_cache/php
- Then paste the following content at the end of the file:
; Tuleap user = codendiadm group = codendiadm php_value[session.save_path] = /var/tmp/tuleap_cache php_value[soap.wsdl_cache_dir] = /var/tmp/tuleap_cache/php/wsdlcache php_value[include_path] = "/usr/share/pear/:/usr/share/php:/usr/share/tuleap/src/www/include:/usr/share/tuleap/src:." php_value[memory_limit] = 196M php_admin_flag[short_open_tag] = on php_value[date.timezone] = Europe/Paris ; For development, catch worker output catch_workers_output = yes ;php_flag[display_errors] = on ;php_flag[html_errors] = on ; Adjust for your git over http usage (you can increase to very high values if you have a lot of memory) php_value[post_max_size] = 128M php_value[upload_max_filesize] = 128M
Then start fpm:
service rh-php56-php-fpm restart
Nginx configuration is rather complex, we strongly recommend that you scaffold the config with the tool and then you do your own tweaks.
Remove all files in
Deploy tuleap conf
Edit, hack, customize
Keep in mind that
/etc/nginx/conf.d/tuleap-plugins are meant to be controlled
by tuleap tools, you should not deploy/modify configuration there.
/etc/nginx/conf.d/tuleap.conf is deployed only if it doesn’t exist so any modifications here are safe.
Then start nginx:
service nginx restart
With this new setup a few things changed in the way Tuleap works:
The entry point for all HTTP & HTTPS traffic is nginx (>=1.10). The configuration base dir is
/etc/nginxand the logs are located in
/var/log/nginxand you will find an access log as well as an error_log. PHP errors (like blank pages & all) will be found in nginx error_log. On the very plus size of nginx, configuration can be updated without server shutdown. After a configuration update, issue:
service nginx configtest
and if ok:
service nginx reload
Apache is still there to serve subversion traffic (mod_dav_svn only exists for apache) and mailman (cgi). Expect a low traffic there.
PHP is served by php-fpm (no longer mod_php). It’s a standalone daemon that you can manipulate with:
service rh-php56-php-fpm COMMAND
The configuration base file is
/etc/opt/rh/rh-php56/php-fpm.confand the bits in
/etc/opt/rh/rh-php56/php-fpm.d. The logs can be found in
/var/opt/rh/rh-php56/log/php-fpmPlease keep in mind that all modifications you might have done in
/etc/httpd/conf.d/php.confwill not be taken into account. You should adapt them to the new version (and check if they are relevant).