]> git.immae.eu Git - github/wallabag/wallabag.git/blame - docs/it/user/installation.rst
Moved :it: documentation into it folder
[github/wallabag/wallabag.git] / docs / it / user / installation.rst
CommitLineData
5601b453 1
2
3Installa wallabag
4=================
5
6Requisiti
7---------
8wallabag é 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
14wallabag 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
16Installa 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
23Per 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
41wallabag usa PDO per connettersi, per cui avrete bisogno di uno dei seguenti:
42
43-pdo_mysql
44-pdo_sqlite
45-pdo_pgsql
46
47E il corrispondente database server.
48
49Installazione
50-------------
51
52Su un web server dedicato (raccomandato)
53~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
55Per 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
62Per 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
68E 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
74A proposito di hosting condiviso
75~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
76
77Offriamo 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
79Abbiamo 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
85Eseguite questo comando per scaricare ed estrarre il pacchetto piú aggiornato:
86
87.. code-block:: bash
88
89 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
90
91Troverete il `hash md5 del pacchetto piú aggiornato sul nostro sito <https://www.wallabag.org/pages/download-wallabag.html>`_.
92
93Ora 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
95Installazione con Docker
96~~~~~~~~~~~~~~~~~~~~~~~~
97
98Offriamo 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
100Comando per avviare il container
101
102.. code-block:: bash
103
104 docker pull wallabag/wallabag
105
106
107Host virtuali
108-------------
109
110Configurazione su Apache
111~~~~~~~~~~~~~~~~~~~~~~~~
112
113Assumendo 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:
114
115::
116
117 <VirtualHost *:80>
118 ServerName domain.tld
119 ServerAlias www.domain.tld
120
121 DocumentRoot /var/www/wallabag/web
122 <Directory /var/www/wallabag/web>
123 AllowOverride None
124 Order Allow,Deny
125 Allow from All
126
127 <IfModule mod_rewrite.c>
128 Options -MultiViews
129 RewriteEngine On
130 RewriteCond %{REQUEST_FILENAME} !-f
131 RewriteRule ^(.*)$ app.php [QSA,L]
132 </IfModule>
133 </Directory>
134
135 # uncomment the following lines if you install assets as symlinks
136 # or run into problems when compiling LESS/Sass/CoffeScript assets
137 # <Directory /var/www/wallabag>
138 # Options FollowSymlinks
139 # </Directory>
140
141 # optionally disable the RewriteEngine for the asset directories
142 # which will allow apache to simply reply with a 404 when files are
143 # not found instead of passing the request into the full symfony stack
144 <Directory /var/www/wallabag/web/bundles>
145 <IfModule mod_rewrite.c>
146 RewriteEngine Off
147 </IfModule>
148 </Directory>
149 ErrorLog /var/log/apache2/wallabag_error.log
150 CustomLog /var/log/apache2/wallabag_access.log combined
151 </VirtualHost>
152
153Dopo aver riavviato o ricaricato Apache dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
154
155Configurazione su Nginx
156~~~~~~~~~~~~~~~~~~~~~~~
157
158Assumendo che abbiate installato wallabag nella cartella ``/var/www/wallabag``, ecco una ricetta per l’applicazione:
159
160::
161
162 server {
163 server_name domain.tld www.domain.tld;
164 root /var/www/wallabag/web;
165
166 location / {
167 # try to serve file directly, fallback to app.php
168 try_files $uri /app.php$is_args$args;
169 }
170 location ~ ^/app\.php(/|$) {
171 fastcgi_pass unix:/var/run/php5-fpm.sock;
172 fastcgi_split_path_info ^(.+\.php)(/.*)$;
173 include fastcgi_params;
174 # When you are using symlinks to link the document root to the
175 # current version of your application, you should pass the real
176 # application path instead of the path to the symlink to PHP
177 # FPM.
178 # Otherwise, PHP's OPcache may not properly detect changes to
179 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
180 # for more information).
181 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
182 fastcgi_param DOCUMENT_ROOT $realpath_root;
183 # Prevents URIs that include the front controller. This will 404:
184 # http://domain.tld/app.php/some-path
185 # Remove the internal directive to allow URIs like this
186 internal;
187 }
188
189 # return 404 for all other php files not matching the front controller
190 # this prevents access to other php files you don't want to be accessible.
191 location ~ \.php$ {
192 return 404;
193 }
194
195 error_log /var/log/nginx/wallabag_error.log;
196 access_log /var/log/nginx/wallabag_access.log;
197 }
198
199
200Dopo aver riavviato o ricaricato Nginx dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
201
202Configurazione su lighttpd
203~~~~~~~~~~~~~~~~~~~~~~~~~~
204
205Assumendo 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):
206
207::
208
209 server.modules = (
210 "mod_fastcgi",
211 "mod_access",
212 "mod_alias",
213 "mod_compress",
214 "mod_redirect",
215 "mod_rewrite",
216 )
217 server.document-root = "/var/www/wallabag/web"
218 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
219 server.errorlog = "/var/log/lighttpd/error.log"
220 server.pid-file = "/var/run/lighttpd.pid"
221 server.username = "www-data"
222 server.groupname = "www-data"
223 server.port = 80
224 server.follow-symlink = "enable"
225 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
226 url.access-deny = ( "~", ".inc" )
227 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
228 compress.cache-dir = "/var/cache/lighttpd/compress/"
229 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
230 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
231 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
232 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
233 dir-listing.activate = "disable"
234
235 url.rewrite-if-not-file = (
236 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
237 "^/([^?]*)" => "/app.php?=$1",
238 )
239
240
241Diritti di accesso alle cartelle del progetto
242---------------------------------------------
243
244Ambiente di test
245~~~~~~~~~~~~~~~~
246
247Quando 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.
248
249Ambiente di produzione
250~~~~~~~~~~~~~~~~~~~~~~
251
252Non 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.
253
254Per 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).
255
256Quindi 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.
257
258Questo é 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:
259
260.. code-block:: bash
261
262 chown -R www-data:www-data /var/www/wallabag/var
263
264
265Deve essere tutto uguale per le seguenti cartelle:
266
267* /var/www/wallabag/bin/
268* /var/www/wallabag/app/config/
269* /var/www/wallabag/vendor/
270* /var/www/wallabag/data/
271
272inserendo
273
274.. code-block:: bash
275
276 chown -R www-data:www-data /var/www/wallabag/bin
277 chown -R www-data:www-data /var/www/wallabag/app/config
278 chown -R www-data:www-data /var/www/wallabag/vendor
279 chown -R www-data:www-data /var/www/wallabag/data/
280
281Altrimenti prima o poi incontreremo questi messaggi di errore:
282
283.. code-block:: bash
284
285 Unable to write to the "bin" directory.
286 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
287 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
288
289Regole aggiuntive per SELinux
290~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
291
292se 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:
293
294``getenforce``
295
296Questo mostrerá ``Enforcing`` se SELinux é abilitato. Creare un nuovo contesto coinvolge la seguente sintassi:
297
298``semanage fcontext -a -t <context type> <full path>``
299
300Per esempio:
301
302``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
303
304Questo applicherá ricorsivamente il constesto httpd_sys_content_t alla cartella wallabag e a tutti i file e cartelle sottostanti. Sono necessarie le seguenti regole:
305
306+-----------------------------------+----------------------------+
307| Percorso completo | Contesto |
308+===================================+============================+
309| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
310+-----------------------------------+----------------------------+
311| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
312+-----------------------------------+----------------------------+
313| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
314+-----------------------------------+----------------------------+
315| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
316+-----------------------------------+----------------------------+
317
318Dopo aver creato questi contesti, inserite ció che segue per applicare le vostre regole:
319
320``restorecon -R -v /var/www/wallabag``
321
322Potrete controllare i contesti in una cartella scrivendo ``ls -lZ`` e potrete vedere tutte le regole correnti con ``semanage fcontext -l -C``.
323
324Se state installando il pacchetto latest-v2-package, é necessaria un'ulteriore regola durante la configurazione iniziale:
325
326``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
327
328Dopo che siate acceduti con successo al vostro wallabag e abbiate completato la configurazione iniziale, questo contesto puó essere rimosso:
329
330::
331
332 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
333 retorecon -R -v /var/www/wallabag/var