]> git.mxchange.org Git - friendica.git/blobdiff - INSTALL.txt
Fixes:
[friendica.git] / INSTALL.txt
index eaf7604e3e295059814016aaf64170dedc5a88e8..705eb8fed2fe90a6f944b615394044b90d944bbe 100644 (file)
@@ -32,15 +32,17 @@ link if your cert is self-signed).
        - Apache with mod-rewrite enabled and "Options All" so you can use a
 local .htaccess file
 
        - Apache with mod-rewrite enabled and "Options All" so you can use a
 local .htaccess file
 
-       - PHP 5.6+ (PHP 7 recommended for performance).
+       - PHP 5.6.1+ (PHP 7 recommended for performance).
 
                - PHP *command line* access with register_argc_argv set to true in the
 php.ini file [or see 'poormancron' in section 8]
 
 
                - PHP *command line* access with register_argc_argv set to true in the
 php.ini file [or see 'poormancron' in section 8]
 
-               - curl, gd (with at least jpeg support), mysql, mbstring, xml and openssl extensions
+               - curl, gd (with at least jpeg support), mysql, mbstring, xml, zip and openssl extensions
 
                - some form of email server or email gateway such that PHP mail() works
 
 
                - some form of email server or email gateway such that PHP mail() works
 
+               - The POSIX module of PHP needs to be activated (e.g. RHEL, CentOS have disabled it)
+
        - Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.)
 
        - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
        - Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.)
 
        - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
@@ -64,9 +66,38 @@ OR
 
 2b. Clone the friendica/friendica GitHub repository and import dependencies
 
 
 2b. Clone the friendica/friendica GitHub repository and import dependencies
 
-       git clone https://github.com/friendica/friendica [web server folder]
+       git clone https://github.com/friendica/friendica -b master [web server folder]
        cd [web server folder]
        cd [web server folder]
-       php util/composer.phar install
+       php bin/composer.phar install
+
+Make sure the folder view/smarty3 exists and is writable by the webserver
+user, in this case `www-data`
+
+    mkdir view/smarty3
+    chown www-data:www-data view/smarty3
+    chmod 775 view/smarty3
+
+Get the addons by going into your website folder.
+
+    cd mywebsite
+
+Clone the addon repository (separately):
+
+    git clone https://github.com/friendica/friendica-addons.git -b master addon
+
+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
+
+    git checkout develop
+    bin/composer.phar install
+    cd addon
+    git checkout develop
+
+please be aware that the develop branch may break your Friendica node at any
+time. If you encounter a bug, please let us know.
 
 3. Create an empty database and note the access details (hostname, username,
 password, database name).
 
 3. Create an empty database and note the access details (hostname, username,
 password, database name).
@@ -75,8 +106,8 @@ password, database name).
     - Please check the additional notes if running on MySQ 5.7.17 or newer
 
 4. If you know in advance that it will be impossible for the web server to
     - Please check the additional notes if running on MySQ 5.7.17 or newer
 
 4. If you know in advance that it will be impossible for the web server to
-write or create files in your web directory, create an empty file called
-.htconfig.php and make it writable by the web server.
+write or create files in the config/ subfolder, create an empty file called
+local.ini.php and make it writable by the web server.
 
 5. Visit your website with a web browser and follow the instructions. Please
 note any error messages and correct these before continuing.
 
 5. Visit your website with a web browser and follow the instructions. Please
 note any error messages and correct these before continuing.
@@ -90,9 +121,9 @@ so in the host name setting for the database.
 
 6. *If* the automated installation fails for any reason, check the following:
 
 
 6. *If* the automated installation fails for any reason, check the following:
 
-       - ".htconfig.php" exists
-               If not, edit htconfig.php and change system settings. Rename
-to .htconfig.php
+       - "config/local.ini.php" exists
+               If not, edit local-sample.ini.php and change system settings. Rename
+to local.ini.php
        -  Database is populated.
                If not, import the contents of "database.sql" with phpmyadmin
 or mysql command line
        -  Database is populated.
                If not, import the contents of "database.sql" with phpmyadmin
 or mysql command line
@@ -101,7 +132,7 @@ or mysql command line
 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
 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
-.htconfig.php to another name and empty (called 'dropping') the database
+local.ini.php to another name and empty (called 'dropping') the database
 tables, so that you can start fresh.
 
 ****************************************************************************
 tables, so that you can start fresh.
 
 ****************************************************************************
@@ -113,14 +144,14 @@ tables, so that you can start fresh.
 8. Set up a cron job or scheduled task to run the worker once every 5-10
 minutes to pick up the recent "public" postings of your friends. Example:
 
 8. Set up a cron job or scheduled task to run the worker once every 5-10
 minutes to pick up the recent "public" postings of your friends. Example:
 
-       cd /base/directory; /path/to/php scripts/worker.php
+       cd /base/directory; /path/to/php bin/worker.php
 
 Change "/base/directory", and "/path/to/php" as appropriate for your situation.
 
 If you are using a Linux server, run "crontab -e" and add a line like the
 one shown, substituting for your unique paths and settings:
 
 
 Change "/base/directory", and "/path/to/php" as appropriate for your situation.
 
 If you are using a Linux server, run "crontab -e" and add a line like the
 one shown, substituting for your unique paths and settings:
 
-*/10 * * * *   cd /home/myname/mywebsite; /usr/bin/php scripts/worker.php
+*/10 * * * *   cd /home/myname/mywebsite; /usr/bin/php bin/worker.php
 
 You can generally find the location of PHP by executing "which php". If you
 have troubles with this section please contact your hosting provider for
 
 You can generally find the location of PHP by executing "which php". If you
 have troubles with this section please contact your hosting provider for
@@ -129,24 +160,16 @@ assistance. Friendica will not work correctly if you cannot perform this step.
 You should also be sure that $a->config['php_path'] is set correctly, it should
 look like (changing it to the correct PHP location)
 
 You should also be sure that $a->config['php_path'] is set correctly, it should
 look like (changing it to the correct PHP location)
 
-$a->config['php_path'] = '/usr/local/php53/bin/php'
-
-Alternative: You may be able to use the 'poormancron' plugin to perform this
-step if you are using a recent Friendica release. 'poormancron' may result in
-perfomance and memory issues and is only suitable for small sites with one or
-two users and a handful of contacts. To do this, edit the file
-".htconfig.php" and look for a line describing your plugins. On a fresh
-installation, it will look like
-
-$a->config['system']['addon'] = 'js_upload';
+$a->config['php_path'] = '/usr/local/php56/bin/php'
 
 
-This indicates the "js_upload" addon module is enabled. You may add additional
-addons/plugins using this same line in the configuration file. Change it to
-read
+Alternative: If you cannot use a cron job as described above, you can use
+the frontend worker and an external cron service to trigger the execution
+of the worker script. You can enable the frontend worker after the installation
+from the admin panel of your node and call
 
 
-$a->config['system']['addon'] = 'js_upload,poormancron';
+                https://example.com/worker
 
 
-and save your changes.
+with the service of your choice.
 
 9. (Recommended) Set up a backup plan
 
 
 9. (Recommended) Set up a backup plan
 
@@ -154,7 +177,7 @@ 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 yoursef a backup plan.
 
 database or whatever you can think of. So once the installation of your
 Friendica node is done, you should make yoursef a backup plan.
 
-The most important file is the `.htconfig.php` file in the base directory.
+The most important file is the `config/local.ini.php` file in the base directory.
 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.
 
 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.
 
@@ -251,21 +274,21 @@ Windows).
 
 
 #####################################################################
 
 
 #####################################################################
-- If you are unable to write the file .htconfig.php during installation
+- If you are unable to write the file config/local.ini.php during installation
 due to permissions issues:
 #####################################################################
 
        create an empty file with that name and give it world-write permission.
 For Linux:
 
 due to permissions issues:
 #####################################################################
 
        create an empty file with that name and give it world-write permission.
 For Linux:
 
-% touch .htconfig.php
-% chmod 777 .htconfig.php
+% touch config/local.ini.php
+% chmod 664 config/local.ini.php
 
 Retry the installation. As soon as the database has been created,
 
 ******* this is important *********
 
 
 Retry the installation. As soon as the database has been created,
 
 ******* this is important *********
 
-% chmod 755 .htconfig.php
+% chmod 644 config/local.ini.php
 
 #####################################################################
 - Some configurations with "suhosin" security are configured without
 
 #####################################################################
 - Some configurations with "suhosin" security are configured without
@@ -293,22 +316,22 @@ cron by using something like
 
  */10 * * * * cd /var/www/friendica/friendica/ && sudo -u www-data /usr/bin/php
 -d suhosin.executor.func.blacklist=none -d suhosin.executor.eval.blacklist=none
 
  */10 * * * * cd /var/www/friendica/friendica/ && sudo -u www-data /usr/bin/php
 -d suhosin.executor.func.blacklist=none -d suhosin.executor.eval.blacklist=none
--f scripts/worker.php
+-f bin/worker.php
 
 This worked well for simple test cases, but the friendica-cron still failed with
 a fatal error:
 suhosin[22962]: ALERT - function within blacklist called: proc_open() (attacker
 'REMOTE_ADDR not set', file '/var/www/friendica/friendica/boot.php', line 1341)
 
 
 This worked well for simple test cases, but the friendica-cron still failed with
 a fatal error:
 suhosin[22962]: ALERT - function within blacklist called: proc_open() (attacker
 'REMOTE_ADDR not set', file '/var/www/friendica/friendica/boot.php', line 1341)
 
-After a while I noticed, that scripts/worker.php calls further php script via
+After a while I noticed, that bin/worker.php calls further php script via
 proc_open. These scripts themselves also use proc_open and fail, because they
 are NOT called with -d suhosin.executor.func.blacklist=none.
 
 proc_open. These scripts themselves also use proc_open and fail, because they
 are NOT called with -d suhosin.executor.func.blacklist=none.
 
-So the simple solution is to put the correct parameters into .htconfig.php:
- // Location of PHP command line processor
- $a->config['php_path'] = '/usr/bin/php -d suhosin.executor.func.blacklist=none
--d suhosin.executor.eval.blacklist=none';
+So the simple solution is to put the correct parameters into config/local.ini.php:
 
 
+[config]
+; Location of PHP command line processor
+php_path = "/usr/bin/php -d suhosin.executor.func.blacklist=none -d suhosin.executor.eval.blacklist=none"
 
 This is obvious as soon as you notice that the friendica-cron uses proc_open to
 execute php-scripts that also use proc_open, but it took me quite some time to
 
 This is obvious as soon as you notice that the friendica-cron uses proc_open to
 execute php-scripts that also use proc_open, but it took me quite some time to