diff --git a/travis/setup-webserver.sh b/travis/setup-webserver.sh index f1bf69c575..9802fab749 100755 --- a/travis/setup-webserver.sh +++ b/travis/setup-webserver.sh @@ -1,55 +1,80 @@ #!/bin/bash # -# @copyright (c) 2013 phpBB Group +# @copyright (c) 2014 phpBB Group # @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 # set -e set -x +if [ "$TRAVIS_PHP_VERSION" = 'hhvm' ] +then + # Add PPA providing dependencies for recent HHVM on Ubuntu 12.04. + sudo add-apt-repository -y ppa:mapnik/boost +fi + sudo apt-get update sudo apt-get install -y nginx realpath sudo service nginx stop DIR=$(dirname "$0") -PHPBB_ROOT_PATH=$(realpath "$DIR/../phpBB") - -NGINX_CONF="/etc/nginx/sites-enabled/default" - -PHP_FPM_BIN="$HOME/.phpenv/versions/$TRAVIS_PHP_VERSION/sbin/php-fpm" -PHP_FPM_CONF="$DIR/php-fpm.conf" -PHP_FPM_SOCK=$(realpath "$DIR")/php-fpm.sock - USER=$(whoami) +PHPBB_ROOT_PATH=$(realpath "$DIR/../phpBB") +NGINX_CONF="/etc/nginx/sites-enabled/default" +APP_SOCK=$(realpath "$DIR")/php-app.sock -# php-fpm configuration +if [ "$TRAVIS_PHP_VERSION" = 'hhvm' ] +then + # Upgrade to a recent stable version of HHVM + sudo apt-get -o Dpkg::Options::="--force-confnew" \ + install -y hhvm=3.0.0~precise + + # MySQLi is broken in HHVM 3.0.0~precise and still does not work for us in + # 2014.03.28~saucy, i.e. needs more work. Use MySQL extension for now. + sed -i "s/mysqli/mysql/" "$DIR/phpunit-mysql-travis.xml" + + HHVM_LOG=$(realpath "$DIR")/hhvm.log + + sudo hhvm \ + --mode daemon \ + --user "$USER" \ + -vServer.Type=fastcgi \ + -vServer.FileSocket="$APP_SOCK" \ + -vLog.File="$HHVM_LOG" +else + # php-fpm + PHP_FPM_BIN="$HOME/.phpenv/versions/$TRAVIS_PHP_VERSION/sbin/php-fpm" + PHP_FPM_CONF="$DIR/php-fpm.conf" + + echo " + [global] + + [travis] + user = $USER + group = $USER + listen = $APP_SOCK + pm = static + pm.max_children = 2 + + php_admin_value[memory_limit] = 128M + " > $PHP_FPM_CONF + + sudo $PHP_FPM_BIN \ + --fpm-config "$DIR/php-fpm.conf" +fi + +# nginx echo " -[global] + server { + listen 80; + root $PHPBB_ROOT_PATH/; + index index.php index.html; -[travis] -user = $USER -group = $USER -listen = $PHP_FPM_SOCK -pm = static -pm.max_children = 2 - -php_admin_value[memory_limit] = 128M -" > $PHP_FPM_CONF - -# nginx configuration -echo " -server { - listen 80; - root $PHPBB_ROOT_PATH/; - index index.php index.html; - - location ~ \.php { - fastcgi_pass unix:$PHP_FPM_SOCK; - include fastcgi_params; + location ~ \.php { + fastcgi_pass unix:$APP_SOCK; + include fastcgi_params; + } } -} " | sudo tee $NGINX_CONF > /dev/null -# Start daemons -sudo $PHP_FPM_BIN --fpm-config "$DIR/php-fpm.conf" sudo service nginx start