]>
Commit | Line | Data |
---|---|---|
5601b453 | 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 | ||
0f26c285 | 89 | wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package |
5601b453 | 90 | |
91 | Troverete il `hash md5 del pacchetto piú aggiornato sul nostro sito <https://www.wallabag.org/pages/download-wallabag.html>`_. | |
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 | ||
107 | Host virtuali | |
108 | ------------- | |
109 | ||
110 | Configurazione su Apache | |
111 | ~~~~~~~~~~~~~~~~~~~~~~~~ | |
112 | ||
3529ce35 NL |
113 | Non dimenticate di attivare la mod *rewrite* di Apache |
114 | ||
115 | .. code-block:: bash | |
116 | ||
117 | a2enmod rewrite && systemctl reload apache2 | |
118 | ||
5601b453 | 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: |
120 | ||
121 | :: | |
122 | ||
123 | <VirtualHost *:80> | |
124 | ServerName domain.tld | |
125 | ServerAlias www.domain.tld | |
126 | ||
127 | DocumentRoot /var/www/wallabag/web | |
128 | <Directory /var/www/wallabag/web> | |
129 | AllowOverride None | |
130 | Order Allow,Deny | |
131 | Allow from All | |
132 | ||
133 | <IfModule mod_rewrite.c> | |
134 | Options -MultiViews | |
135 | RewriteEngine On | |
136 | RewriteCond %{REQUEST_FILENAME} !-f | |
137 | RewriteRule ^(.*)$ app.php [QSA,L] | |
138 | </IfModule> | |
139 | </Directory> | |
140 | ||
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 | |
145 | # </Directory> | |
146 | ||
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> | |
152 | RewriteEngine Off | |
153 | </IfModule> | |
154 | </Directory> | |
155 | ErrorLog /var/log/apache2/wallabag_error.log | |
156 | CustomLog /var/log/apache2/wallabag_access.log combined | |
157 | </VirtualHost> | |
158 | ||
159 | Dopo aver riavviato o ricaricato Apache dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld. | |
160 | ||
161 | Configurazione su Nginx | |
162 | ~~~~~~~~~~~~~~~~~~~~~~~ | |
163 | ||
164 | Assumendo che abbiate installato wallabag nella cartella ``/var/www/wallabag``, ecco una ricetta per l’applicazione: | |
165 | ||
166 | :: | |
167 | ||
168 | server { | |
169 | server_name domain.tld www.domain.tld; | |
170 | root /var/www/wallabag/web; | |
171 | ||
172 | location / { | |
173 | # try to serve file directly, fallback to app.php | |
174 | try_files $uri /app.php$is_args$args; | |
175 | } | |
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 | |
183 | # FPM. | |
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 | |
192 | internal; | |
193 | } | |
194 | ||
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. | |
197 | location ~ \.php$ { | |
198 | return 404; | |
199 | } | |
200 | ||
201 | error_log /var/log/nginx/wallabag_error.log; | |
202 | access_log /var/log/nginx/wallabag_access.log; | |
203 | } | |
204 | ||
205 | ||
206 | Dopo aver riavviato o ricaricato Nginx dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld. | |
207 | ||
208 | Configurazione su lighttpd | |
209 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
210 | ||
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): | |
212 | ||
213 | :: | |
214 | ||
215 | server.modules = ( | |
216 | "mod_fastcgi", | |
217 | "mod_access", | |
218 | "mod_alias", | |
219 | "mod_compress", | |
220 | "mod_redirect", | |
221 | "mod_rewrite", | |
222 | ) | |
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" | |
229 | server.port = 80 | |
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" | |
240 | ||
241 | url.rewrite-if-not-file = ( | |
242 | "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2", | |
243 | "^/([^?]*)" => "/app.php?=$1", | |
244 | ) | |
245 | ||
246 | ||
247 | Diritti di accesso alle cartelle del progetto | |
248 | --------------------------------------------- | |
249 | ||
250 | Ambiente di test | |
251 | ~~~~~~~~~~~~~~~~ | |
252 | ||
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. | |
254 | ||
255 | Ambiente di produzione | |
256 | ~~~~~~~~~~~~~~~~~~~~~~ | |
257 | ||
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. | |
259 | ||
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). | |
261 | ||
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. | |
263 | ||
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: | |
265 | ||
266 | .. code-block:: bash | |
267 | ||
268 | chown -R www-data:www-data /var/www/wallabag/var | |
269 | ||
270 | ||
271 | Deve essere tutto uguale per le seguenti cartelle: | |
272 | ||
273 | * /var/www/wallabag/bin/ | |
274 | * /var/www/wallabag/app/config/ | |
275 | * /var/www/wallabag/vendor/ | |
276 | * /var/www/wallabag/data/ | |
277 | ||
278 | inserendo | |
279 | ||
280 | .. code-block:: bash | |
281 | ||
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/ | |
286 | ||
287 | Altrimenti prima o poi incontreremo questi messaggi di errore: | |
288 | ||
289 | .. code-block:: bash | |
290 | ||
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 | |
294 | ||
295 | Regole aggiuntive per SELinux | |
296 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
297 | ||
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: | |
299 | ||
300 | ``getenforce`` | |
301 | ||
302 | Questo mostrerá ``Enforcing`` se SELinux é abilitato. Creare un nuovo contesto coinvolge la seguente sintassi: | |
303 | ||
304 | ``semanage fcontext -a -t <context type> <full path>`` | |
305 | ||
306 | Per esempio: | |
307 | ||
308 | ``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"`` | |
309 | ||
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: | |
311 | ||
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 | +-----------------------------------+----------------------------+ | |
323 | ||
324 | Dopo aver creato questi contesti, inserite ció che segue per applicare le vostre regole: | |
325 | ||
326 | ``restorecon -R -v /var/www/wallabag`` | |
327 | ||
328 | Potrete controllare i contesti in una cartella scrivendo ``ls -lZ`` e potrete vedere tutte le regole correnti con ``semanage fcontext -l -C``. | |
329 | ||
330 | Se state installando il pacchetto latest-v2-package, é necessaria un'ulteriore regola durante la configurazione iniziale: | |
331 | ||
332 | ``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"`` | |
333 | ||
334 | Dopo che siate acceduti con successo al vostro wallabag e abbiate completato la configurazione iniziale, questo contesto puó essere rimosso: | |
335 | ||
336 | :: | |
337 | ||
338 | semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var" | |
339 | retorecon -R -v /var/www/wallabag/var |