]> git.immae.eu Git - github/wallabag/wallabag.git/blame - docs/de/user/installation.rst
Fix tests
[github/wallabag/wallabag.git] / docs / de / user / installation.rst
CommitLineData
42948035
SF
1Installation von wallabag
2=========================
3
4Voraussetzungen
5---------------
6
de0ab52a 7wallabag ist kompatibel mit **PHP >= 5.6**, inkl. PHP 7.
42948035 8
84e3c36e 9.. note::
36ef9e27
NL
10
11 To install wallabag easily, we create a ``Makefile``, so you need to have the ``make`` tool.
84e3c36e 12
7eff4736
NL
13wallabag 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
15Composer installieren:
16
17::
18
7c05d591 19 curl -s https://getcomposer.org/installer | php
7eff4736
NL
20
21Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
22
42948035
SF
23Du benötigst die folgenden Extensions damit wallabag funktioniert. Einige von diesen sind vielleicht schon in deiner Version von PHP aktiviert, somit musst du eventuell
24nicht 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
f7265b4b 40- php-bcmath
42948035
SF
41
42wallabag 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
48und dessen dazugehörigen Datenbankserver.
49
50Installation
51------------
52
53Auf einem dedizierten Webserver (empfohlener Weg)
54~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55
42948035
SF
56Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
57
58::
59
60 git clone https://github.com/wallabag/wallabag.git
7c122534 61 cd wallabag && make install
42948035
SF
62
63Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
64
65::
66
7c122534 67 make run
42948035 68
53343815 69und wallabag unter http://deineserverip:8000 erreichen.
42948035
SF
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
75Auf einem geteilten Webhosting
76~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77
a26f91dc 78Wir stellen ein Paket inkl. aller Abhängigkeiten bereit.
42948035
SF
79Die Standardkonfiguration nutzt SQLite für die Datenbank. Wenn du diese Einstellung ändern willst, ändere bitte ``app/config/parameters.yml``.
80
81Wir 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
85Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacken:
86
87.. code-block:: bash
88
7c05d591 89 wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
42948035 90
5112b355 91Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
94d1dae4 92
5112b355 93Jetzt lies die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
42948035
SF
94Wenn 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
96Installation mit Docker
53343815 97~~~~~~~~~~~~~~~~~~~~~~~
42948035
SF
98
99Wir 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
101Kommando, um den Container zu starten
7eff4736 102^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42948035
SF
103
104.. code-block:: bash
105
106 docker pull wallabag/wallabag
107
106e0160 108Cloudron Installation
3ea184ff
NL
109~~~~~~~~~~~~~~~~~~~~~~~~
110
106e0160
JZ
111Cloudron bietet einfache Webapp Installation auf deinem Server, mit Fokus auf System Administrator Automatisierung und Updates.
112Ein Wallabag Paket ist direkt zur Installation durch den Cloudron Store verfügbar.
3ea184ff 113
106e0160 114`Installiere wallabag auf deinem Cloudron <https://cloudron.io/store/org.wallabag.cloudronapp.html>`__
3ea184ff 115
42948035
SF
116Virtualhosts
117------------
118
119Konfiguration von Apache
7eff4736 120~~~~~~~~~~~~~~~~~~~~~~~~
42948035 121
3529ce35
NL
122Vergiss nicht, die *rewrite* mod von Apache zu aktivieren.
123
124.. code-block:: bash
125
126 a2enmod rewrite && systemctl reload apache2
127
42948035
SF
128Angenommen 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:
129
130::
131
132 <VirtualHost *:80>
133 ServerName domain.tld
134 ServerAlias www.domain.tld
135
136 DocumentRoot /var/www/wallabag/web
137 <Directory /var/www/wallabag/web>
138 AllowOverride None
139 Order Allow,Deny
140 Allow from All
141
142 <IfModule mod_rewrite.c>
143 Options -MultiViews
144 RewriteEngine On
145 RewriteCond %{REQUEST_FILENAME} !-f
146 RewriteRule ^(.*)$ app.php [QSA,L]
147 </IfModule>
148 </Directory>
149
150 # uncomment the following lines if you install assets as symlinks
151 # or run into problems when compiling LESS/Sass/CoffeScript assets
152 # <Directory /var/www/wallabag>
153 # Options FollowSymlinks
154 # </Directory>
155
156 # optionally disable the RewriteEngine for the asset directories
157 # which will allow apache to simply reply with a 404 when files are
158 # not found instead of passing the request into the full symfony stack
159 <Directory /var/www/wallabag/web/bundles>
160 <IfModule mod_rewrite.c>
161 RewriteEngine Off
162 </IfModule>
163 </Directory>
164 ErrorLog /var/log/apache2/wallabag_error.log
165 CustomLog /var/log/apache2/wallabag_access.log combined
166 </VirtualHost>
167
168Nach dem du Apache neugeladen oder neugestartet hast, solltest du nun wallabag unter http://domain.tld erreichen.
169
170Konfiguration von Nginx
171~~~~~~~~~~~~~~~~~~~~~~~
172
173Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag:
174
175::
176
177 server {
178 server_name domain.tld www.domain.tld;
179 root /var/www/wallabag/web;
180
181 location / {
182 # try to serve file directly, fallback to app.php
183 try_files $uri /app.php$is_args$args;
184 }
185 location ~ ^/app\.php(/|$) {
186 fastcgi_pass unix:/var/run/php5-fpm.sock;
187 fastcgi_split_path_info ^(.+\.php)(/.*)$;
188 include fastcgi_params;
189 # When you are using symlinks to link the document root to the
190 # current version of your application, you should pass the real
191 # application path instead of the path to the symlink to PHP
192 # FPM.
193 # Otherwise, PHP's OPcache may not properly detect changes to
194 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
195 # for more information).
196 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
197 fastcgi_param DOCUMENT_ROOT $realpath_root;
198 # Prevents URIs that include the front controller. This will 404:
199 # http://domain.tld/app.php/some-path
200 # Remove the internal directive to allow URIs like this
201 internal;
202 }
203
ccad5d76
OD
204 # return 404 for all other php files not matching the front controller
205 # this prevents access to other php files you don't want to be accessible.
206 location ~ \.php$ {
207 return 404;
208 }
209
42948035
SF
210 error_log /var/log/nginx/wallabag_error.log;
211 access_log /var/log/nginx/wallabag_access.log;
212 }
213
53343815 214Nach dem Neuladen oder Neustarten von nginx solltest du nun wallabag unter http://domain.tld erreichen.
42948035
SF
215
216.. tip::
217
42948035
SF
218 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``.
219
220Konfiguration von lighttpd
7eff4736 221~~~~~~~~~~~~~~~~~~~~~~~~~~
42948035
SF
222
223Angenommen 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):
224
225::
226
227 server.modules = (
228 "mod_fastcgi",
229 "mod_access",
230 "mod_alias",
231 "mod_compress",
232 "mod_redirect",
233 "mod_rewrite",
234 )
235 server.document-root = "/var/www/wallabag/web"
236 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
237 server.errorlog = "/var/log/lighttpd/error.log"
238 server.pid-file = "/var/run/lighttpd.pid"
239 server.username = "www-data"
240 server.groupname = "www-data"
241 server.port = 80
242 server.follow-symlink = "enable"
243 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
244 url.access-deny = ( "~", ".inc" )
245 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
246 compress.cache-dir = "/var/cache/lighttpd/compress/"
247 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
248 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
249 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
250 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
251 dir-listing.activate = "disable"
252
253 url.rewrite-if-not-file = (
254 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
255 "^/([^?]*)" => "/app.php?=$1",
256 )
257
258Rechte, um das Projektverzeichnis zu betreten
259---------------------------------------------
260
261Testumgebung
262~~~~~~~~~~~~
263
264Wenn 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.
265
266Produktionsumgebung
267~~~~~~~~~~~~~~~~~~~
268
269Sobald 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.
270
271Um 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).
272
273Der 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.
274
275Dies 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:
276
277.. code-block:: bash
278
279 chown -R www-data:www-data /var/www/wallabag/var
280
281Es muss analog für die folgenden Ordner ausgeführt werden
282
283* /var/www/wallabag/bin/
284* /var/www/wallabag/app/config/
285* /var/www/wallabag/vendor/
286* /var/www/wallabag/data/
287
288durch Eingabe der Kommandos
289
290.. code-block:: bash
291
292 chown -R www-data:www-data /var/www/wallabag/bin
293 chown -R www-data:www-data /var/www/wallabag/app/config
294 chown -R www-data:www-data /var/www/wallabag/vendor
295 chown -R www-data:www-data /var/www/wallabag/data/
296
297ansonsten wirst du früher oder später folgenden Fehlermeldung sehen:
298
299.. code-block:: bash
300
301 Unable to write to the "bin" directory.
302 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
303 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
304
305Zusätzliche Regeln für SELinux
306~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
307
308Wenn 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:
309
310``getenforce``
311
312Dies wird ``Enforcing`` ausgeben, wenn SELinux aktiviert ist. Einen neuen Kontext zu erstellen, erfordert die folgende Syntax:
313
314``semanage fcontext -a -t <context type> <full path>``
315
316Zum Beispiel:
317
318``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
319
320Dies wird rekursiv den httpd_sys_content_t Kontext auf das wallabag Verzeichnis und alle darunterliegenden Dateien und Ordner anwenden. Die folgenden Regeln werden gebraucht:
321
322+-----------------------------------+----------------------------+
323| Vollständiger Pfad | Kontext |
324+===================================+============================+
325| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
326+-----------------------------------+----------------------------+
327| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
328+-----------------------------------+----------------------------+
329| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
330+-----------------------------------+----------------------------+
331| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
332+-----------------------------------+----------------------------+
333
334Nach dem diese Kontexte erstellt wurden, tippe das folgende, um deine Regeln anzuwenden:
335
336``restorecon -R -v /var/www/wallabag``
337
338Du 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.
339
340Wenn du das vorkonfigurierte latest-v2-package installierst, dann ist eine weitere Regel während der Installation nötig:
341
342``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
343
344Nachdem du erfolgreich dein wallabag erreichst und die Installation fertiggestellt hast, kann dieser Kontext entfernt werden:
345
346::
347
348 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
349 retorecon -R -v /var/www/wallabag/var