]> git.mxchange.org Git - friendica.git/blobdiff - doc/Install.md
Merge branch 'develop' into bug/6211-fix-contact-nets-all
[friendica.git] / doc / Install.md
index 300a9c82d3e9be02fb94c0d1c227450ff46b6398..275d21b768b03ec43f1eb26da6e05c81103832e4 100644 (file)
@@ -32,7 +32,7 @@ Requirements
   * Curl, GD, PDO, MySQLi, hash, xml, zip and OpenSSL extensions
   * The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)
   * some form of email server or email gateway such that PHP mail() works
-* Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.)
+* Mysql 5.5.3+ or an equivalent alternative for MySQL (MariaDB, Percona Server etc.)
 * the ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks (Windows) (Note: other options are presented in Section 7 of this document.)
 * Installation into a top-level domain or sub-domain (without a directory/path component in the URL) is preferred. Directory paths will not be as convenient to use and have not been thoroughly tested.
 * If your hosting provider doesn't allow Unix shell access, you might have trouble getting everything to work.
@@ -40,6 +40,14 @@ Requirements
 Installation procedure
 ---
 
+### Alternative Installation Methods
+
+This guide will walk you through the manual installation process of Friendica.
+If this is nothing for you, you might be interested in
+
+* the [Friendica Docker image](https://github.com/friendica/docker) or
+* how [install Friendica with YunoHost](https://github.com/YunoHost-Apps/friendica_ynh).
+
 ### Get Friendica
 
 Unpack the Friendica files into the root of your web server document area.
@@ -67,7 +75,7 @@ Clone the addon repository (separately):
 
 If you copy the directory tree to your webserver, make sure that you also copy .htaccess - as "dot" files are often hidden and aren't normally copied.
 
-If you want to use the development version of Friendica you can switch to the devel branch in the repository by running
+If you want to use the development version of Friendica you can switch to the develop branch in the repository by running
 
     git checkout develop
     bin/composer.phar install
@@ -100,40 +108,98 @@ If you need to specify a port for the connection to the database, you can do so
 
 *If* the manual installation fails for any reason, check the following:
 
-* Does "config/local.ini.php" exist? If not, edit config/local-sample.ini.php and change the system settings.
-* Rename to `config/local.ini.php`.
+* Does "config/local.config.php" exist? If not, edit config/local-sample.config.php and change the system settings.
+* Rename to `config/local.config.php`.
 * Is the database is populated? If not, import the contents of `database.sql` with phpmyadmin or the mysql command line.
 
 At this point visit your website again, and register your personal account.
 Registration errors should all be recoverable automatically.
 If you get any *critical* failure at this point, it generally indicates the database was not installed correctly.
-You might wish to move/rename `config/local.ini.php` to another name and empty (called 'dropping') the database tables, so that you can start fresh.
+You might wish to move/rename `config/local.config.php` to another name and empty (called 'dropping') the database tables, so that you can start fresh.
 
 ### Option B: Run the automatic install script
 
-Open the file htconfig.php in the main Friendica directory with a text editor.
-Remove the `die('...');` line and edit the lines to suit your installation (MySQL, language, theme etc.).
-Then save the file (do not rename it).
+You have the following options to automatically install Friendica:
+-      creating a prepared config file (f.e. `prepared.config.php`)
+-      using environment variables (f.e. `MYSQL_HOST`)
+-      using options (f.e. `--dbhost <host>`)
 
-Navigate to the main Friendica directory and execute the following command:
+You can combine environment variables and options, but be aware that options are prioritized over environment variables. 
 
-    bin/console autoinstall
+For more information during the installation, you can use this command line option
+
+    bin/console autoinstall -v
 
-Or if you wish to include all optional checks, execute this statement instead:
+If you wish to include all optional checks, use `-a` like this statement:
 
     bin/console autoinstall -a
+    
+*If* the automatic installation fails for any reason, check the following:
 
-At this point visit your website again, and register your personal account.
+*      Does `config/local.config.php` already exist? If yes, the automatic installation won't start
+*      Are the options in the `config/local.config.php` correct? If not, edit them directly.
+*      Is the empty MySQL-database created? If not, create it.
 
-*If* the automatic installation fails for any reason, check the following:
+#### B.1: Config file
 
-* Does "config/local.ini.php" already exist? If yes, the automatic installation won't start
-* Are the settings inside "htconfig.php" correct? If not, edit the file again.
-* Is the empty MySQL-database created? If not, create it.
+You can use a prepared config file like [local-sample.config.php](config/local-sample.config.php).
 
-For more information during the installation, you can use this command line option
+Navigate to the main Friendica directory and execute the following command:
 
-    bin/console autoinstall -v
+    bin/console autoinstall -f <prepared.config.php>
+    
+#### B.2: Environment variables
+
+There are two types of environment variables.
+-      those you can use in normal mode too (Currently just **database credentials**)
+-      those you can only use during installation (because Friendica will normally ignore it)
+
+You can use the options during installation too and skip some of the environment variables.
+
+**Database credentials**
+
+if you don't use the option `--savedb` during installation, the DB credentials will **not** be saved in the `config/local.config.php`.
+
+-      `MYSQL_HOST` The host of the mysql/mariadb database
+-      `MYSQL_PORT` The port of the mysql/mariadb database
+-      `MYSQL_USERNAME` The username of the mysql database login (used for mysql)
+-      `MYSQL_USER` The username of the mysql database login (used for mariadb)
+-      `MYSQL_PASSWORD` The password of the mysql/mariadb database login
+-      `MYSQL_DATABASE` The name of the mysql/mariadb database
+
+**Friendica settings**
+
+This variables wont be used at normal Friendica runtime.
+Instead, they get saved into `config/local.config.php`. 
+
+-      `FRIENDICA_URL_PATH` The URL path of Friendica (f.e. '/friendica')
+-      `FRIENDICA_PHP_PATH` The path of the PHP binary
+-      `FRIENDICA_ADMIN_MAIL` The admin email address of Friendica (this email will be used for admin access)
+-      `FRIENDICA_TZ` The timezone of Friendica
+-      `FRIENDICA_LANG` The language of Friendica
+
+Navigate to the main Friendica directory and execute the following command:
+
+    bin/console autoinstall [--savedb]
+
+#### B.3: Execution options
+
+All options will be saved in the `config/local.config.php` and are overruling the associated environment variables.
+
+-      `-H|--dbhost <host>` The host of the mysql/mariadb database (env `MYSQL_HOST`)
+-      `-p|--dbport <port>` The port of the mysql/mariadb database (env `MYSQL_PORT`)
+-      `-U|--dbuser <username>` The username of the mysql/mariadb database login (env `MYSQL_USER` or `MYSQL_USERNAME`)
+-      `-P|--dbpass <password>` The password of the mysql/mariadb database login (env `MYSQL_PASSWORD`)
+-      `-d|--dbdata <database>` The name of the mysql/mariadb database (env `MYSQL_DATABASE`)
+-      `-u|--urlpath <url_path>` The URL path of Friendica - f.e. '/friendica' (env `FRIENDICA_URL_PATH`)
+-      `-b|--phppath <php_path>` The path of the PHP binary (env `FRIENDICA_PHP_PATH`)
+-      `-A|--admin <mail>` The admin email address of Friendica (env `FRIENDICA_ADMIN_MAIL`)
+-      `-T|--tz <timezone>` The timezone of Friendica (env `FRIENDICA_TZ`)
+-      `-L|--lang <language>` The language of Friendica (env `FRIENDICA_LANG`)
+
+Navigate to the main Friendica directory and execute the following command:
+
+    bin/console autoinstall [options]
 
 ### Prepare .htaccess file
 
@@ -190,5 +256,5 @@ Bad things will happen.
 Let there be a hardware failure, a corrupted database or whatever you can think of.
 So once the installation of your Friendica node is done, you should make yourself a backup plan.
 
-The most important file is the `config/local.ini.php` file.
+The most important file is the `config/local.config.php` file.
 As it stores all your data, you should also have a recent dump of your Friendica database at hand, should you have to recover your node.