From ad86a5193e60a23d56abb98197538a7bd6431931 Mon Sep 17 00:00:00 2001 From: Friendika Date: Wed, 22 Dec 2010 13:55:44 -0800 Subject: [PATCH] some Windows (and other) installation issues --- INSTALL.txt | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ README | 2 +- mod/install.php | 12 +++---- 3 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 INSTALL.txt diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100644 index 0000000000..577f3f354c --- /dev/null +++ b/INSTALL.txt @@ -0,0 +1,85 @@ + +Friendika Installation + +We've tried very hard to ensure that Friendika will run on commodity hosting +platforms - such as those used to host Wordpress blogs and Drupal websites. +But be aware that Friendika 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 Friendika. +Many will. But please review the requirements and confirm these with your +hosting provider prior to installation. + + +1. Requirements + - Apache with mod-rewrite enabled and "Options All" so you can use a +local .htaccess file + + - PHP > 5.1. The later the better. You'll need 5.3 for encryption of key +exchange conversations +encryption support + - PHP *command line* access with register_argc_argv set to true in the +php.ini file + - curl, gd, mysql, and openssl extensions + - some form of email server or email gateway such that PHP mail() works + - mcrypt (optional; used for end-to-end message encryption) + + - Mysql 5.x + + - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks +(Windows) + + - Installation into a top-level domain or sub-domain (without a +directory/path component in the URL) is preferred. Directory paths will +not be as convenient to use and have not been thoroughly tested. + + [Dreamhost.com offers all of the necessary hosting features at a +reasonable price. If your hosting provider doesn't allow Unix shell access, +you might have trouble getting everything to work.] + +2. Unpack the Friendika 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. Visit your website with a web browser and follow the instructions. Please +note any error messages and correct these before continuing. + +5. *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 + +6. 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. + +7. 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. Friendika will not work correctly if you cannot perform this step. + diff --git a/README b/README index efd36a1373..25fff8279f 100644 --- a/README +++ b/README @@ -79,6 +79,6 @@ friends and public updates to your hordes of fans - using the same interface. No other social network offers this ability. -IMPORTANT: Please see the file INSTALL for system requirements. +IMPORTANT: Please see the file INSTALL.txt for system requirements. diff --git a/mod/install.php b/mod/install.php index 9043459b86..fa534fe12c 100644 --- a/mod/install.php +++ b/mod/install.php @@ -15,7 +15,7 @@ function install_post(&$a) { require_once("dba.php"); - $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, $true); + $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true); if(mysqli_connect_errno()) { $db = new dba($dbhost, $dbuser, $dbpass, '', true); @@ -24,7 +24,7 @@ function install_post(&$a) { dbesc($dbdata) ); if($r) - $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, $true); + $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true); } if(mysqli_connect_errno()) { notice( t('Could not create/connect to database.') . EOL); @@ -65,14 +65,14 @@ function install_post(&$a) { notice( t('Database import succeeded.') . EOL . t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.') . EOL - . t('Please see the file INSTALL.') . EOL ); + . t('Please see the file "INSTALL.txt".') . EOL ); goaway($a->get_baseurl() . '/register' ); } else { $db = null; // start fresh notice( t('Database import failed.') . EOL . t('You may need to import the file "database.sql" manually using phpmyadmin or mysql.') . EOL - . t('Please see the file INSTALL.') . EOL ); + . t('Please see the file "INSTALL.txt".') . EOL ); } } @@ -171,7 +171,7 @@ function check_funcs() { if(! function_exists('mysqli_connect')) notice( t('Error: mysqli PHP module required but not installed.') . EOL); if((x($_SESSION,'sysmsg')) && strlen($_SESSION['sysmsg'])) - notice( t('Please see the file "INSTALL".') . EOL); + notice( t('Please see the file "INSTALL.txt".') . EOL); } @@ -183,7 +183,7 @@ function check_htconfig() { $o = t('The web installer needs to be able to create a file called ".htconfig.php" in the top folder of your web server and it is unable to do so.'); $o .= t('This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.'); $o .= t('Please check with your site documentation or support people to see if this situation can be corrected.'); - $o .= t('If not, you may be required to perform a manual installation. Please see the file "INSTALL" for instructions.'); + $o .= t('If not, you may be required to perform a manual installation. Please see the file "INSTALL.txt" for instructions.'); } return $o;