That what I thought... It easy to messup with pip pip3 or python python3
also with virtualenv it even trickier because the pipenv use the python and
pip for the actual version installed... So you might end pass from pip3 in
the os and pip in the pipenv and you still use py3 in both...

On Wed, Feb 6, 2019 at 10:12 AM Ben Lawrence <[email protected]> wrote:

> Hi, it works now... I missed a pip3... works on a newly spun ubuntu 18.04
> instance on vultr.com
>
>
>
> #!/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 -s PW
>
>   printf "\n"  # fix no new line artifact of "read -s" to avoid cleartext
> password
>
> 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 python3-dev libxml2-dev python3-pip
> unzip
>
> pip3 install setuptools --no-use-wheel --upgrade
>
> PIPPATH=`which pip3`
>
> $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-AES256-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 python3 /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
>
> #    python3 /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 python3 -c "from gluon.main import save_password;
> save_password('$PW',443)"
>
> fi
>
>
> /etc/init.d/nginx start
>
> systemctl start emperor.uwsgi.service
>
> systemctl enable emperor.uwsgi.service
>
>
> echo <<EOF
>
> you can stop uwsgi and nginx with
>
>
>   sudo /etc/init.d/nginx stop
>
>   sudo systemctl stop emperor.uwsgi.service
>
>
>
> and start it with
>
>
>   sudo /etc/init.d/nginx start
>
>   systemctl start emperor.uwsgi.service
>
>
> EOF
>
>
> On Tuesday, February 5, 2019 at 6:08:44 PM UTC-8, Richard wrote:
>>
>> Share you change here, we may point you in the right direction, so you
>> can submit a PR on github... It shouldn't be hard to get the actual script
>> to work.
>>
>> Richard
>>
>> On Tue, Feb 5, 2019 at 2:28 PM Ben Lawrence <[email protected]> wrote:
>>
>>> HI
>>> If anyone has a working install script for web2py using python3 + a
>>> webserver, can you please share with me?
>>> I am using setup-web2py-nginx-uwsgi-ubuntu.sh and modified it to use
>>> python3 but the emporer uwsgi service always fails (with no error code).
>>> thank you in advance.
>>> Ben
>>>
>>> --
>>> 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.
>

-- 
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