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