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.

Reply via email to