]> git.immae.eu Git - github/wallabag/wallabag.git/blame - docs/de/user/installation.rst
Update documentation
[github/wallabag/wallabag.git] / docs / de / user / installation.rst
CommitLineData
42948035
SF
1Installation von wallabag
2=========================
3
4Voraussetzungen
5---------------
6
7wallabag ist kompatibel mit PHP >= 5.5, inkl. PHP 7.
8
84e3c36e
NL
9.. note::
10Pour installer wallabag facilement, nous avons créé un ``Makefile``, vous avez donc besoin d'avoir installé l'outil ``make``.
11
7eff4736
NL
12wallabag 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.
13
14Composer installieren:
15
16::
17
18 curl -s http://getcomposer.org/installer | php
19
20Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
21
42948035
SF
22Du benötigst die folgenden Extensions damit wallabag funktioniert. Einige von diesen sind vielleicht schon in deiner Version von PHP aktiviert, somit musst du eventuell
23nicht alle folgenden Pakete installieren.
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
f7265b4b 39- php-bcmath
42948035
SF
40
41wallabag nutzt PDO, um sich mit der Datenbank zu verbinden, darum benötigst du eines der folgenden Komponenten:
42
43- pdo_mysql
44- pdo_sqlite
45- pdo_pgsql
46
47und dessen dazugehörigen Datenbankserver.
48
49Installation
50------------
51
52Auf einem dedizierten Webserver (empfohlener Weg)
53~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
42948035
SF
55Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
56
57::
58
59 git clone https://github.com/wallabag/wallabag.git
7c122534 60 cd wallabag && make install
42948035
SF
61
62Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
63
64::
65
7c122534 66 make run
42948035 67
53343815 68und wallabag unter http://deineserverip:8000 erreichen.
42948035
SF
69
70.. tip::
71
72 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.
73
74Auf einem geteilten Webhosting
75~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
76
a26f91dc 77Wir stellen ein Paket inkl. aller Abhängigkeiten bereit.
42948035
SF
78Die Standardkonfiguration nutzt SQLite für die Datenbank. Wenn du diese Einstellung ändern willst, ändere bitte ``app/config/parameters.yml``.
79
80Wir haben bereits einen Nutzer erstellt: Login und Passwort sind ``wallabag``.
81
82.. 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).
83
84Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacken:
85
86.. code-block:: bash
87
88 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
89
5112b355 90Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
94d1dae4 91
5112b355 92Jetzt lies die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
42948035
SF
93Wenn 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``.
94
95Installation mit Docker
53343815 96~~~~~~~~~~~~~~~~~~~~~~~
42948035
SF
97
98Wir 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.
99
100Kommando, um den Container zu starten
7eff4736 101^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42948035
SF
102
103.. code-block:: bash
104
105 docker pull wallabag/wallabag
106
107Virtualhosts
108------------
109
110Konfiguration von Apache
7eff4736 111~~~~~~~~~~~~~~~~~~~~~~~~
42948035
SF
112
113Angenommen 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:
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
153Nach dem du Apache neugeladen oder neugestartet hast, solltest du nun wallabag unter http://domain.tld erreichen.
154
155Konfiguration von Nginx
156~~~~~~~~~~~~~~~~~~~~~~~
157
158Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag:
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 error_log /var/log/nginx/wallabag_error.log;
190 access_log /var/log/nginx/wallabag_access.log;
191 }
192
53343815 193Nach dem Neuladen oder Neustarten von nginx solltest du nun wallabag unter http://domain.tld erreichen.
42948035
SF
194
195.. tip::
196
42948035
SF
197 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``.
198
199Konfiguration von lighttpd
7eff4736 200~~~~~~~~~~~~~~~~~~~~~~~~~~
42948035
SF
201
202Angenommen 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):
203
204::
205
206 server.modules = (
207 "mod_fastcgi",
208 "mod_access",
209 "mod_alias",
210 "mod_compress",
211 "mod_redirect",
212 "mod_rewrite",
213 )
214 server.document-root = "/var/www/wallabag/web"
215 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
216 server.errorlog = "/var/log/lighttpd/error.log"
217 server.pid-file = "/var/run/lighttpd.pid"
218 server.username = "www-data"
219 server.groupname = "www-data"
220 server.port = 80
221 server.follow-symlink = "enable"
222 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
223 url.access-deny = ( "~", ".inc" )
224 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
225 compress.cache-dir = "/var/cache/lighttpd/compress/"
226 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
227 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
228 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
229 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
230 dir-listing.activate = "disable"
231
232 url.rewrite-if-not-file = (
233 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
234 "^/([^?]*)" => "/app.php?=$1",
235 )
236
237Rechte, um das Projektverzeichnis zu betreten
238---------------------------------------------
239
240Testumgebung
241~~~~~~~~~~~~
242
243Wenn 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.
244
245Produktionsumgebung
246~~~~~~~~~~~~~~~~~~~
247
248Sobald 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.
249
250Um 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).
251
252Der 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.
253
254Dies 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:
255
256.. code-block:: bash
257
258 chown -R www-data:www-data /var/www/wallabag/var
259
260Es muss analog für die folgenden Ordner ausgeführt werden
261
262* /var/www/wallabag/bin/
263* /var/www/wallabag/app/config/
264* /var/www/wallabag/vendor/
265* /var/www/wallabag/data/
266
267durch Eingabe der Kommandos
268
269.. code-block:: bash
270
271 chown -R www-data:www-data /var/www/wallabag/bin
272 chown -R www-data:www-data /var/www/wallabag/app/config
273 chown -R www-data:www-data /var/www/wallabag/vendor
274 chown -R www-data:www-data /var/www/wallabag/data/
275
276ansonsten wirst du früher oder später folgenden Fehlermeldung sehen:
277
278.. code-block:: bash
279
280 Unable to write to the "bin" directory.
281 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
282 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
283
284Zusätzliche Regeln für SELinux
285~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
286
287Wenn 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:
288
289``getenforce``
290
291Dies wird ``Enforcing`` ausgeben, wenn SELinux aktiviert ist. Einen neuen Kontext zu erstellen, erfordert die folgende Syntax:
292
293``semanage fcontext -a -t <context type> <full path>``
294
295Zum Beispiel:
296
297``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
298
299Dies wird rekursiv den httpd_sys_content_t Kontext auf das wallabag Verzeichnis und alle darunterliegenden Dateien und Ordner anwenden. Die folgenden Regeln werden gebraucht:
300
301+-----------------------------------+----------------------------+
302| Vollständiger Pfad | Kontext |
303+===================================+============================+
304| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
305+-----------------------------------+----------------------------+
306| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
307+-----------------------------------+----------------------------+
308| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
309+-----------------------------------+----------------------------+
310| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
311+-----------------------------------+----------------------------+
312
313Nach dem diese Kontexte erstellt wurden, tippe das folgende, um deine Regeln anzuwenden:
314
315``restorecon -R -v /var/www/wallabag``
316
317Du 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.
318
319Wenn du das vorkonfigurierte latest-v2-package installierst, dann ist eine weitere Regel während der Installation nötig:
320
321``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
322
323Nachdem du erfolgreich dein wallabag erreichst und die Installation fertiggestellt hast, kann dieser Kontext entfernt werden:
324
325::
326
327 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
328 retorecon -R -v /var/www/wallabag/var