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