- 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
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 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).
- 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.
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
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.
****************************************************************************
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' addon 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 addons. 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 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
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.
#####################################################################
-- 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
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