]> 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
 
-       - 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]
 
-               - 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
 
+               - 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
@@ -64,9 +66,38 @@ OR
 
 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]
-       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).
@@ -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
-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.
@@ -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:
 
-       - ".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
@@ -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
-.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.
 
 ****************************************************************************
@@ -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:
 
-       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:
 
-*/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
@@ -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)
 
-$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
 
@@ -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.
 
-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.
 
@@ -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:
 
-% 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 *********
 
-% chmod 755 .htconfig.php
+% chmod 644 config/local.ini.php
 
 #####################################################################
 - 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
--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)
 
-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.
 
-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