]> git.immae.eu Git - github/wallabag/wallabag.git/blob - docs/de/user/installation.rst
Prepare release 2.0.6
[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.5, inkl. PHP 7.
8
9 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
10 nicht alle folgenden Pakete installieren.
11
12 - php-session
13 - php-ctype
14 - php-dom
15 - php-hash
16 - php-simplexml
17 - php-json
18 - php-gd
19 - php-mbstring
20 - php-xml
21 - php-tidy
22 - php-iconv
23 - php-curl
24 - php-gettext
25 - php-tokenizer
26
27 wallabag nutzt PDO, um sich mit der Datenbank zu verbinden, darum benötigst du eines der folgenden Komponenten:
28
29 - pdo_mysql
30 - pdo_sqlite
31 - pdo_pgsql
32
33 und dessen dazugehörigen Datenbankserver.
34
35 Installation
36 ------------
37
38 Auf einem dedizierten Webserver (empfohlener Weg)
39 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40
41 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.
42
43 Composer installieren:
44
45 ::
46
47 curl -s http://getcomposer.org/installer | php
48
49 Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden:
50
51 Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
52
53 ::
54
55 git clone https://github.com/wallabag/wallabag.git
56 cd wallabag
57 git checkout 2.0.6
58 SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
59 php bin/console wallabag:install --env=prod
60
61 Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
62
63 ::
64
65 php bin/console server:run --env=prod
66
67 Und wallabag unter http://deineserverip:8000 erreichen
68
69 .. tip::
70
71 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.
72
73 Auf einem geteilten Webhosting
74 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75
76 Wir stellen ein Paket inkl. aller Abhängigkeiten bereit.
77 Die Standardkonfiguration nutzt SQLite für die Datenbank. Wenn du diese Einstellung ändern willst, ändere bitte ``app/config/parameters.yml``.
78
79 Wir haben bereits einen Nutzer erstellt: Login und Passwort sind ``wallabag``.
80
81 .. 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).
82
83 Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacken:
84
85 .. code-block:: bash
86
87 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
88
89 Jetzt lese die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
90 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``.
91
92 Installation mit Docker
93 ------------------------
94
95 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.
96
97 Kommando, um den Container zu starten
98 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
99
100 .. code-block:: bash
101
102 docker pull wallabag/wallabag
103
104 Virtualhosts
105 ------------
106
107 Konfiguration von Apache
108 ~~~~~~~~~~~~~~~~~~~~~~~
109
110 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:
111
112 ::
113
114 <VirtualHost *:80>
115 ServerName domain.tld
116 ServerAlias www.domain.tld
117
118 DocumentRoot /var/www/wallabag/web
119 <Directory /var/www/wallabag/web>
120 AllowOverride None
121 Order Allow,Deny
122 Allow from All
123
124 <IfModule mod_rewrite.c>
125 Options -MultiViews
126 RewriteEngine On
127 RewriteCond %{REQUEST_FILENAME} !-f
128 RewriteRule ^(.*)$ app.php [QSA,L]
129 </IfModule>
130 </Directory>
131
132 # uncomment the following lines if you install assets as symlinks
133 # or run into problems when compiling LESS/Sass/CoffeScript assets
134 # <Directory /var/www/wallabag>
135 # Options FollowSymlinks
136 # </Directory>
137
138 # optionally disable the RewriteEngine for the asset directories
139 # which will allow apache to simply reply with a 404 when files are
140 # not found instead of passing the request into the full symfony stack
141 <Directory /var/www/wallabag/web/bundles>
142 <IfModule mod_rewrite.c>
143 RewriteEngine Off
144 </IfModule>
145 </Directory>
146 ErrorLog /var/log/apache2/wallabag_error.log
147 CustomLog /var/log/apache2/wallabag_access.log combined
148 </VirtualHost>
149
150 Nach dem du Apache neugeladen oder neugestartet hast, solltest du nun wallabag unter http://domain.tld erreichen.
151
152 Konfiguration von Nginx
153 ~~~~~~~~~~~~~~~~~~~~~~~
154
155 Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag:
156
157 ::
158
159 server {
160 server_name domain.tld www.domain.tld;
161 root /var/www/wallabag/web;
162
163 location / {
164 # try to serve file directly, fallback to app.php
165 try_files $uri /app.php$is_args$args;
166 }
167 location ~ ^/app\.php(/|$) {
168 fastcgi_pass unix:/var/run/php5-fpm.sock;
169 fastcgi_split_path_info ^(.+\.php)(/.*)$;
170 include fastcgi_params;
171 # When you are using symlinks to link the document root to the
172 # current version of your application, you should pass the real
173 # application path instead of the path to the symlink to PHP
174 # FPM.
175 # Otherwise, PHP's OPcache may not properly detect changes to
176 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
177 # for more information).
178 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
179 fastcgi_param DOCUMENT_ROOT $realpath_root;
180 # Prevents URIs that include the front controller. This will 404:
181 # http://domain.tld/app.php/some-path
182 # Remove the internal directive to allow URIs like this
183 internal;
184 }
185
186 error_log /var/log/nginx/wallabag_error.log;
187 access_log /var/log/nginx/wallabag_access.log;
188 }
189
190 Nach dem neuladen oder neustarten von nginx, solltest du nun wallabag unter http://domain.tld erreichen.
191
192 .. tip::
193
194 When you want to import large file into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
195 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``.
196
197 Konfiguration von lighttpd
198 ~~~~~~~~~~~~~~~~~~~~~~~~~
199
200 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):
201
202 ::
203
204 server.modules = (
205 "mod_fastcgi",
206 "mod_access",
207 "mod_alias",
208 "mod_compress",
209 "mod_redirect",
210 "mod_rewrite",
211 )
212 server.document-root = "/var/www/wallabag/web"
213 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
214 server.errorlog = "/var/log/lighttpd/error.log"
215 server.pid-file = "/var/run/lighttpd.pid"
216 server.username = "www-data"
217 server.groupname = "www-data"
218 server.port = 80
219 server.follow-symlink = "enable"
220 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
221 url.access-deny = ( "~", ".inc" )
222 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
223 compress.cache-dir = "/var/cache/lighttpd/compress/"
224 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
225 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
226 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
227 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
228 dir-listing.activate = "disable"
229
230 url.rewrite-if-not-file = (
231 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
232 "^/([^?]*)" => "/app.php?=$1",
233 )
234
235 Rechte, um das Projektverzeichnis zu betreten
236 ---------------------------------------------
237
238 Testumgebung
239 ~~~~~~~~~~~~
240
241 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.
242
243 Produktionsumgebung
244 ~~~~~~~~~~~~~~~~~~~
245
246 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.
247
248 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).
249
250 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.
251
252 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:
253
254 .. code-block:: bash
255
256 chown -R www-data:www-data /var/www/wallabag/var
257
258 Es muss analog für die folgenden Ordner ausgeführt werden
259
260 * /var/www/wallabag/bin/
261 * /var/www/wallabag/app/config/
262 * /var/www/wallabag/vendor/
263 * /var/www/wallabag/data/
264
265 durch Eingabe der Kommandos
266
267 .. code-block:: bash
268
269 chown -R www-data:www-data /var/www/wallabag/bin
270 chown -R www-data:www-data /var/www/wallabag/app/config
271 chown -R www-data:www-data /var/www/wallabag/vendor
272 chown -R www-data:www-data /var/www/wallabag/data/
273
274 ansonsten wirst du früher oder später folgenden Fehlermeldung sehen:
275
276 .. code-block:: bash
277
278 Unable to write to the "bin" directory.
279 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
280 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
281
282 Zusätzliche Regeln für SELinux
283 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
284
285 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:
286
287 ``getenforce``
288
289 Dies wird ``Enforcing`` ausgeben, wenn SELinux aktiviert ist. Einen neuen Kontext zu erstellen, erfordert die folgende Syntax:
290
291 ``semanage fcontext -a -t <context type> <full path>``
292
293 Zum Beispiel:
294
295 ``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
296
297 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:
298
299 +-----------------------------------+----------------------------+
300 | Vollständiger Pfad | Kontext |
301 +===================================+============================+
302 | /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
303 +-----------------------------------+----------------------------+
304 | /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
305 +-----------------------------------+----------------------------+
306 | /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
307 +-----------------------------------+----------------------------+
308 | /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
309 +-----------------------------------+----------------------------+
310
311 Nach dem diese Kontexte erstellt wurden, tippe das folgende, um deine Regeln anzuwenden:
312
313 ``restorecon -R -v /var/www/wallabag``
314
315 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.
316
317 Wenn du das vorkonfigurierte latest-v2-package installierst, dann ist eine weitere Regel während der Installation nötig:
318
319 ``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
320
321 Nachdem du erfolgreich dein wallabag erreichst und die Installation fertiggestellt hast, kann dieser Kontext entfernt werden:
322
323 ::
324
325 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
326 retorecon -R -v /var/www/wallabag/var