Hello Mirek, Can send a PR over github so we get a better idea what your improvements are and can include them more easily.
Thanks Richard On Thu, Dec 8, 2016 at 7:31 AM, Mirek Zvolský <[email protected]> wrote: > The link is no longer working. > Here is the script. This version worked for me: > > #!/bin/bash > echo 'setup-web2py-nginx-uwsgi-ubuntu-precise.sh' > echo 'Requires Ubuntu > 12.04 or Debian >= 8 and installs Nginx + uWSGI + > Web2py' > # Check if user has root privileges > if [[ $EUID -ne 0 ]]; then > echo "You must run the script as root or using sudo" > exit 1 > fi > # parse command line arguments > nopassword=0 > nocertificate=0 > while [ "$#" -gt 0 ]; do > case "$1" in > --no-password) nopassword=1; shift 1;; > --no-certificate) nocertificate=1; shift 1;; > esac > done > # Get Web2py Admin Password > if [ "$nopassword" -eq 0 ] > then > echo -e "Web2py Admin Password: \c " > read PW > fi > # Upgrade and install needed software > apt-get update > apt-get -y upgrade > apt-get autoremove > apt-get autoclean > apt-get -y install nginx-full > apt-get -y install build-essential python-dev libxml2-dev python-pip unzip > pip install setuptools --no-use-wheel --upgrade > PIPPATH=`which pip` > $PIPPATH install --upgrade uwsgi > # Create common nginx sections > mkdir /etc/nginx/conf.d/web2py > echo ' > gzip_static on; > gzip_http_version 1.1; > gzip_proxied expired no-cache no-store private auth; > gzip_disable "MSIE [1-6]\."; > gzip_vary on; > ' > /etc/nginx/conf.d/web2py/gzip_static.conf > echo ' > gzip on; > gzip_disable "msie6"; > gzip_vary on; > gzip_proxied any; > gzip_comp_level 6; > gzip_buffers 16 8k; > gzip_http_version 1.1; > gzip_types text/plain text/css application/json application/x-javascript > text/xml application/xml application/xml+rss text/javascript; > ' > /etc/nginx/conf.d/web2py/gzip.conf > # Create configuration file /etc/nginx/sites-available/web2py > echo 'server { > listen 80; > server_name $hostname; > ###to enable correct use of response.static_version > location ~* ^/(\w+)/static(?:/_[\d]+\.[\d]+\.[\d]+)?/(.*)$ { > alias /home/www-data/web2py/applications/$1/static/$2; > expires max; > ### if you want to use pre-gzipped static files (recommended) > ### check scripts/zip_static_files.py and remove the comments > # include /etc/nginx/conf.d/web2py/gzip_static.conf; > } > ### > > ###if you use something like myapp = dict(languages=['en', 'it', > 'jp'], default_language='en') in your routes.py > #location ~* ^/(\w+)/(en|it|jp)/static/(.*)$ { > # alias /home/www-data/web2py/applications/$1/; > # try_files static/$2/$3 static/$3 =404; > #} > ### > > location / { > #uwsgi_pass 127.0.0.1:9001; > uwsgi_pass unix:///tmp/web2py.socket; > include uwsgi_params; > uwsgi_param UWSGI_SCHEME $scheme; > uwsgi_param SERVER_SOFTWARE nginx/$nginx_version; > > ###remove the comments to turn on if you want gzip compression > of your pages > # include /etc/nginx/conf.d/web2py/gzip.conf; > ### end gzip section > > ### remove the comments if you use uploads (max 10 MB) > #client_max_body_size 10m; > ### > } > } > server { > listen 443 default_server ssl; > server_name $hostname; > ssl_certificate /etc/nginx/ssl/web2py.crt; > ssl_certificate_key /etc/nginx/ssl/web2py.key; > ssl_prefer_server_ciphers on; > ssl_session_cache shared:SSL:10m; > ssl_session_timeout 10m; > ssl_ciphers ECDHE-RSA-AES256-SHA:DHE-RSA-A > ES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA; > ssl_protocols TLSv1 TLSv1.1 TLSv1.2; > keepalive_timeout 70; > location / { > #uwsgi_pass 127.0.0.1:9001; > uwsgi_pass unix:///tmp/web2py.socket; > include uwsgi_params; > uwsgi_param UWSGI_SCHEME $scheme; > uwsgi_param SERVER_SOFTWARE nginx/$nginx_version; > ###remove the comments to turn on if you want gzip compression > of your pages > # include /etc/nginx/conf.d/web2py/gzip.conf; > ### end gzip section > ### remove the comments if you want to enable uploads (max 10 > MB) > #client_max_body_size 10m; > ### > } > ###to enable correct use of response.static_version > location ~* ^/(\w+)/static(?:/_[\d]+\.[\d]+\.[\d]+)?/(.*)$ { > alias /home/www-data/web2py/applications/$1/static/$2; > expires max; > ### if you want to use pre-gzipped static files (recommended) > ### check scripts/zip_static_files.py and remove the comments > # include /etc/nginx/conf.d/web2py/gzip_static.conf; > } > ### > > }' >/etc/nginx/sites-available/web2py > > ln -s /etc/nginx/sites-available/web2py /etc/nginx/sites-enabled/web2py > rm /etc/nginx/sites-enabled/default > mkdir /etc/nginx/ssl > cd /etc/nginx/ssl > if [ "$nocertificate" -eq 0 ] > then > openssl genrsa 1024 > web2py.key > chmod 400 web2py.key > openssl req -new -x509 -nodes -sha1 -days 1780 -key web2py.key > > web2py.crt > openssl x509 -noout -fingerprint -text < web2py.crt > web2py.info > fi > # Prepare folders for uwsgi > sudo mkdir /etc/uwsgi > sudo mkdir /var/log/uwsgi > sudo mkdir /etc/systemd > sudo mkdir /etc/systemd/system > > #uWSGI Emperor > echo '[Unit] > Description = uWSGI Emperor > After = syslog.target > > [Service] > ExecStart = /usr/local/bin/uwsgi --ini /etc/uwsgi/web2py.ini > RuntimeDirectory = uwsgi > Restart = always > KillSignal = SIGQUIT > Type = notify > StandardError = syslog > NotifyAccess = all > > [Install] > WantedBy = multi-user.target > ' > /etc/systemd/system/emperor.uwsgi.service > > # Create configuration file /etc/uwsgi/web2py.ini > echo '[uwsgi] > > socket = /tmp/web2py.socket > pythonpath = /home/www-data/web2py/ > mount = /=wsgihandler:application > processes = 4 > master = true > harakiri = 60 > reload-mercy = 8 > cpu-affinity = 1 > stats = /tmp/stats.socket > max-requests = 2000 > limit-as = 512 > reload-on-as = 256 > reload-on-rss = 192 > uid = www-data > gid = www-data > touch-reload = /home/www-data/web2py/routes.py > cron = 0 0 -1 -1 -1 python /home/www-data/web2py/web2py.py -Q -S welcome > -M -R scripts/sessions2trash.py -A -o > no-orphans = true > ' >/etc/uwsgi/web2py.ini > > #Create a configuration file for uwsgi in emperor-mode > #for Upstart in /etc/init/uwsgi-emperor.conf > echo '# Emperor uWSGI script > > description "uWSGI Emperor" > start on runlevel [2345] > stop on runlevel [06] > ## > #remove the comments in the next section to enable static file compression > for the welcome app > #in that case, turn on gzip_static on; on /etc/nginx/nginx.conf > ## > #pre-start script > # python /home/www-data/web2py/web2py.py -S welcome -R > scripts/zip_static_files.py > # chown -R www-data:www-data /home/www-data/web2py/* > #end script > respawn > exec uwsgi --master --die-on-term --emperor /etc/uwsgi --logto > /var/log/uwsgi/uwsgi.log > ' > /etc/init/uwsgi-emperor.conf > # Install Web2py > mkdir /home/www-data > cd /home/www-data > wget http://web2py.com/examples/static/web2py_src.zip > unzip web2py_src.zip > mv web2py/handlers/wsgihandler.py web2py/wsgihandler.py > rm web2py_src.zip > chown -R www-data:www-data web2py > cd /home/www-data/web2py > if [ "$nopassword" -eq 0 ] > then > sudo -u www-data python -c "from gluon.main import save_password; > save_password('$PW',443)" > fi > > sudo systemctl restart nginx > sudo systemctl restart emperor.uwsgi > > echo <<EOF > you can stop uwsgi and nginx with > > sudo systemctl stop nginx > sudo systemctl stop emperor.uwsgi > > and start it with > > sudo systemctl start nginx > sudo systemctl start emperor.uwsgi > > EOF > > > > > > > On Tuesday, 9 August 2016 14:03:18 UTC+2, Mirek Zvolský wrote: >> >> If you have lot of time, you can test if this script works: >> >> https://github.com/zvolsky/web2py/blob/zvolsky_rejected/scri >> pts/setup-web2py-nginx-uwsgi-ubuntu.sh >> >> Here I try use systemctl instead of start. >> >> >> >> >> >> >> >> Dne pondělí 8. srpna 2016 18:39:51 UTC+2 mweissen napsal(a): >>> >>> I have tried to setup a new web2py server with nginx on Ubuntu 16.04 LTS >>> >>> I have used the script >>> >>> https://raw.githubusercontent.com/web2py/web2py/master/scrip >>> ts/setup-web2py-nginx-uwsgi-ubuntu.sh >>> >>> The script stopped with >>> >>> extracting: web2py/applications/__init__.py >>> extracting: web2py/site-packages/__init__.py >>> [ ok ] Starting nginx (via systemctl): nginx.service. >>> ./setup-web2py-nginx-uwsgi-ubuntu.sh: line 217: start: command not found >>> >>> >>> Nginx seems to work: >>> >>> Welcome to nginx! >>> >>> If you see this page, the nginx web server is successfully installed and >>> working. Further configuration is required. >>> >>> >>> Any comments? >>> >>> By the way: I have tried the Apache version too - the Apache script >>> works correctly. >>> >>> Regards, Martin >>> >> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

