Hello!

I've been developing with web2py in arch linux for some time now with no
problem (just recall to run "python2 web2py.py"). It's a fine distro,
and if you think it takes ages to install (it does), you can use manjaro
linux which is basically archlinux preconfigured with very sensible
choices (and xfce, of course (no flamewar intended ;-) )).

Yesterday I had to reinstall a webapp, and found out that ovh offers
arch linux for its vps, so I couldn't resist and tried to install web2py
for production with nginx. As there is no deployment script, I looked at
the other distros and translated as necessary. This is the log:

- changing the package manager is as simple as always (but there is no
build-essentials package, instead there's a collection called
base-devel: "pacman -S base-devel").
- nginx and mariadb are pretty much the same everywhere, no problem
there. However I liked the way ubuntu splits the nginx configuration
into different sites, mimicking apache, so I borrowed the /etc/nginx
from my earlier ubuntu server.
- uwsgi compiles fine, install fine, but you have to write its own
systemd unit. I was having a hard time configuring uwsgi.service (I had
never done it) until I found the centos7 install script prepares a
systemd unit, so I copied that one from there and it's working with
minor changes.
- archlinux has python=python3, so I have to adapt the deploy
instructions here and there and change python for python2.
- arch linux does less things by default, but I only recall having to
edit /etc/locale.gen and then running locale-gen

If there are more people interested, I can help them and eventually
write a script, but I'm not an expert sysadmin and I prefer not to write
a install script until someone else can proof read it. There's also the
thing that the different install script for different distros have taken
different choice for example for deploying uwsgi, and I don't have a
clue which are best. For example, for ubuntu:

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

but for centos7

> [uwsgi]
> chdir = WEB2PY_PATH_PLACEHOLDER/WEB2PY_APP_PLACEHOLDER
> module = wsgihandler:application
>
> master = true
> processes = 5
>
> uid = USERNAME_PLACEHOLDER
> socket = /run/uwsgi/WEB2PY_APP_PLACEHOLDER.sock
> chown-socket = USERNAME_PLACEHOLDER:nginx
> chmod-socket = 660
> vacuum = true

and I have the gutt feeling that does options in the ubuntu version of
uwsgi.ini would be fine too for centos7, but damn if I know :-\ !

Another example: in the ubuntu install script it is possible to
repackage all the static files whenever you call

restart uwsgi-emperor

That's a very good idea, isn't it? I've certainly grabbed that idea, so
my uwsgi.service goes like this:

> [Unit]
> Description=uWSGI Emperor service
>
> [Service]
> ExecStartPre=/usr/bin/bash -c 'mkdir -p /run/uwsgi; chown
> www-data:www-data /run/uwsgi; su www-data -c  "python2
> /home/www-data/web2py/web2py.py -S YOUR_APP_HERE/appadmin -R
> scripts/zip_static_files.py"'
> ExecStart=/usr/bin/uwsgi --emperor /etc/uwsgi/sites
> Restart=always
> KillSignal=SIGQUIT
> Type=notify
> NotifyAccess=all
>
> [Install]
> WantedBy=multi-user.target


-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to