aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL.txt
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL.txt')
-rw-r--r--INSTALL.txt270
1 files changed, 0 insertions, 270 deletions
diff --git a/INSTALL.txt b/INSTALL.txt
deleted file mode 100644
index e6adbba7d..000000000
--- a/INSTALL.txt
+++ /dev/null
@@ -1,270 +0,0 @@
-
-Friendica Installation
-
-We've tried very hard to ensure that Friendica will run on commodity hosting
-platforms - such as those used to host Wordpress blogs and Drupal websites.
-But be aware that Friendica is more than a simple web application. It is a
-complex communications system which more closely resembles an email server
-than a web server. For reliability and performance, messages are delivered in
-the background and are queued for later delivery when sites are down. This
-kind of functionality requires a bit more of the host system than the typical
-blog. Not every PHP/MySQL hosting provider will be able to support Friendica.
-Many will. But please review the requirements and confirm these with your
-hosting provider prior to installation.
-
-Before you begin: Choose a domain name or subdomain name for your server.
-Put some thought into this - because changing it is currently not-supported.
-Things will break, and some of your friends may have difficulty communicating
-with you. We plan to address this limitation in a future release. Also decide
-if you wish to connect with members of the Diaspora network, as this will
-impact the installation requirements.
-
-Decide if you will use SSL and obtain an SSL cert. Communications with the
-Diaspora network MAY require both SSL AND an SSL cert signed by a CA which is
-recognised by the major browsers. Friendica will work with self-signed certs
-but Diaspora communication may not. For best results, install your cert PRIOR
-to installing Friendica and when visiting your site for the initial
-installation in step 5, please use the https: link. (Use the http: or non-SSL
-link if your cert is self-signed).
-
-
-1. Requirements
- - Apache with mod-rewrite enabled and "Options All" so you can use a
-local .htaccess file
-
- - PHP 5.3+. The later the better.
-
- - 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, mcrypt, and openssl extensions
-
- - some form of email server or email gateway such that PHP mail() works
-
- - Mysql 5.x
-
- - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
-(Windows) [Note: other options are presented in Section 8 of this document]
-
- - Installation into a top-level domain or sub-domain (without a
-directory/path component in the URL) is preferred. This is REQUIRED if
-you wish to communicate with the Diaspora network.
-
-2. Unpack the Friendica files into the root of your web server document area.
-
- - 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.
-
-3. Create an empty database and note the access details (hostname, username,
-password, database name).
-
-
-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.
-
-5. Visit your website with a web browser and follow the instructions. Please
-note any error messages and correct these before continuing. If you are using
-SSL with a known signature authority (recommended), use the https: link to your
-website. If you are using a self-signed cert or no cert, use the http: link.
-
-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
- - Database is populated.
- If not, import the contents of "database.sql" with phpmyadmin
-or mysql command line
-
-7. 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
-.htconfig.php to another name and empty (called 'dropping') the database
-tables, so that you can start fresh.
-
-****************************************************************************
-****************************************************************************
-******** THIS NEXT STEP IS IMPORTANT!!!! ***********
-****************************************************************************
-****************************************************************************
-
-8. Set up a cron job or scheduled task to run the poller once every 5-10
-minutes to pick up the recent "public" postings of your friends. Example:
-
- cd /base/directory; /path/to/php include/poller.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 include/poller.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
-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';
-
-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
-
-$a->config['system']['addon'] = 'js_upload,poormancron';
-
-and save your changes.
-
-
-
-#####################################################################
-
- If things don't work...
-
-#####################################################################
-
-
-#####################################################################
-- If you get the message
- "System is currently unavailable. Please try again later"
-#####################################################################
-
- Check your database settings. It usually means your database could not
-be opened or accessed. If the database resides on the same machine, check that
-the database server name is "localhost".
-
-#####################################################################
-- 500 Internal Error
-#####################################################################
-
- This could be the result of one of our Apache directives not being
-supported by your version of Apache. Examine your apache server logs.
- You might remove the line "Options -Indexes" from the .htaccess file if
-you are using a Windows server as this has been known to cause problems.
-Also check your file permissions. Your website and all contents must generally
-be world-readable.
-
- It is likely that your web server reported the source of the problem in
-its error log files. Please review these system error logs to determine what
-caused the problem. Often this will need to be resolved with your hosting
-provider or (if self-hosted) your web server configuration.
-
-#####################################################################
-- 400 and 4xx "File not found" errors
-#####################################################################
-
- First check your file permissions. Your website and all contents must
-generally be world-readable.
-
- Ensure that mod-rewite is installed and working, and that your
-.htaccess file is being used. To verify the latter, create a file test.out
-containing the word "test" in the top directory of Friendica, make it world
-readable and point your web browser to
-
-http://yoursitenamehere.com/test.out
-
- This file should be blocked. You should get a permission denied message.
-
- If you see the word "test" your Apache configuration is not allowing
-your .htaccess file to be used (there are rules in this file to block access
-to any file with .out at the end, as these are typically used for system logs).
-
- Make certain the .htaccess file exists and is readable by everybody, then
-look for the existence of "AllowOverride None" in the Apache server
-configuration for your site. This will need to be changed to
-"AllowOverride All".
-
- If you do not see the word "test", your .htaccess is working, but it is
-likely that mod-rewrite is not installed in your web server or is not working.
-
- On most flavour of Linux,
-
-% a2enmod rewrite
-% /etc/init.d/apache2 restart
-
- Consult your hosting provider, experts on your particular Linux
-distribution or (if Windows) the provider of your Apache server software if
-you need to change either of these and can not figure out how. There is
-a lot of help available on the web. Google "mod-rewrite" along with the
-name of your operating system distribution or Apache package (if using
-Windows).
-
-
-#####################################################################
-- If you are unable to write the file .htconfig.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
-
-Retry the installation. As soon as the database has been created,
-
-******* this is important *********
-
-% chmod 755 .htconfig.php
-
-#####################################################################
-- Some configurations with "suhosin" security are configured without
-an ability to run external processes. Friendica requires this ability.
-Following are some notes provided by one of our members.
-#####################################################################
-
-On my server I use the php protection system Suhosin
-[http://www.hardened-php.net/suhosin/]. One of the things it does is to block
-certain functions like proc_open, as configured in /etc/php5/conf.d/suhosin.ini:
-
- suhosin.executor.func.blacklist = proc_open, ...
-
-For those sites like Friendica that really need these functions they can be
-enabled, e.g. in /etc/apache2/sites-available/friendica:
-
- <Directory /var/www/friendica/>
- php_admin_value suhosin.executor.func.blacklist none
- php_admin_value suhosin.executor.eval.blacklist none
- </Directory>
-
-This enables every function for Friendica if accessed via browser, but not for
-the cronjob that is called via php command line. I attempted to enable it for
-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 include/poller.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 include/poller.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';
-
-
-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
-find that out. I hope this saves some time for other people using suhosin with
-function blacklists.