From a165072915051462392ca092ccdc439633778c96 Mon Sep 17 00:00:00 2001 From: marc tobias Date: Thu, 20 Sep 2018 18:18:41 +0200 Subject: [PATCH] copy of the Ubuntu18 vagrant setup but with nginx as webserver --- Vagrantfile | 9 ++ vagrant/Install-on-Ubuntu-18-nginx.sh | 120 ++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100755 vagrant/Install-on-Ubuntu-18-nginx.sh diff --git a/Vagrantfile b/Vagrantfile index bd610e7e..4740f879 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -23,6 +23,15 @@ Vagrant.configure("2") do |config| end end + config.vm.define "ubuntu18nginx" do |sub| + sub.vm.box = "bento/ubuntu-18.04" + sub.vm.provision :shell do |s| + s.path = "vagrant/Install-on-Ubuntu-18-nginx.sh" + s.privileged = false + s.args = [checkout] + end + end + config.vm.define "ubuntu16" do |sub| sub.vm.box = "bento/ubuntu-16.04" sub.vm.provision :shell do |s| diff --git a/vagrant/Install-on-Ubuntu-18-nginx.sh b/vagrant/Install-on-Ubuntu-18-nginx.sh new file mode 100755 index 00000000..fdd7c469 --- /dev/null +++ b/vagrant/Install-on-Ubuntu-18-nginx.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +# +# This is variation of Install-on-Ubuntu.sh showcasing how to use the +# nginx webserver instead of Apache2. We might eventually merge both +# files. Right now expect this file to become outdated/unmaintained +# over time. +# +# This file lacks many comments found in Install-on-Ubuntu.sh, you +# should check that file first to get a basic understanding. +# + +# hacks for broken vagrant box +sudo rm -f /var/lib/dpkg/lock +sudo update-locale LANG=en_US.UTF-8 +export APT_LISTCHANGES_FRONTEND=none +export DEBIAN_FRONTEND=noninteractive + + sudo apt-get update -qq + sudo apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \ + libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\ + libbz2-dev libpq-dev libproj-dev \ + postgresql-server-dev-10 postgresql-10-postgis-2.4 \ + postgresql-contrib-10 \ + nginx php-fpm php php-pgsql php-pear php-db \ + php-intl git + + export USERNAME=vagrant + export USERHOME=/home/vagrant + + chmod a+x $USERHOME + +# Setting up PostgreSQL +# --------------------- +# +# Tune the postgresql configuration, see same section in Install-on-Ubuntu.sh + + sudo systemctl restart postgresql + + sudo -u postgres createuser -s $USERNAME + sudo -u postgres createuser www-data + +# +# Setting up the Nginx Webserver +# ------------------------------- +# +# You need to configure php-fpm to listen on a Unix socket. Then create Nginx +# configuration to forward localhost:80 requests to that socket. +# + + +sudo tee /etc/php/7.2/fpm/pool.d/www.conf << EOF_PHP_FPM_CONF +[www] +; Comment out the tcp listener and add the unix socket +;listen = 127.0.0.1:9000 +listen = /var/run/php7.2-fpm.sock + +; Ensure that the daemon runs as the correct user +listen.owner = www-data +listen.group = www-data +listen.mode = 0666 + +; Unix user of FPM processes +user = www-data +group = www-data + +; Choose process manager type (static, dynamic, ondemand) +pm = ondemand +pm.max_children = 5 +EOF_PHP_FPM_CONF + + + + +sudo tee /etc/nginx/sites-available/default << EOF_NGINX_CONF +server { + listen 80 default_server; + listen [::]:80 default_server; + + root $USERHOME/build/website; + index search.php index.html; + location / { + try_files \$uri \$uri/ @php; + } + + location @php { + fastcgi_param SCRIPT_FILENAME "\$document_root\$uri.php"; + fastcgi_param PATH_TRANSLATED "\$document_root\$uri.php"; + fastcgi_param QUERY_STRING \$args; + fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; + fastcgi_index index.php; + include fastcgi_params; + } + + location ~ [^/]\.php(/|$) { + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + if (!-f \$document_root\$fastcgi_script_name) { + return 404; + } + fastcgi_pass unix:/var/run/php7.2-fpm.sock; + fastcgi_index search.php; + include fastcgi.conf; + } +} +EOF_NGINX_CONF + + +sudo sed -i 's:#.*::' /etc/nginx/sites-available/default + + +# +# Enable the configuration and restart Nginx +# + + sudo systemctl stop apache2 # just in case it's installed as well + sudo systemctl restart php7.2-fpm nginx + +# From here continue in the 'Installing Nominatim' section in +# Install-on-Ubuntu.sh + -- 2.39.5