]> git.immae.eu Git - github/wallabag/wallabag.git/blob - docs/de/user/installation.rst
Merge pull request #2861 from wallabag/2.3-droping-5.5
[github/wallabag/wallabag.git] / docs / de / user / installation.rst
1 Installation von wallabag
2 =========================
3
4 Voraussetzungen
5 ---------------
6
7 wallabag ist kompatibel mit **PHP >= 5.6**, inkl. PHP 7.
8
9 .. note::
10
11 To install wallabag easily, we create a ``Makefile``, so you need to have the ``make`` tool.
12
13 wallabag nutzt eine große Anzahl an Bibliotheken, um zu funktionieren. Diese Bibliotheken müssen mit einem Tool namens Composer installiert werden. Du musst es installieren sofern du es bisher noch nicht gemacht hast.
14
15 Composer installieren:
16
17 ::
18
19 curl -s https://getcomposer.org/installer | php
20
21 Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
22
23 Du benötigst die folgenden Extensions damit wallabag funktioniert. Einige von diesen sind vielleicht schon in deiner Version von PHP aktiviert, somit musst du eventuell
24 nicht alle folgenden Pakete installieren.
25
26 - php-session
27 - php-ctype
28 - php-dom
29 - php-hash
30 - php-simplexml
31 - php-json
32 - php-gd
33 - php-mbstring
34 - php-xml
35 - php-tidy
36 - php-iconv
37 - php-curl
38 - php-gettext
39 - php-tokenizer
40 - php-bcmath
41
42 wallabag nutzt PDO, um sich mit der Datenbank zu verbinden, darum benötigst du eines der folgenden Komponenten:
43
44 - pdo_mysql
45 - pdo_sqlite
46 - pdo_pgsql
47
48 und dessen dazugehörigen Datenbankserver.
49
50 Installation
51 ------------
52
53 Auf einem dedizierten Webserver (empfohlener Weg)
54 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55
56 Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
57
58 ::
59
60 git clone https://github.com/wallabag/wallabag.git
61 cd wallabag && make install
62
63 Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
64
65 ::
66
67 make run
68
69 und wallabag unter http://deineserverip:8000 erreichen.
70
71 .. tip::
72
73 Um Parameter mit Umgebungsvariable zu definieren, musst du die Variable mit dem ``SYMFONY__`` Präfix setzen. Zum Beispiel ``SYMFONY__DATABASE_DRIVER``. Du kannst einen Blick die `Symfony Dokumentation <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ werfen.
74
75 Auf einem geteilten Webhosting
76 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77
78 Wir stellen ein Paket inkl. aller Abhängigkeiten bereit.
79 Die Standardkonfiguration nutzt SQLite für die Datenbank. Wenn du diese Einstellung ändern willst, ändere bitte ``app/config/parameters.yml``.
80
81 Wir haben bereits einen Nutzer erstellt: Login und Passwort sind ``wallabag``.
82
83 .. caution:: Mit diesem Paket überprüft wallabag nicht die von der Applikation gebrauchten Exentions (diese Tests werden während ``composer install`` durchgeführt wenn du einen dedizierten Webserver hast, siehe oben).
84
85 Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacken:
86
87 .. code-block:: bash
88
89 wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
90
91 Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
92
93 Jetzt lies die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
94 Wenn du die Datenbankkonfiguration eingestellt hast, MySQL oder PostgreSQL zu nutzen, musst du einen Nutzer über das folgende Kommando erstellen ``php bin/console wallabag:install --env=prod``.
95
96 Installation mit Docker
97 ~~~~~~~~~~~~~~~~~~~~~~~
98
99 Wir stellen ein Docker Image zu Verfügung, um wallabag einfach zu installieren. Schaue in unser Repository in unserem `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__, um mehr Informationen zu erhalten.
100
101 Kommando, um den Container zu starten
102 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
103
104 .. code-block:: bash
105
106 docker pull wallabag/wallabag
107
108 Virtualhosts
109 ------------
110
111 Konfiguration von Apache
112 ~~~~~~~~~~~~~~~~~~~~~~~~
113
114 Vergiss nicht, die *rewrite* mod von Apache zu aktivieren.
115
116 .. code-block:: bash
117
118 a2enmod rewrite && systemctl reload apache2
119
120 Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren und du willst PHP als Apache Modul nutzen, dann ist hier ein vhost für wallabag:
121
122 ::
123
124 <VirtualHost *:80>
125 ServerName domain.tld
126 ServerAlias www.domain.tld
127
128 DocumentRoot /var/www/wallabag/web
129 <Directory /var/www/wallabag/web>
130 AllowOverride None
131 Order Allow,Deny
132 Allow from All
133
134 <IfModule mod_rewrite.c>
135 Options -MultiViews
136 RewriteEngine On
137 RewriteCond %{REQUEST_FILENAME} !-f
138 RewriteRule ^(.*)$ app.php [QSA,L]
139 </IfModule>
140 </Directory>
141
142 # uncomment the following lines if you install assets as symlinks
143 # or run into problems when compiling LESS/Sass/CoffeScript assets
144 # <Directory /var/www/wallabag>
145 # Options FollowSymlinks
146 # </Directory>
147
148 # optionally disable the RewriteEngine for the asset directories
149 # which will allow apache to simply reply with a 404 when files are
150 # not found instead of passing the request into the full symfony stack
151 <Directory /var/www/wallabag/web/bundles>
152 <IfModule mod_rewrite.c>
153 RewriteEngine Off
154 </IfModule>
155 </Directory>
156 ErrorLog /var/log/apache2/wallabag_error.log
157 CustomLog /var/log/apache2/wallabag_access.log combined
158 </VirtualHost>
159
160 Nach dem du Apache neugeladen oder neugestartet hast, solltest du nun wallabag unter http://domain.tld erreichen.
161
162 Konfiguration von Nginx
163 ~~~~~~~~~~~~~~~~~~~~~~~
164
165 Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag:
166
167 ::
168
169 server {
170 server_name domain.tld www.domain.tld;
171 root /var/www/wallabag/web;
172
173 location / {
174 # try to serve file directly, fallback to app.php
175 try_files $uri /app.php$is_args$args;
176 }
177 location ~ ^/app\.php(/|$) {
178 fastcgi_pass unix:/var/run/php5-fpm.sock;
179 fastcgi_split_path_info ^(.+\.php)(/.*)$;
180 include fastcgi_params;
181 # When you are using symlinks to link the document root to the
182 # current version of your application, you should pass the real
183 # application path instead of the path to the symlink to PHP
184 # FPM.
185 # Otherwise, PHP's OPcache may not properly detect changes to
186 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
187 # for more information).
188 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
189 fastcgi_param DOCUMENT_ROOT $realpath_root;
190 # Prevents URIs that include the front controller. This will 404:
191 # http://domain.tld/app.php/some-path
192 # Remove the internal directive to allow URIs like this
193 internal;
194 }
195
196 # return 404 for all other php files not matching the front controller
197 # this prevents access to other php files you don't want to be accessible.
198 location ~ \.php$ {
199 return 404;
200 }
201
202 error_log /var/log/nginx/wallabag_error.log;
203 access_log /var/log/nginx/wallabag_access.log;
204 }
205
206 Nach dem Neuladen oder Neustarten von nginx solltest du nun wallabag unter http://domain.tld erreichen.
207
208 .. tip::
209
210 Wenn du eine große Datei in wallabag importieren willst, solltest du diese Zeile zu deiner nginx Konfiguration hinzufügen ``client_max_body_size XM; # allows file uploads up to X megabytes``.
211
212 Konfiguration von lighttpd
213 ~~~~~~~~~~~~~~~~~~~~~~~~~~
214
215 Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag (bearbeite deine ``lighttpd.conf`` und füge die Konfiguration dort ein):
216
217 ::
218
219 server.modules = (
220 "mod_fastcgi",
221 "mod_access",
222 "mod_alias",
223 "mod_compress",
224 "mod_redirect",
225 "mod_rewrite",
226 )
227 server.document-root = "/var/www/wallabag/web"
228 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
229 server.errorlog = "/var/log/lighttpd/error.log"
230 server.pid-file = "/var/run/lighttpd.pid"
231 server.username = "www-data"
232 server.groupname = "www-data"
233 server.port = 80
234 server.follow-symlink = "enable"
235 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
236 url.access-deny = ( "~", ".inc" )
237 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
238 compress.cache-dir = "/var/cache/lighttpd/compress/"
239 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
240 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
241 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
242 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
243 dir-listing.activate = "disable"
244
245 url.rewrite-if-not-file = (
246 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
247 "^/([^?]*)" => "/app.php?=$1",
248 )
249
250 Rechte, um das Projektverzeichnis zu betreten
251 ---------------------------------------------
252
253 Testumgebung
254 ~~~~~~~~~~~~
255
256 Wenn wir nur wallabag testen wollen, führen wir nur das Kommando ``php bin/console server:run --env=prod`` aus, um unsere wallabag Instanz zu starten und alles wird geschmeidig laufen, weil der Nutzer, der das Projekt gestartet hat, den aktuellen Ordner ohne Probleme betreten kann.
257
258 Produktionsumgebung
259 ~~~~~~~~~~~~~~~~~~~
260
261 Sobald wir Apache oder Nginx nutzen, um unsere wallabag Instanz zu erreichen, und nicht das Kommando ``php bin/console server:run --env=prod`` nutzen, sollten wir dafür sorgen, die Rechte vernünftig zu vergeben, um die Ordner des Projektes zu schützen.
262
263 Um dies zu machen, muss der Ordner, bekannt als ``DocumentRoot`` (bei Apache) oder ``root`` (bei Nginx), von dem Apache-/Nginx-Nutzer zugänglich sein. Sein Name ist meist ``www-data``, ``apache`` oder ``nobody`` (abhängig vom genutzten Linuxsystem).
264
265 Der Ordner ``/var/www/wallabag/web`` musst dem letztgenannten zugänglich sein. Aber dies könnte nicht genug sein, wenn wir nur auf diesen Ordner achten, weil wir eine leere Seite sehen könnten oder einen Fehler 500, wenn wir die Homepage des Projekt öffnen.
266
267 Dies kommt daher, dass wir die gleichen Rechte dem Ordner ``/var/www/wallabag/var`` geben müssen, so wie wir es für den Ordner ``/var/www/wallabag/web`` gemacht haben. Somit beheben wir das Problem mit dem folgenden Kommando:
268
269 .. code-block:: bash
270
271 chown -R www-data:www-data /var/www/wallabag/var
272
273 Es muss analog für die folgenden Ordner ausgeführt werden
274
275 * /var/www/wallabag/bin/
276 * /var/www/wallabag/app/config/
277 * /var/www/wallabag/vendor/
278 * /var/www/wallabag/data/
279
280 durch Eingabe der Kommandos
281
282 .. code-block:: bash
283
284 chown -R www-data:www-data /var/www/wallabag/bin
285 chown -R www-data:www-data /var/www/wallabag/app/config
286 chown -R www-data:www-data /var/www/wallabag/vendor
287 chown -R www-data:www-data /var/www/wallabag/data/
288
289 ansonsten wirst du früher oder später folgenden Fehlermeldung sehen:
290
291 .. code-block:: bash
292
293 Unable to write to the "bin" directory.
294 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
295 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
296
297 Zusätzliche Regeln für SELinux
298 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
299
300 Wenn SELinux in deinem System aktiviert ist, wirst du zusätzliche Kontexte konfigurieren müssen damit wallabag ordentlich funktioniert. Um zu testen, ob SELinux aktiviert ist, führe einfach folgendes aus:
301
302 ``getenforce``
303
304 Dies wird ``Enforcing`` ausgeben, wenn SELinux aktiviert ist. Einen neuen Kontext zu erstellen, erfordert die folgende Syntax:
305
306 ``semanage fcontext -a -t <context type> <full path>``
307
308 Zum Beispiel:
309
310 ``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
311
312 Dies wird rekursiv den httpd_sys_content_t Kontext auf das wallabag Verzeichnis und alle darunterliegenden Dateien und Ordner anwenden. Die folgenden Regeln werden gebraucht:
313
314 +-----------------------------------+----------------------------+
315 | Vollständiger Pfad | Kontext |
316 +===================================+============================+
317 | /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
318 +-----------------------------------+----------------------------+
319 | /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
320 +-----------------------------------+----------------------------+
321 | /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
322 +-----------------------------------+----------------------------+
323 | /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
324 +-----------------------------------+----------------------------+
325
326 Nach dem diese Kontexte erstellt wurden, tippe das folgende, um deine Regeln anzuwenden:
327
328 ``restorecon -R -v /var/www/wallabag``
329
330 Du kannst deine Kontexte in einem Verzeichnis überprüfen, indem du ``ls -lZ`` tippst und alle deine aktuellen Regeln mit ``semanage fcontext -l -C`` überprüfst.
331
332 Wenn du das vorkonfigurierte latest-v2-package installierst, dann ist eine weitere Regel während der Installation nötig:
333
334 ``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
335
336 Nachdem du erfolgreich dein wallabag erreichst und die Installation fertiggestellt hast, kann dieser Kontext entfernt werden:
337
338 ::
339
340 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
341 retorecon -R -v /var/www/wallabag/var