]> git.immae.eu Git - github/wallabag/wallabag.git/blob - docs/it/user/installation.rst
Merge remote-tracking branch 'origin/master' into 2.3
[github/wallabag/wallabag.git] / docs / it / user / installation.rst
1
2
3 Installa wallabag
4 =================
5
6 Requisiti
7 ---------
8 wallabag é compatibile con PHP >= 5.5, incluso PHP 7.
9
10 .. nota::
11
12 Per installare facilmente wallabag vi forniamo un Makefile, dunque avrete bisogno dello strumento make.
13
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).
15
16 Installa Composer:
17
18 ::
19 curl -s http://getcomposer.org/installer | php
20
21 `Qui <https://getcomposer.org/doc/00-intro.md>`__ puoi trovare istruzioni specifiche.
22
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.
24
25 - php-session
26 - php-ctype
27 - php-dom
28 - php-hash
29 - php-simplexml
30 - php-json
31 - php-gd
32 - php-mbstring
33 - php-xml
34 - php-tidy
35 - php-iconv
36 - php-curl
37 - php-gettext
38 - php-tokenizer
39 - php-bcmath
40
41 wallabag usa PDO per connettersi, per cui avrete bisogno di uno dei seguenti:
42
43 -pdo_mysql
44 -pdo_sqlite
45 -pdo_pgsql
46
47 E il corrispondente database server.
48
49 Installazione
50 -------------
51
52 Su un web server dedicato (raccomandato)
53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
55 Per installare wallabag stesso dovete eseguire i seguenti comandi:
56
57 ::
58
59 git clone https://github.com/wallabag/wallabag.git
60 cd wallabag && make install
61
62 Per attivare il server incorporato di PHP e verificare che l’installazione sia andata a buon fine potete eseguire:
63
64 ::
65
66 make run
67
68 E accedere a wallabag all’indirizzo http://ipdeltuoserver:8000
69
70 .. consiglio::
71
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.
73
74 A proposito di hosting condiviso
75 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
76
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.
78
79 Abbiamo giá creato un utente: il login e la password sono wallabag.
80
81 .. attenzione:
82
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).
84
85 Eseguite questo comando per scaricare ed estrarre il pacchetto piú aggiornato:
86
87 .. code-block:: bash
88
89 wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
90
91 Troverete il `hash md5 del pacchetto piú aggiornato sul nostro sito <https://static.wallabag.org/releases/>`_.
92
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 .
94
95 Installazione con Docker
96 ~~~~~~~~~~~~~~~~~~~~~~~~
97
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.
99
100 Comando per avviare il container
101
102 .. code-block:: bash
103
104 docker pull wallabag/wallabag
105
106 Installazione su Cloudron
107 ~~~~~~~~~~~~~~~~~~~~~~~~~
108
109 Cloudron fornisce un modo facile di installare webapps sul vostro server mirato ad automatizzare i compiti del sysadmin ed a mantenere le app aggiornate.
110 wallabag é pacchettizzata come app Cloudron ed é disponibile all'installazione direttamente dallo store.
111
112 `Installa wallabag sul tuo Cloudron <https://cloudron.io/store/org.wallabag.cloudronapp.html>`__
113
114 Host virtuali
115 -------------
116
117 Configurazione su Apache
118 ~~~~~~~~~~~~~~~~~~~~~~~~
119
120 Non dimenticate di attivare la mod *rewrite* di Apache
121
122 .. code-block:: bash
123
124 a2enmod rewrite && systemctl reload apache2
125
126 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:
127
128 ::
129
130 <VirtualHost *:80>
131 ServerName domain.tld
132 ServerAlias www.domain.tld
133
134 DocumentRoot /var/www/wallabag/web
135 <Directory /var/www/wallabag/web>
136 AllowOverride None
137 Order Allow,Deny
138 Allow from All
139
140 <IfModule mod_rewrite.c>
141 Options -MultiViews
142 RewriteEngine On
143 RewriteCond %{REQUEST_FILENAME} !-f
144 RewriteRule ^(.*)$ app.php [QSA,L]
145 </IfModule>
146 </Directory>
147
148 # uncomment the following lines if you install assets as symlinks
149 # or run into problems when compiling LESS/Sass/CoffeScript assets
150 # <Directory /var/www/wallabag>
151 # Options FollowSymlinks
152 # </Directory>
153
154 # optionally disable the RewriteEngine for the asset directories
155 # which will allow apache to simply reply with a 404 when files are
156 # not found instead of passing the request into the full symfony stack
157 <Directory /var/www/wallabag/web/bundles>
158 <IfModule mod_rewrite.c>
159 RewriteEngine Off
160 </IfModule>
161 </Directory>
162 ErrorLog /var/log/apache2/wallabag_error.log
163 CustomLog /var/log/apache2/wallabag_access.log combined
164 </VirtualHost>
165
166 Dopo aver riavviato o ricaricato Apache dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
167
168 Configurazione su Nginx
169 ~~~~~~~~~~~~~~~~~~~~~~~
170
171 Assumendo che abbiate installato wallabag nella cartella ``/var/www/wallabag``, ecco una ricetta per l’applicazione:
172
173 ::
174
175 server {
176 server_name domain.tld www.domain.tld;
177 root /var/www/wallabag/web;
178
179 location / {
180 # try to serve file directly, fallback to app.php
181 try_files $uri /app.php$is_args$args;
182 }
183 location ~ ^/app\.php(/|$) {
184 fastcgi_pass unix:/var/run/php5-fpm.sock;
185 fastcgi_split_path_info ^(.+\.php)(/.*)$;
186 include fastcgi_params;
187 # When you are using symlinks to link the document root to the
188 # current version of your application, you should pass the real
189 # application path instead of the path to the symlink to PHP
190 # FPM.
191 # Otherwise, PHP's OPcache may not properly detect changes to
192 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
193 # for more information).
194 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
195 fastcgi_param DOCUMENT_ROOT $realpath_root;
196 # Prevents URIs that include the front controller. This will 404:
197 # http://domain.tld/app.php/some-path
198 # Remove the internal directive to allow URIs like this
199 internal;
200 }
201
202 # return 404 for all other php files not matching the front controller
203 # this prevents access to other php files you don't want to be accessible.
204 location ~ \.php$ {
205 return 404;
206 }
207
208 error_log /var/log/nginx/wallabag_error.log;
209 access_log /var/log/nginx/wallabag_access.log;
210 }
211
212
213 Dopo aver riavviato o ricaricato Nginx dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
214
215 Configurazione su lighttpd
216 ~~~~~~~~~~~~~~~~~~~~~~~~~~
217
218 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):
219
220 ::
221
222 server.modules = (
223 "mod_fastcgi",
224 "mod_access",
225 "mod_alias",
226 "mod_compress",
227 "mod_redirect",
228 "mod_rewrite",
229 )
230 server.document-root = "/var/www/wallabag/web"
231 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
232 server.errorlog = "/var/log/lighttpd/error.log"
233 server.pid-file = "/var/run/lighttpd.pid"
234 server.username = "www-data"
235 server.groupname = "www-data"
236 server.port = 80
237 server.follow-symlink = "enable"
238 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
239 url.access-deny = ( "~", ".inc" )
240 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
241 compress.cache-dir = "/var/cache/lighttpd/compress/"
242 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
243 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
244 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
245 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
246 dir-listing.activate = "disable"
247
248 url.rewrite-if-not-file = (
249 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
250 "^/([^?]*)" => "/app.php?=$1",
251 )
252
253
254 Diritti di accesso alle cartelle del progetto
255 ---------------------------------------------
256
257 Ambiente di test
258 ~~~~~~~~~~~~~~~~
259
260 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.
261
262 Ambiente di produzione
263 ~~~~~~~~~~~~~~~~~~~~~~
264
265 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.
266
267 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).
268
269 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.
270
271 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:
272
273 .. code-block:: bash
274
275 chown -R www-data:www-data /var/www/wallabag/var
276
277
278 Deve essere tutto uguale per le seguenti cartelle:
279
280 * /var/www/wallabag/bin/
281 * /var/www/wallabag/app/config/
282 * /var/www/wallabag/vendor/
283 * /var/www/wallabag/data/
284
285 inserendo
286
287 .. code-block:: bash
288
289 chown -R www-data:www-data /var/www/wallabag/bin
290 chown -R www-data:www-data /var/www/wallabag/app/config
291 chown -R www-data:www-data /var/www/wallabag/vendor
292 chown -R www-data:www-data /var/www/wallabag/data/
293
294 Altrimenti prima o poi incontreremo questi messaggi di errore:
295
296 .. code-block:: bash
297
298 Unable to write to the "bin" directory.
299 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
300 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
301
302 Regole aggiuntive per SELinux
303 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304
305 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:
306
307 ``getenforce``
308
309 Questo mostrerá ``Enforcing`` se SELinux é abilitato. Creare un nuovo contesto coinvolge la seguente sintassi:
310
311 ``semanage fcontext -a -t <context type> <full path>``
312
313 Per esempio:
314
315 ``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
316
317 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:
318
319 +-----------------------------------+----------------------------+
320 | Percorso completo | Contesto |
321 +===================================+============================+
322 | /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
323 +-----------------------------------+----------------------------+
324 | /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
325 +-----------------------------------+----------------------------+
326 | /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
327 +-----------------------------------+----------------------------+
328 | /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
329 +-----------------------------------+----------------------------+
330
331 Dopo aver creato questi contesti, inserite ció che segue per applicare le vostre regole:
332
333 ``restorecon -R -v /var/www/wallabag``
334
335 Potrete controllare i contesti in una cartella scrivendo ``ls -lZ`` e potrete vedere tutte le regole correnti con ``semanage fcontext -l -C``.
336
337 Se state installando il pacchetto latest-v2-package, é necessaria un'ulteriore regola durante la configurazione iniziale:
338
339 ``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
340
341 Dopo che siate acceduti con successo al vostro wallabag e abbiate completato la configurazione iniziale, questo contesto puó essere rimosso:
342
343 ::
344
345 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
346 retorecon -R -v /var/www/wallabag/var