X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=doc%2FInstall.md;h=275d21b768b03ec43f1eb26da6e05c81103832e4;hb=c3c7c50dc525653fee16a92a5e14106a4b83249c;hp=6eb249a81215d115ee0605209c6c29f1a6980f4e;hpb=2fa6cc000013089d59d9cc221b544ed1a7a4cd37;p=friendica.git diff --git a/doc/Install.md b/doc/Install.md index 6eb249a812..275d21b768 100644 --- a/doc/Install.md +++ b/doc/Install.md @@ -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,125 @@ 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 `) -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. + +For more information during the installation, you can use this command line option - bin/console autoinstall + 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 + +#### 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 ` The host of the mysql/mariadb database (env `MYSQL_HOST`) +- `-p|--dbport ` The port of the mysql/mariadb database (env `MYSQL_PORT`) +- `-U|--dbuser ` The username of the mysql/mariadb database login (env `MYSQL_USER` or `MYSQL_USERNAME`) +- `-P|--dbpass ` The password of the mysql/mariadb database login (env `MYSQL_PASSWORD`) +- `-d|--dbdata ` The name of the mysql/mariadb database (env `MYSQL_DATABASE`) +- `-u|--urlpath ` The URL path of Friendica - f.e. '/friendica' (env `FRIENDICA_URL_PATH`) +- `-b|--phppath ` The path of the PHP binary (env `FRIENDICA_PHP_PATH`) +- `-A|--admin ` The admin email address of Friendica (env `FRIENDICA_ADMIN_MAIL`) +- `-T|--tz ` The timezone of Friendica (env `FRIENDICA_TZ`) +- `-L|--lang ` 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 + +Copy .htaccess-dist to .htaccess (be careful under Windows) to have working mod-rewrite again. If you have installed Friendica into a sub directory, like /friendica/ set this path in RewriteBase accordingly. + +Example: + + cp .htacces-dist .htaccess + +*Note*: Do **not** rename the .htaccess-dist file as it is tracked by GIT and renaming will cause a dirty working directory. + +### Verify the "host-meta" page is working + +Friendica should respond automatically to important addresses under the /.well-known/ rewrite path. +One critical URL would look like, for example, https://example.com/.well-known/host-meta +It must be visible to the public and must respond with an XML file that is automatically customized to your site. + +If that URL is not working, it is possible that some other software is using the /.well-known/ path. +Other symptoms may include an error message in the Admin settings that says "host-meta is not reachable on your system. +This is a severe configuration issue that prevents server to server communication." +Another common error related to host-meta is the "Invalid profile URL." + +Check for a .well-known directory that did not come with Friendica. +The preferred configuration is to remove the directory, however this is not always possible. +If there is any /.well-known/.htaccess file, it could interfere with this Friendica core requirement. +You should remove any RewriteRules from that file, or remove that whole file if appropriate. +It may be necessary to chmod the /.well-known/.htaccess file if you were not given write permissions by default. ### Set up the worker @@ -163,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.