]> git.immae.eu Git - github/wallabag/wallabag.git/blame_incremental - docs/de/user/installation.rst
Merge pull request #2412 from wallabag/fix-postgres-migration
[github/wallabag/wallabag.git] / docs / de / user / installation.rst
... / ...
CommitLineData
1Installation von wallabag
2=========================
3
4Voraussetzungen
5---------------
6
7wallabag ist kompatibel mit PHP >= 5.5, 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
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
19 curl -s http://getcomposer.org/installer | php
20
21Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
22
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
40- php-bcmath
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
56Um 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
63Um 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
69und 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
75Auf einem geteilten Webhosting
76~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77
78Wir stellen ein Paket inkl. aller Abhängigkeiten bereit.
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
89 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
90
91Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
92
93Jetzt lies die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
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
97~~~~~~~~~~~~~~~~~~~~~~~
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
102^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
103
104.. code-block:: bash
105
106 docker pull wallabag/wallabag
107
108Virtualhosts
109------------
110
111Konfiguration von Apache
112~~~~~~~~~~~~~~~~~~~~~~~~
113
114Angenommen 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:
115
116::
117
118 <VirtualHost *:80>
119 ServerName domain.tld
120 ServerAlias www.domain.tld
121
122 DocumentRoot /var/www/wallabag/web
123 <Directory /var/www/wallabag/web>
124 AllowOverride None
125 Order Allow,Deny
126 Allow from All
127
128 <IfModule mod_rewrite.c>
129 Options -MultiViews
130 RewriteEngine On
131 RewriteCond %{REQUEST_FILENAME} !-f
132 RewriteRule ^(.*)$ app.php [QSA,L]
133 </IfModule>
134 </Directory>
135
136 # uncomment the following lines if you install assets as symlinks
137 # or run into problems when compiling LESS/Sass/CoffeScript assets
138 # <Directory /var/www/wallabag>
139 # Options FollowSymlinks
140 # </Directory>
141
142 # optionally disable the RewriteEngine for the asset directories
143 # which will allow apache to simply reply with a 404 when files are
144 # not found instead of passing the request into the full symfony stack
145 <Directory /var/www/wallabag/web/bundles>
146 <IfModule mod_rewrite.c>
147 RewriteEngine Off
148 </IfModule>
149 </Directory>
150 ErrorLog /var/log/apache2/wallabag_error.log
151 CustomLog /var/log/apache2/wallabag_access.log combined
152 </VirtualHost>
153
154Nach dem du Apache neugeladen oder neugestartet hast, solltest du nun wallabag unter http://domain.tld erreichen.
155
156Konfiguration von Nginx
157~~~~~~~~~~~~~~~~~~~~~~~
158
159Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag:
160
161::
162
163 server {
164 server_name domain.tld www.domain.tld;
165 root /var/www/wallabag/web;
166
167 location / {
168 # try to serve file directly, fallback to app.php
169 try_files $uri /app.php$is_args$args;
170 }
171 location ~ ^/app\.php(/|$) {
172 fastcgi_pass unix:/var/run/php5-fpm.sock;
173 fastcgi_split_path_info ^(.+\.php)(/.*)$;
174 include fastcgi_params;
175 # When you are using symlinks to link the document root to the
176 # current version of your application, you should pass the real
177 # application path instead of the path to the symlink to PHP
178 # FPM.
179 # Otherwise, PHP's OPcache may not properly detect changes to
180 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
181 # for more information).
182 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
183 fastcgi_param DOCUMENT_ROOT $realpath_root;
184 # Prevents URIs that include the front controller. This will 404:
185 # http://domain.tld/app.php/some-path
186 # Remove the internal directive to allow URIs like this
187 internal;
188 }
189
190 error_log /var/log/nginx/wallabag_error.log;
191 access_log /var/log/nginx/wallabag_access.log;
192 }
193
194Nach dem Neuladen oder Neustarten von nginx solltest du nun wallabag unter http://domain.tld erreichen.
195
196.. tip::
197
198 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``.
199
200Konfiguration von lighttpd
201~~~~~~~~~~~~~~~~~~~~~~~~~~
202
203Angenommen 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):
204
205::
206
207 server.modules = (
208 "mod_fastcgi",
209 "mod_access",
210 "mod_alias",
211 "mod_compress",
212 "mod_redirect",
213 "mod_rewrite",
214 )
215 server.document-root = "/var/www/wallabag/web"
216 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
217 server.errorlog = "/var/log/lighttpd/error.log"
218 server.pid-file = "/var/run/lighttpd.pid"
219 server.username = "www-data"
220 server.groupname = "www-data"
221 server.port = 80
222 server.follow-symlink = "enable"
223 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
224 url.access-deny = ( "~", ".inc" )
225 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
226 compress.cache-dir = "/var/cache/lighttpd/compress/"
227 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
228 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
229 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
230 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
231 dir-listing.activate = "disable"
232
233 url.rewrite-if-not-file = (
234 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
235 "^/([^?]*)" => "/app.php?=$1",
236 )
237
238Rechte, um das Projektverzeichnis zu betreten
239---------------------------------------------
240
241Testumgebung
242~~~~~~~~~~~~
243
244Wenn 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.
245
246Produktionsumgebung
247~~~~~~~~~~~~~~~~~~~
248
249Sobald 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.
250
251Um 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).
252
253Der 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.
254
255Dies 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:
256
257.. code-block:: bash
258
259 chown -R www-data:www-data /var/www/wallabag/var
260
261Es muss analog für die folgenden Ordner ausgeführt werden
262
263* /var/www/wallabag/bin/
264* /var/www/wallabag/app/config/
265* /var/www/wallabag/vendor/
266* /var/www/wallabag/data/
267
268durch Eingabe der Kommandos
269
270.. code-block:: bash
271
272 chown -R www-data:www-data /var/www/wallabag/bin
273 chown -R www-data:www-data /var/www/wallabag/app/config
274 chown -R www-data:www-data /var/www/wallabag/vendor
275 chown -R www-data:www-data /var/www/wallabag/data/
276
277ansonsten wirst du früher oder später folgenden Fehlermeldung sehen:
278
279.. code-block:: bash
280
281 Unable to write to the "bin" directory.
282 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
283 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
284
285Zusätzliche Regeln für SELinux
286~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
287
288Wenn 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:
289
290``getenforce``
291
292Dies wird ``Enforcing`` ausgeben, wenn SELinux aktiviert ist. Einen neuen Kontext zu erstellen, erfordert die folgende Syntax:
293
294``semanage fcontext -a -t <context type> <full path>``
295
296Zum Beispiel:
297
298``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
299
300Dies wird rekursiv den httpd_sys_content_t Kontext auf das wallabag Verzeichnis und alle darunterliegenden Dateien und Ordner anwenden. Die folgenden Regeln werden gebraucht:
301
302+-----------------------------------+----------------------------+
303| Vollständiger Pfad | Kontext |
304+===================================+============================+
305| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
306+-----------------------------------+----------------------------+
307| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
308+-----------------------------------+----------------------------+
309| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
310+-----------------------------------+----------------------------+
311| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
312+-----------------------------------+----------------------------+
313
314Nach dem diese Kontexte erstellt wurden, tippe das folgende, um deine Regeln anzuwenden:
315
316``restorecon -R -v /var/www/wallabag``
317
318Du 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.
319
320Wenn du das vorkonfigurierte latest-v2-package installierst, dann ist eine weitere Regel während der Installation nötig:
321
322``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
323
324Nachdem du erfolgreich dein wallabag erreichst und die Installation fertiggestellt hast, kann dieser Kontext entfernt werden:
325
326::
327
328 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
329 retorecon -R -v /var/www/wallabag/var