X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=docs%2Fen%2Fuser%2Finstallation.rst;h=3872ad3aa7ba194d7aeaaa008d4c2535dcd959d6;hb=e546a2d6eb3075b4c13f22cc0957bfc96b8e14d9;hp=11ad54fddad77dd232f4492accac19c705e21a37;hpb=6ab56c7b2c225b74b000e9ecedfe28aa0f8d1e18;p=github%2Fwallabag%2Fwallabag.git diff --git a/docs/en/user/installation.rst b/docs/en/user/installation.rst index 11ad54fd..3872ad3a 100644 --- a/docs/en/user/installation.rst +++ b/docs/en/user/installation.rst @@ -4,9 +4,9 @@ Install wallabag Requirements ------------ -wallabag is compatible with php >= 5.5, including php 7. +wallabag is compatible with PHP >= 5.5, including PHP 7. -You'll need the following extensions for wallabag to work. Some of these may already activated in your version of php, so you may not have to install all corresponding packages. +You'll need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages. - php-session - php-ctype @@ -25,15 +25,18 @@ You'll need the following extensions for wallabag to work. Some of these may alr wallabag uses PDO to connect to database, so you'll need one of: -- php-pdo_mysql -- php-pdo_sqlite -- php-pdo_pgsql +- pdo_mysql +- pdo_sqlite +- pdo_pgsql and it's corresponding database server. Installation ------------ +On a dedicated web server (recommended way) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + wallabag uses a big number of libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you don't already have. Install Composer: @@ -42,7 +45,7 @@ Install Composer: curl -s http://getcomposer.org/installer | php -You can find specific instructions here : __ https://getcomposer.org/doc/00-intro.md +You can find specific instructions `here `__: To install wallabag itself, you must run these two commands: @@ -50,11 +53,11 @@ To install wallabag itself, you must run these two commands: git clone https://github.com/wallabag/wallabag.git cd wallabag - git checkout 2.0.0-beta.2 + git checkout 2.0.3 SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist php bin/console wallabag:install --env=prod -To start php's build-in server and test if everything did install correctly, you can do: +To start PHP's build-in server and test if everything did install correctly, you can do: :: @@ -62,10 +65,48 @@ To start php's build-in server and test if everything did install correctly, you And access wallabag at http://yourserverip:8000 -Installing on Apache --------------------- +.. tip:: + + To define parameters with environment variables, you have to set these variables with ``SYMFONY__`` prefix. For example, ``SYMFONY__DATABASE_DRIVER``. You can have a look to the `Symfony documentation `__. + +On a shared hosting +~~~~~~~~~~~~~~~~~~~ + +We provide you a package with all dependancies inside. +The default configuration uses SQLite for the database. If you want to change these settings, please edit ``app/config/parameters.yml``. + +We already created a user: login and password are ``wallabag``. + +.. caution:: With this package, wallabag don't check mandatory extensions used in the application (theses checks are made during ``composer install`` when you have a dedicated web server, see above). + +Execute this command to download and extract the latest package: + +.. code-block:: bash + + wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package + +Now, read the following documentation to create your virtual host, then access to your wallabag. +If you changed the database configuration to use MySQL or PostgreSQL, you need to create a user via this command ``php bin/console wallabag:install --env=prod``. + +Installation with Docker +------------------------ + +We provide you a Docker image to install wallabag easily. Have a look to our repository on `Docker Hub `__ to have more information. -Assuming you install wallabag in the /var/www/wallabag folder and that you want to use php as an Apache module, here's a vhost for wallabag: +Command to launch container +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + docker pull wallabag/wallabag + +Virtual hosts +------------- + +Configuration on Apache +~~~~~~~~~~~~~~~~~~~~~~~ + +Assuming you install wallabag in the ``/var/www/wallabag`` folder and that you want to use PHP as an Apache module, here's a vhost for wallabag: :: @@ -107,10 +148,10 @@ Assuming you install wallabag in the /var/www/wallabag folder and that you want After reloading or restarting Apache, you should now be able to access wallabag at http://domain.tld. -Installing on Nginx -------------------- +Configuration on Nginx +~~~~~~~~~~~~~~~~~~~~~~ -Assuming you install wallabag in the /var/www/wallabag folder, here's the recipe for wallabag : +Assuming you install wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag : :: @@ -146,3 +187,69 @@ Assuming you install wallabag in the /var/www/wallabag folder, here's the recipe } After reloading or restarting nginx, you should now be able to access wallabag at http://domain.tld. + +.. tip:: + + 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``. + +Configuration on LigHTTPd +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Edit your ``lighttpd.conf`` file and paste this configuration into it: + +:: + + server.modules = ( + "mod_fastcgi", + "mod_access", + "mod_alias", + "mod_compress", + "mod_redirect", + "mod_rewrite", + ) + server.document-root = "/var/www/wallabag/web" + server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) + server.errorlog = "/var/log/lighttpd/error.log" + server.pid-file = "/var/run/lighttpd.pid" + server.username = "www-data" + server.groupname = "www-data" + server.port = 80 + server.follow-symlink = "enable" + index-file.names = ( "index.php", "index.html", "index.lighttpd.html") + url.access-deny = ( "~", ".inc" ) + static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) + compress.cache-dir = "/var/cache/lighttpd/compress/" + compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" ) + include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port + include_shell "/usr/share/lighttpd/create-mime.assign.pl" + include_shell "/usr/share/lighttpd/include-conf-enabled.pl" + dir-listing.activate = "disable" + + url.rewrite-if-not-file = ( + "^/([^?])(?:\?(.))?" => "/app.php?$1&$2", + "^/([^?]*)" => "/app.php?=$1", + "^/wiki$" => "/app.php", + ) + +Rights access to the folders of the project +------------------------------------------- + +Test environment +~~~~~~~~~~~~~~~~ + +When we just want to test wallabag, we just run the command ``php bin/console server:run --env=prod`` to start our wallabag instance and everything will go smoothly because the user who started the project can access to the current folder naturally, without any problem. + +Production environment +~~~~~~~~~~~~~~~~~~~~~~ + +As soon as we use Apache or Nginx to access to our wallabag instance, and not from the command ``php bin/console server:run --env=prod`` to start it, we should take care to grant the good rights on the good folders to keep safe all the folders of the project. + +To do so, the folder name, known as ``DocumentRoot`` (for apache) or ``root`` (for Nginx), has to be absolutely accessible by the Apache/Nginx user. Its name is generally ``www-data``, ``apache`` or ``nobody`` (depending on linux system used). + +So the folder ``/var/www/wallabag/web`` has to be accessible by this last one. But this could be not enough if we just care about this folder, because we could meet a blank page or get an error 500 when trying to access to the homepage of the project. + +This is due to the fact that we will need to grant the same rights access on the folder ``/var/www/wallabag/var`` like those we gave on the folder ``/var/www/wallabag/web``. Thus, we fix this problem with the following command: + +.. code-block:: bash + + chown -R www-data:www-data /var/www/wallabag/var