Mettere nowiki pare facile, l’ho scritto io e manco sapevo come si faceva, quindi mo socializzo.
Installa
apt-get install nginx-full python-virtualenv git uwsgi uwsgi-plugin-python uwsgi-plugin-syslog cd /var git clone git://github.com/boyska/nowiki cd nowiki sudo -u nowiki virtualenv --no-site-packages venv source venv/bin/activate pip install -r requirements.txt deactivate cd nowiki cp nowiki.example.cfg nowiki.cfg
Configurazione
Configurare nowiki
Il file nowiki.cfg permette di cambiare alcuni settaggi base.
E’ poi importante mettere i permessi con accuratezza, in modo che uwsgi possa soltanto leggere i file di nowiki, con l’eccezione di /data/ per cui ci deve essere possibilita’ di scrittura.
chown nowiki:nogroup /var/nowiki -R chmod g-w /var/nowiki -R chmod o-rwx /var/nowiki -R chown nobody /var/nowiki/nowiki/data -R chmod ug+rwX /var/nowiki/nowiki/data -R
Configurare uwsgi
In /etc/uwsgi/apps-enabled/uwsgi-nowiki:
[uwsgi] socket = /run/uwsgi/nowiki.sock chdir = /var/nowiki/nowiki virtualenv = /var/nowiki/venv module = nowiki callable = app uid = nobody gid = nogroup chmod = 600 chown-socket = www-data plugins = python,syslog log-syslog = uwsgi-nowiki
In /etc/uwsgi/emperor.ini basta mettere
[uwsgi] emperor = /etc/uwsgi/apps-enabled uid = nobody gid = nogroup chown-socket = www-data master = true
Bisogna poi configurare systemd per gestire l’avvio di uwsgi, mettendo questo in /etc/systemd/system/emperor.uwsgi.service. Nota: uwsgi potrebbe partire con il socketactivation (vedi ListenStream), ma non ho capito se c’e’ un modo decente di farlo senza dover elencare tutte le socket coinvolte dentro l’emperor.uwsgi.socket . Quindi non l’ho fatto, non mi pareva pulito.
[Unit] Description=uWSGI Emperor After=syslog.target [Service] ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/emperor.ini ExecStartPre=/bin/mkdir -p /run/uwsgi ExecStartPre=/bin/chown nobody:nogroup /run/uwsgi Restart=always Type=notify StandardError=syslog NotifyAccess=main [Install] WantedBy=multi-user.target
Configurare nginx
server {
listen 80;
rewrite ^/nowiki$ /nowiki/ permanent;
location /nowiki { #try_files $uri @nowiki; }
#location @nowiki {
include uwsgi_params;
uwsgi_param SCRIPT_NAME /nowiki;
uwsgi_modifier1 30;
uwsgi_pass unix:/run/uwsgi/uwsgi.sock;
}
}