X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=INSTALL.txt;h=705eb8fed2fe90a6f944b615394044b90d944bbe;hb=refs%2Fheads%2Ffixes%2Fe-notice-mod-admin;hp=eaf7604e3e295059814016aaf64170dedc5a88e8;hpb=c69d60644f46246978a7b52da79e7e58c74e31e6;p=friendica.git diff --git a/INSTALL.txt b/INSTALL.txt index eaf7604e3e..705eb8fed2 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -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