8 wallabag é compatibile con PHP >= 5.5, incluso PHP 7.
12 Per installare facilmente wallabag vi forniamo un Makefile, dunque avrete bisogno dello strumento make.
14 wallabag utilizza un gran numero di librerie PHP per funzionare. Queste librerie vanno installate tramite uno strumento chiamato Composer. Dovete installarlo se non lo avete giá fatto e assicuratevi di usare la versione 1.2 ( se giá avete Composer, esegui il comando composer selfupdate).
19 curl -s http://getcomposer.org/installer | php
21 `Qui <https://getcomposer.org/doc/00-intro.md>`__ puoi trovare istruzioni specifiche.
23 Per far funzionare wallabag avrete anche bisogno delle seguenti estensioni. Alcune di queste dovrebbero essere giá attive nella vostra versione di PHP, per cui potrebbe non essere necessario installare tutti i pacchetti corrispondenti.
41 wallabag usa PDO per connettersi, per cui avrete bisogno di uno dei seguenti:
47 E il corrispondente database server.
52 Su un web server dedicato (raccomandato)
53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 Per installare wallabag stesso dovete eseguire i seguenti comandi:
59 git clone https://github.com/wallabag/wallabag.git
60 cd wallabag && make install
62 Per attivare il server incorporato di PHP e verificare che l’installazione sia andata a buon fine potete eseguire:
68 E accedere a wallabag all’indirizzo http://ipdeltuoserver:8000
72 Per definire i parametri con variabili d’ambiente é necessario impostare queste ultime con il prefisso ``SYMFONY_``. Per esempio, ``SYMFONY__DATABASE_DRIVER``. Puoi guardare la `documentazione di Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ per maggiori informazioni.
74 A proposito di hosting condiviso
75 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77 Offriamo un pacchetto con tutte le dipendenze incluse. La configurazione di default usa SQLite per il database. Se volete cambiare queste impostazioni, modificate app/config/parameters.yml.
79 Abbiamo giá creato un utente: il login e la password sono wallabag.
83 Con questo pacchetto, wallabag non controlla le estensioni obbligatorie usate nell’applicazione (questi controlli sono fatti durante ``composer install`` quando hai un server web dedicato, vedi sopra).
85 Eseguite questo comando per scaricare ed estrarre il pacchetto piú aggiornato:
89 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
91 Troverete il `hash md5 del pacchetto piú aggiornato sul nostro sito <https://www.wallabag.org/pages/download-wallabag.html>`_.
93 Ora leggete la seguente documentazione per creare il vostro host virtuale poi accedete al vostro wallabag. Se avete cambiato la configurazione del database per usare MySQL o PostrgreSQL, dovrete creare un utente con il comando php bin/console wallabag:install --env=prod .
95 Installazione con Docker
96 ~~~~~~~~~~~~~~~~~~~~~~~~
98 Offriamo un’immagine Docker per installare wallabag facilmente. Guarda la nostra repository su `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ per maggiori informazioni.
100 Comando per avviare il container
104 docker pull wallabag/wallabag
110 Configurazione su Apache
111 ~~~~~~~~~~~~~~~~~~~~~~~~
113 Non dimenticate di attivare la mod *rewrite* di Apache
117 a2enmod rewrite && systemctl reload apache2
119 Assumendo che voi abbiate installato wallabag nella cartella ``/var/www/wallabag`` e che vogliate usare PHP come un modulo Apache, ecco un vhost per l’applicazione:
124 ServerName domain.tld
125 ServerAlias www.domain.tld
127 DocumentRoot /var/www/wallabag/web
128 <Directory /var/www/wallabag/web>
133 <IfModule mod_rewrite.c>
136 RewriteCond %{REQUEST_FILENAME} !-f
137 RewriteRule ^(.*)$ app.php [QSA,L]
141 # uncomment the following lines if you install assets as symlinks
142 # or run into problems when compiling LESS/Sass/CoffeScript assets
143 # <Directory /var/www/wallabag>
144 # Options FollowSymlinks
147 # optionally disable the RewriteEngine for the asset directories
148 # which will allow apache to simply reply with a 404 when files are
149 # not found instead of passing the request into the full symfony stack
150 <Directory /var/www/wallabag/web/bundles>
151 <IfModule mod_rewrite.c>
155 ErrorLog /var/log/apache2/wallabag_error.log
156 CustomLog /var/log/apache2/wallabag_access.log combined
159 Dopo aver riavviato o ricaricato Apache dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
161 Configurazione su Nginx
162 ~~~~~~~~~~~~~~~~~~~~~~~
164 Assumendo che abbiate installato wallabag nella cartella ``/var/www/wallabag``, ecco una ricetta per l’applicazione:
169 server_name domain.tld www.domain.tld;
170 root /var/www/wallabag/web;
173 # try to serve file directly, fallback to app.php
174 try_files $uri /app.php$is_args$args;
176 location ~ ^/app\.php(/|$) {
177 fastcgi_pass unix:/var/run/php5-fpm.sock;
178 fastcgi_split_path_info ^(.+\.php)(/.*)$;
179 include fastcgi_params;
180 # When you are using symlinks to link the document root to the
181 # current version of your application, you should pass the real
182 # application path instead of the path to the symlink to PHP
184 # Otherwise, PHP's OPcache may not properly detect changes to
185 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
186 # for more information).
187 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
188 fastcgi_param DOCUMENT_ROOT $realpath_root;
189 # Prevents URIs that include the front controller. This will 404:
190 # http://domain.tld/app.php/some-path
191 # Remove the internal directive to allow URIs like this
195 # return 404 for all other php files not matching the front controller
196 # this prevents access to other php files you don't want to be accessible.
201 error_log /var/log/nginx/wallabag_error.log;
202 access_log /var/log/nginx/wallabag_access.log;
206 Dopo aver riavviato o ricaricato Nginx dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
208 Configurazione su lighttpd
209 ~~~~~~~~~~~~~~~~~~~~~~~~~~
211 Assumendo che abbiate installato wallabag nella cartella /var/www/wallabag, ecco una ricetta per l’applicazione (modificate il vostro file lighttpd.conf e incollatevi questa configurazione):
223 server.document-root = "/var/www/wallabag/web"
224 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
225 server.errorlog = "/var/log/lighttpd/error.log"
226 server.pid-file = "/var/run/lighttpd.pid"
227 server.username = "www-data"
228 server.groupname = "www-data"
230 server.follow-symlink = "enable"
231 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
232 url.access-deny = ( "~", ".inc" )
233 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
234 compress.cache-dir = "/var/cache/lighttpd/compress/"
235 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
236 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
237 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
238 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
239 dir-listing.activate = "disable"
241 url.rewrite-if-not-file = (
242 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
243 "^/([^?]*)" => "/app.php?=$1",
247 Diritti di accesso alle cartelle del progetto
248 ---------------------------------------------
253 Quando vorremo solamente testare wallabag, eseguiremo il comando ``make run`` per avviare la nostra istanza di wallabag e tutto funzionerá correttamente poiché l’utente che ha iniziato il progetto puó accedere alla cartella corrente senza problemi.
255 Ambiente di produzione
256 ~~~~~~~~~~~~~~~~~~~~~~
258 Non appena useremo Apache o Nginx per accedere alla nostra istanza di wallabag, e non avviandola con il comando ``make run``, dovremo aver cura di concedere i giusti diritti sulle giuste cartelle per far rimanere sicure tutte le cartelle del progetto.
260 Per fare ció, il nome della cartella, conosciuta come ``DocumentRoot`` (per Apache) o ``root`` (per Nginx), deve essere assolutamente accessibile all’utente Apache/Nginx. Il suo nome è generalmente ``www-data``, ``apache`` o ``nobody`` (dipendendo dal sistema Linux utilizzato).
262 Quindi la cartella ``/var/www/wallabag/web`` deve essere accessibile da quest’ultimo. Questo tuttavia potrebbe non essere sufficiente se solo ci importa di questa cartella poiché potremmo incontrare una pagina bianca o un errore 500 quando cerchiamo di accedere alla homepage del progetto.
264 Questo é dato dal fatto che dovremo concedere gli stessi diritti di accesso di ``/var/www/wallabag/web`` alla cartella ``/var/www/wallabag/var`` . Risolveremo quindi il problema con il seguente comando:
268 chown -R www-data:www-data /var/www/wallabag/var
271 Deve essere tutto uguale per le seguenti cartelle:
273 * /var/www/wallabag/bin/
274 * /var/www/wallabag/app/config/
275 * /var/www/wallabag/vendor/
276 * /var/www/wallabag/data/
282 chown -R www-data:www-data /var/www/wallabag/bin
283 chown -R www-data:www-data /var/www/wallabag/app/config
284 chown -R www-data:www-data /var/www/wallabag/vendor
285 chown -R www-data:www-data /var/www/wallabag/data/
287 Altrimenti prima o poi incontreremo questi messaggi di errore:
291 Unable to write to the "bin" directory.
292 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
293 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
295 Regole aggiuntive per SELinux
296 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
298 se SELinux é abilitato sul vostro sistema, dovrete configurare contesti aggiuntivi in modo che wallabag funzioni correttamente. Per controllare se SELinux é abilitato, semplicemente inserisci ció che segue:
302 Questo mostrerá ``Enforcing`` se SELinux é abilitato. Creare un nuovo contesto coinvolge la seguente sintassi:
304 ``semanage fcontext -a -t <context type> <full path>``
308 ``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
310 Questo applicherá ricorsivamente il constesto httpd_sys_content_t alla cartella wallabag e a tutti i file e cartelle sottostanti. Sono necessarie le seguenti regole:
312 +-----------------------------------+----------------------------+
313 | Percorso completo | Contesto |
314 +===================================+============================+
315 | /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
316 +-----------------------------------+----------------------------+
317 | /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
318 +-----------------------------------+----------------------------+
319 | /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
320 +-----------------------------------+----------------------------+
321 | /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
322 +-----------------------------------+----------------------------+
324 Dopo aver creato questi contesti, inserite ció che segue per applicare le vostre regole:
326 ``restorecon -R -v /var/www/wallabag``
328 Potrete controllare i contesti in una cartella scrivendo ``ls -lZ`` e potrete vedere tutte le regole correnti con ``semanage fcontext -l -C``.
330 Se state installando il pacchetto latest-v2-package, é necessaria un'ulteriore regola durante la configurazione iniziale:
332 ``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
334 Dopo che siate acceduti con successo al vostro wallabag e abbiate completato la configurazione iniziale, questo contesto puó essere rimosso:
338 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
339 retorecon -R -v /var/www/wallabag/var