diff options
Diffstat (limited to 'install')
-rw-r--r-- | install/INSTALL.txt | 270 | ||||
-rw-r--r-- | install/database.sql | 921 | ||||
-rw-r--r-- | install/htconfig.sample.php | 93 |
3 files changed, 1284 insertions, 0 deletions
diff --git a/install/INSTALL.txt b/install/INSTALL.txt new file mode 100644 index 000000000..e6adbba7d --- /dev/null +++ b/install/INSTALL.txt @@ -0,0 +1,270 @@ + +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. diff --git a/install/database.sql b/install/database.sql new file mode 100644 index 000000000..5c0e2d85b --- /dev/null +++ b/install/database.sql @@ -0,0 +1,921 @@ +SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; + + +CREATE TABLE IF NOT EXISTS `abook` ( + `abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `abook_account` int(10) unsigned NOT NULL, + `abook_channel` int(10) unsigned NOT NULL, + `abook_xchan` char(255) NOT NULL DEFAULT '', + `abook_my_perms` int(11) NOT NULL DEFAULT '0', + `abook_their_perms` int(11) NOT NULL DEFAULT '0', + `abook_closeness` tinyint(3) unsigned NOT NULL DEFAULT '255', + `abook_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `abook_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `abook_connnected` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `abook_flags` int(11) NOT NULL DEFAULT '0', + `abook_profile` char(64) NOT NULL DEFAULT '', + PRIMARY KEY (`abook_id`), + KEY `abook_account` (`abook_account`), + KEY `abook_channel` (`abook_channel`), + KEY `abook_xchan` (`abook_xchan`), + KEY `abook_my_perms` (`abook_my_perms`), + KEY `abook_their_perms` (`abook_their_perms`), + KEY `abook_closeness` (`abook_closeness`), + KEY `abook_created` (`abook_created`), + KEY `abook_updated` (`abook_updated`), + KEY `abook_connnected` (`abook_connnected`), + KEY `abook_flags` (`abook_flags`), + KEY `abook_profile` (`abook_profile`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `account` ( + `account_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `account_parent` int(10) unsigned NOT NULL DEFAULT '0', + `account_default_channel` int(10) unsigned NOT NULL DEFAULT '0', + `account_salt` char(32) NOT NULL DEFAULT '', + `account_password` char(255) NOT NULL DEFAULT '', + `account_email` char(255) NOT NULL DEFAULT '', + `account_language` char(16) NOT NULL DEFAULT 'en', + `account_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `account_lastlog` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `account_flags` int(10) unsigned NOT NULL DEFAULT '0', + `account_roles` int(10) unsigned NOT NULL DEFAULT '0', + `account_reset` char(255) NOT NULL DEFAULT '', + `account_expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `account_expire_notified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `account_service_class` char(32) NOT NULL DEFAULT '', + PRIMARY KEY (`account_id`), + KEY `account_email` (`account_email`), + KEY `account_service_class` (`account_service_class`), + KEY `account_parent` (`account_parent`), + KEY `account_flags` (`account_flags`), + KEY `account_roles` (`account_roles`), + KEY `account_lastlog` (`account_lastlog`), + KEY `account_expires` (`account_expires`), + KEY `account_default_channel` (`account_default_channel`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `addon` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` char(255) NOT NULL, + `version` char(255) NOT NULL, + `installed` tinyint(1) NOT NULL DEFAULT '0', + `hidden` tinyint(1) NOT NULL DEFAULT '0', + `timestamp` bigint(20) NOT NULL DEFAULT '0', + `plugin_admin` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `hidden` (`hidden`), + KEY `name` (`name`), + KEY `installed` (`installed`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `attach` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `aid` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(10) unsigned NOT NULL DEFAULT '0', + `hash` char(64) NOT NULL DEFAULT '', + `filename` char(255) NOT NULL DEFAULT '', + `filetype` char(64) NOT NULL DEFAULT '', + `filesize` int(10) unsigned NOT NULL DEFAULT '0', + `data` longblob NOT NULL, + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, + PRIMARY KEY (`id`), + KEY `aid` (`aid`), + KEY `uid` (`uid`), + KEY `hash` (`hash`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `auth_codes` ( + `id` varchar(40) NOT NULL, + `client_id` varchar(20) NOT NULL, + `redirect_uri` varchar(200) NOT NULL, + `expires` int(11) NOT NULL, + `scope` varchar(250) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `cache` ( + `k` char(255) NOT NULL, + `v` text NOT NULL, + `updated` datetime NOT NULL, + PRIMARY KEY (`k`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `challenge` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `challenge` char(255) NOT NULL, + `dfrn-id` char(255) NOT NULL, + `expire` int(11) NOT NULL, + `type` char(255) NOT NULL, + `last_update` char(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `channel` ( + `channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `channel_account_id` int(10) unsigned NOT NULL DEFAULT '0', + `channel_primary` tinyint(1) unsigned NOT NULL DEFAULT '0', + `channel_name` char(255) NOT NULL DEFAULT '', + `channel_address` char(255) NOT NULL DEFAULT '', + `channel_guid` char(255) NOT NULL DEFAULT '', + `channel_guid_sig` char(255) NOT NULL DEFAULT '', + `channel_hash` char(255) NOT NULL DEFAULT '', + `channel_timezone` char(128) NOT NULL DEFAULT 'UTC', + `channel_location` char(255) NOT NULL DEFAULT '', + `channel_theme` char(255) NOT NULL DEFAULT '', + `channel_startpage` char(255) NOT NULL DEFAULT '', + `channel_pubkey` text NOT NULL, + `channel_prvkey` text NOT NULL, + `channel_notifyflags` int(10) unsigned NOT NULL DEFAULT '65535', + `channel_pageflags` int(10) unsigned NOT NULL DEFAULT '0', + `channel_max_anon_mail` int(10) unsigned NOT NULL DEFAULT '10', + `channel_max_friend_req` int(10) unsigned NOT NULL DEFAULT '10', + `channel_expire_days` int(11) NOT NULL DEFAULT '0', + `channel_passwd_reset` char(255) NOT NULL DEFAULT '', + `channel_default_gid` int(10) unsigned NOT NULL DEFAULT '0', + `channel_allow_cid` mediumtext NOT NULL, + `channel_allow_gid` mediumtext NOT NULL, + `channel_deny_cid` mediumtext NOT NULL, + `channel_deny_gid` mediumtext NOT NULL, + `channel_r_stream` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_r_profile` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_r_photos` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_r_abook` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_w_stream` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_w_wall` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_w_tagwall` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_w_comment` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_w_mail` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_w_photos` tinyint(3) unsigned NOT NULL DEFAULT '128', + `channel_w_chat` tinyint(3) unsigned NOT NULL DEFAULT '128', + PRIMARY KEY (`channel_id`), + KEY `channel_account_id` (`channel_account_id`), + KEY `channel_primary` (`channel_primary`), + KEY `channel_name` (`channel_name`), + KEY `channel_address` (`channel_address`), + KEY `channel_timezone` (`channel_timezone`), + KEY `channel_location` (`channel_location`), + KEY `channel_theme` (`channel_theme`), + KEY `channel_notifyflags` (`channel_notifyflags`), + KEY `channel_pageflags` (`channel_pageflags`), + KEY `channel_max_anon_mail` (`channel_max_anon_mail`), + KEY `channel_max_friend_req` (`channel_max_friend_req`), + KEY `channel_default_gid` (`channel_default_gid`), + KEY `channel_r_stream` (`channel_r_stream`), + KEY `channel_r_profile` (`channel_r_profile`), + KEY `channel_r_photos` (`channel_r_photos`), + KEY `channel_r_abook` (`channel_r_abook`), + KEY `channel_w_stream` (`channel_w_stream`), + KEY `channel_w_wall` (`channel_w_wall`), + KEY `channel_w_tagwall` (`channel_w_tagwall`), + KEY `channel_w_comment` (`channel_w_comment`), + KEY `channel_w_mail` (`channel_w_mail`), + KEY `channel_w_photos` (`channel_w_photos`), + KEY `channel_w_chat` (`channel_w_chat`), + KEY `channel_guid` (`channel_guid`), + KEY `channel_guid_sig` (`channel_guid_sig`), + KEY `channel_hash` (`channel_hash`), + KEY `channel_expire_days` (`channel_expire_days`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `clients` ( + `client_id` varchar(20) NOT NULL, + `pw` varchar(20) NOT NULL, + `redirect_uri` varchar(200) NOT NULL, + `name` text, + `icon` text, + `uid` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`client_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `config` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cat` char(255) CHARACTER SET ascii NOT NULL, + `k` char(255) CHARACTER SET ascii NOT NULL, + `v` text NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `access` (`cat`,`k`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `contact` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `aid` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(11) NOT NULL COMMENT 'owner uid', + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `my_perms` int(10) unsigned NOT NULL DEFAULT '0', + `their_perms` int(10) unsigned NOT NULL DEFAULT '0', + `self` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'boolean 1 == info for local UID, primarily name and photo to use in item displays.', + `remote_self` tinyint(1) NOT NULL DEFAULT '0', + `rel` tinyint(1) NOT NULL DEFAULT '0', + `duplex` tinyint(1) NOT NULL DEFAULT '0', + `network` char(255) NOT NULL, + `name` char(255) NOT NULL, + `nick` char(255) NOT NULL, + `attag` char(255) NOT NULL, + `photo` text NOT NULL COMMENT 'remote photo URL initially until approved', + `thumb` text NOT NULL, + `micro` text NOT NULL, + `site_pubkey` text NOT NULL, + `issued_id` char(255) NOT NULL, + `dfrn_id` char(255) NOT NULL, + `url` char(255) NOT NULL, + `nurl` char(255) NOT NULL, + `addr` char(255) NOT NULL, + `alias` char(255) NOT NULL, + `pubkey` text NOT NULL, + `prvkey` text NOT NULL, + `batch` char(255) NOT NULL, + `request` text NOT NULL, + `notify` char(255) NOT NULL, + `poll` text NOT NULL, + `confirm` text NOT NULL, + `poco` text NOT NULL, + `aes_allow` tinyint(1) NOT NULL DEFAULT '0', + `last_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `success_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `name_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `uri_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `avatar_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `term_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `priority` tinyint(3) NOT NULL, + `blocked` tinyint(1) NOT NULL DEFAULT '1', + `readonly` tinyint(1) NOT NULL DEFAULT '0', + `writable` tinyint(1) NOT NULL DEFAULT '0', + `forum` tinyint(1) NOT NULL DEFAULT '0', + `prv` tinyint(1) NOT NULL DEFAULT '0', + `hidden` tinyint(1) NOT NULL DEFAULT '0', + `archive` tinyint(1) NOT NULL DEFAULT '0', + `pending` tinyint(1) NOT NULL DEFAULT '1', + `rating` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-5 reputation, 0 unknown, 1 call police, 5 inscrutable', + `reason` text NOT NULL COMMENT 'why a rating was given - will help friends decide to make friends or not', + `closeness` tinyint(2) NOT NULL DEFAULT '99', + `info` mediumtext NOT NULL, + `profile_id` int(11) NOT NULL DEFAULT '0' COMMENT 'which profile to display - 0 is public default', + `bdyear` char(4) NOT NULL COMMENT 'birthday notify flag', + `bd` date NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `self` (`self`), + KEY `blocked` (`blocked`), + KEY `readonly` (`readonly`), + KEY `network` (`network`), + KEY `name` (`name`), + KEY `nick` (`nick`), + KEY `attag` (`attag`), + KEY `addr` (`addr`), + KEY `url` (`url`), + KEY `batch` (`batch`), + KEY `nurl` (`nurl`), + KEY `pending` (`pending`), + KEY `hidden` (`hidden`), + KEY `archive` (`archive`), + KEY `forum` (`forum`), + KEY `notify` (`notify`), + KEY `my_perms` (`my_perms`), + KEY `their_perms` (`their_perms`), + KEY `aid` (`aid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `deliverq` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cmd` char(32) NOT NULL, + `item` int(11) NOT NULL, + `contact` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `item` (`item`), + KEY `contact` (`contact`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `event` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `account` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(11) NOT NULL, + `cid` int(11) NOT NULL, + `message_id` char(255) NOT NULL, + `created` datetime NOT NULL, + `edited` datetime NOT NULL, + `start` datetime NOT NULL, + `finish` datetime NOT NULL, + `summary` text NOT NULL, + `desc` text NOT NULL, + `location` text NOT NULL, + `type` char(255) NOT NULL, + `nofinish` tinyint(1) NOT NULL DEFAULT '0', + `adjust` tinyint(1) NOT NULL DEFAULT '1', + `ignore` tinyint(1) NOT NULL DEFAULT '0', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `cid` (`cid`), + KEY `uri` (`message_id`), + KEY `type` (`type`), + KEY `start` (`start`), + KEY `finish` (`finish`), + KEY `adjust` (`adjust`), + KEY `nofinish` (`nofinish`), + KEY `ignore` (`ignore`), + KEY `account` (`account`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `fcontact` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `url` char(255) NOT NULL, + `name` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `request` char(255) NOT NULL, + `nick` char(255) NOT NULL, + `addr` char(255) NOT NULL, + `batch` char(255) NOT NULL, + `notify` char(255) NOT NULL, + `poll` char(255) NOT NULL, + `confirm` char(255) NOT NULL, + `priority` tinyint(1) NOT NULL, + `network` char(32) NOT NULL, + `alias` char(255) NOT NULL, + `pubkey` text NOT NULL, + `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`id`), + KEY `addr` (`addr`), + KEY `network` (`network`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `ffinder` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `uid` int(10) unsigned NOT NULL, + `cid` int(10) unsigned NOT NULL, + `fid` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `cid` (`cid`), + KEY `fid` (`fid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `fserver` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `server` char(255) NOT NULL, + `posturl` char(255) NOT NULL, + `key` text NOT NULL, + PRIMARY KEY (`id`), + KEY `server` (`server`), + KEY `server_2` (`server`), + KEY `posturl` (`posturl`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `fsuggest` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `cid` int(11) NOT NULL, + `name` char(255) NOT NULL, + `url` char(255) NOT NULL, + `request` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `note` text NOT NULL, + `created` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `gcign` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `gcid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `gcid` (`gcid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `gcontact` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` char(255) NOT NULL, + `url` char(255) NOT NULL, + `nurl` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `connect` char(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `nurl` (`nurl`), + KEY `name` (`name`), + KEY `url` (`url`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `glink` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cid` int(11) NOT NULL, + `uid` int(11) NOT NULL, + `gcid` int(11) NOT NULL, + `zcid` int(11) NOT NULL, + `updated` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `cid` (`cid`), + KEY `uid` (`uid`), + KEY `gcid` (`gcid`), + KEY `zcid` (`zcid`), + KEY `updated` (`updated`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `group` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `uid` int(10) unsigned NOT NULL, + `visible` tinyint(1) NOT NULL DEFAULT '0', + `deleted` tinyint(1) NOT NULL DEFAULT '0', + `name` char(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `visible` (`visible`), + KEY `deleted` (`deleted`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `group_member` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `uid` int(10) unsigned NOT NULL, + `gid` int(10) unsigned NOT NULL, + `contact-id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `gid` (`gid`), + KEY `contact-id` (`contact-id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `guid` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `guid` char(64) NOT NULL, + PRIMARY KEY (`id`), + KEY `guid` (`guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `hook` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `hook` char(255) NOT NULL, + `file` char(255) NOT NULL, + `function` char(255) NOT NULL, + `priority` int(11) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `hook` (`hook`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `hubloc` ( + `hubloc_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `hubloc_guid` char(255) NOT NULL DEFAULT '', + `hubloc_guid_sig` char(255) NOT NULL, + `hubloc_hash` char(255) NOT NULL, + `hubloc_flags` int(10) unsigned NOT NULL DEFAULT '0', + `hubloc_url` char(255) NOT NULL DEFAULT '', + `hubloc_url_sig` char(255) NOT NULL, + `hubloc_callback` char(255) NOT NULL DEFAULT '', + `hubloc_connect` char(255) NOT NULL DEFAULT '', + `hubloc_sitekey` text NOT NULL, + PRIMARY KEY (`hubloc_id`), + KEY `hubloc_url` (`hubloc_url`), + KEY `hubloc_guid` (`hubloc_guid`), + KEY `hubloc_flags` (`hubloc_flags`), + KEY `hubloc_guid_sig` (`hubloc_guid_sig`), + KEY `hubloc_url_sig` (`hubloc_url_sig`), + KEY `hubloc_connect` (`hubloc_connect`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `intro` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `uid` int(10) unsigned NOT NULL, + `fid` int(11) NOT NULL DEFAULT '0', + `contact-id` int(11) NOT NULL, + `knowyou` tinyint(1) NOT NULL, + `duplex` tinyint(1) NOT NULL DEFAULT '0', + `note` text NOT NULL, + `hash` char(255) NOT NULL, + `datetime` datetime NOT NULL, + `blocked` tinyint(1) NOT NULL DEFAULT '1', + `ignore` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `fid` (`fid`), + KEY `hash` (`hash`), + KEY `datetime` (`datetime`), + KEY `blocked` (`blocked`), + KEY `ignore` (`ignore`), + KEY `contact-id` (`contact-id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `item` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `uri` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `aid` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(10) unsigned NOT NULL DEFAULT '0', + `wall` tinyint(1) NOT NULL DEFAULT '0', + `parent` int(10) unsigned NOT NULL DEFAULT '0', + `parent_uri` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `thr_parent` char(255) NOT NULL DEFAULT '', + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `owner_xchan` char(255) NOT NULL DEFAULT '', + `author_xchan` char(255) NOT NULL DEFAULT '', + `title` char(255) NOT NULL DEFAULT '', + `body` mediumtext NOT NULL, + `app` char(255) NOT NULL DEFAULT '', + `lang` char(64) NOT NULL DEFAULT '', + `verb` char(255) NOT NULL DEFAULT '', + `obj_type` char(255) NOT NULL DEFAULT '', + `object` text NOT NULL, + `tgt_type` char(255) NOT NULL DEFAULT '', + `target` text NOT NULL, + `postopts` text NOT NULL, + `plink` char(255) NOT NULL DEFAULT '', + `resource_id` char(255) NOT NULL DEFAULT '', + `resource_type` char(16) NOT NULL DEFAULT '', + `attach` mediumtext NOT NULL, + `inform` mediumtext NOT NULL, + `location` char(255) NOT NULL DEFAULT '', + `coord` char(255) NOT NULL DEFAULT '', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, + `item_restrict` int(11) NOT NULL DEFAULT '0', + `item_flags` int(11) NOT NULL DEFAULT '0', + `item_private` tinyint(4) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `uri` (`uri`), + KEY `uid` (`uid`), + KEY `parent` (`parent`), + KEY `created` (`created`), + KEY `edited` (`edited`), + KEY `received` (`received`), + KEY `wall` (`wall`), + KEY `uid_commented` (`uid`,`commented`), + KEY `uid_created` (`uid`,`created`), + KEY `parent_uri` (`parent_uri`), + KEY `aid` (`aid`), + KEY `owner_xchan` (`owner_xchan`), + KEY `author_xchan` (`author_xchan`), + KEY `resource_type` (`resource_type`), + KEY `item_restrict` (`item_restrict`), + KEY `item_flags` (`item_flags`), + KEY `uid_uri` (`uri`,`uid`), + KEY `commented` (`commented`), + KEY `verb` (`verb`), + KEY `item_private` (`item_private`), + FULLTEXT KEY `title` (`title`), + FULLTEXT KEY `body` (`body`), + FULLTEXT KEY `allow_cid` (`allow_cid`), + FULLTEXT KEY `allow_gid` (`allow_gid`), + FULLTEXT KEY `deny_cid` (`deny_cid`), + FULLTEXT KEY `deny_gid` (`deny_gid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `item_id` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `iid` int(11) NOT NULL, + `uid` int(11) NOT NULL, + `sid` char(255) NOT NULL, + `service` char(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `sid` (`sid`), + KEY `service` (`service`), + KEY `iid` (`iid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `locks` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` char(128) NOT NULL, + `locked` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `mail` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `aid` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(10) unsigned NOT NULL, + `guid` char(64) NOT NULL, + `from-name` char(255) NOT NULL, + `from-photo` char(255) NOT NULL, + `from-url` char(255) NOT NULL, + `contact-id` char(255) NOT NULL, + `convid` int(11) NOT NULL, + `title` char(255) NOT NULL, + `body` mediumtext NOT NULL, + `seen` tinyint(1) NOT NULL, + `reply` tinyint(1) NOT NULL DEFAULT '0', + `replied` tinyint(1) NOT NULL, + `unknown` tinyint(1) NOT NULL DEFAULT '0', + `uri` char(255) NOT NULL, + `parent_uri` char(255) NOT NULL, + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`id`), + KEY `reply` (`reply`), + KEY `uid` (`uid`), + KEY `guid` (`guid`), + KEY `seen` (`seen`), + KEY `uri` (`uri`), + KEY `created` (`created`), + KEY `convid` (`convid`), + KEY `unknown` (`unknown`), + KEY `contact-id` (`contact-id`), + KEY `parent_uri` (`parent_uri`), + KEY `aid` (`aid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `manage` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `mid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `mid` (`mid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `notify` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `hash` char(64) NOT NULL, + `name` char(255) NOT NULL, + `url` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `date` datetime NOT NULL, + `msg` mediumtext NOT NULL, + `uid` int(11) NOT NULL, + `link` char(255) NOT NULL, + `parent` int(11) NOT NULL, + `seen` tinyint(1) NOT NULL DEFAULT '0', + `type` int(11) NOT NULL, + `verb` char(255) NOT NULL, + `otype` char(16) NOT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`), + KEY `seen` (`seen`), + KEY `uid` (`uid`), + KEY `date` (`date`), + KEY `hash` (`hash`), + KEY `parent` (`parent`), + KEY `link` (`link`), + KEY `otype` (`otype`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `notify-threads` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `notify-id` int(11) NOT NULL, + `master-parent-item` int(10) unsigned NOT NULL DEFAULT '0', + `parent-item` int(10) unsigned NOT NULL DEFAULT '0', + `receiver-uid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `master-parent-item` (`master-parent-item`), + KEY `receiver-uid` (`receiver-uid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `outq` ( + `outq_hash` char(255) NOT NULL, + `outq_account` int(10) unsigned NOT NULL DEFAULT '0', + `outq_channel` int(10) unsigned NOT NULL DEFAULT '0', + `outq_xchan` char(255) NOT NULL DEFAULT '', + `outq_hub` char(255) NOT NULL DEFAULT '', + `outq_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `outq_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `outq_msg` mediumtext NOT NULL, + PRIMARY KEY (`outq_hash`), + KEY `outq_account` (`outq_account`), + KEY `outq_channel` (`outq_channel`), + KEY `outq_xchan` (`outq_xchan`), + KEY `outq_hub` (`outq_hub`), + KEY `outq_created` (`outq_created`), + KEY `outq_updated` (`outq_updated`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `pconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL DEFAULT '0', + `cat` char(255) CHARACTER SET ascii NOT NULL, + `k` char(255) CHARACTER SET ascii NOT NULL, + `v` mediumtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `access` (`uid`,`cat`,`k`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `photo` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `aid` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(10) unsigned NOT NULL, + `contact-id` int(10) unsigned NOT NULL DEFAULT '0', + `guid` char(64) NOT NULL, + `resource_id` char(255) NOT NULL, + `created` datetime NOT NULL, + `edited` datetime NOT NULL, + `title` char(255) NOT NULL, + `desc` text NOT NULL, + `album` char(255) NOT NULL, + `filename` char(255) NOT NULL, + `type` char(128) NOT NULL DEFAULT 'image/jpeg', + `height` smallint(6) NOT NULL, + `width` smallint(6) NOT NULL, + `data` mediumblob NOT NULL, + `scale` tinyint(3) NOT NULL, + `profile` tinyint(1) NOT NULL DEFAULT '0', + `allow_cid` mediumtext NOT NULL, + `allow_gid` mediumtext NOT NULL, + `deny_cid` mediumtext NOT NULL, + `deny_gid` mediumtext NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `resource-id` (`resource_id`), + KEY `album` (`album`), + KEY `scale` (`scale`), + KEY `profile` (`profile`), + KEY `type` (`type`), + KEY `contact-id` (`contact-id`), + KEY `aid` (`aid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `profile` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `profile_guid` char(64) NOT NULL DEFAULT '', + `aid` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(11) NOT NULL, + `profile_name` char(255) NOT NULL, + `is_default` tinyint(1) NOT NULL DEFAULT '0', + `hide_friends` tinyint(1) NOT NULL DEFAULT '0', + `name` char(255) NOT NULL, + `pdesc` char(255) NOT NULL, + `dob` char(32) NOT NULL DEFAULT '0000-00-00', + `address` char(255) NOT NULL, + `locality` char(255) NOT NULL, + `region` char(255) NOT NULL, + `postal_code` char(32) NOT NULL, + `country_name` char(255) NOT NULL, + `hometown` char(255) NOT NULL, + `gender` char(32) NOT NULL, + `marital` char(255) NOT NULL, + `with` text NOT NULL, + `howlong` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `sexual` char(255) NOT NULL, + `politic` char(255) NOT NULL, + `religion` char(255) NOT NULL, + `pub_keywords` text NOT NULL, + `prv_keywords` text NOT NULL, + `likes` text NOT NULL, + `dislikes` text NOT NULL, + `about` text NOT NULL, + `summary` char(255) NOT NULL, + `music` text NOT NULL, + `book` text NOT NULL, + `tv` text NOT NULL, + `film` text NOT NULL, + `interest` text NOT NULL, + `romance` text NOT NULL, + `work` text NOT NULL, + `education` text NOT NULL, + `contact` text NOT NULL, + `homepage` char(255) NOT NULL, + `photo` char(255) NOT NULL, + `thumb` char(255) NOT NULL, + `publish` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `guid` (`profile_guid`,`uid`), + KEY `uid` (`uid`), + KEY `locality` (`locality`), + KEY `hometown` (`hometown`), + KEY `gender` (`gender`), + KEY `marital` (`marital`), + KEY `sexual` (`sexual`), + KEY `publish` (`publish`), + KEY `aid` (`aid`), + KEY `is_default` (`is_default`), + KEY `hide_friends` (`hide_friends`), + KEY `postal_code` (`postal_code`), + KEY `country_name` (`country_name`), + KEY `profile_guid` (`profile_guid`), + FULLTEXT KEY `pub_keywords` (`pub_keywords`), + FULLTEXT KEY `prv_keywords` (`prv_keywords`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `profile_check` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `uid` int(10) unsigned NOT NULL, + `cid` int(10) unsigned NOT NULL DEFAULT '0', + `dfrn_id` char(255) NOT NULL, + `sec` char(255) NOT NULL, + `expire` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `cid` (`cid`), + KEY `dfrn_id` (`dfrn_id`), + KEY `sec` (`sec`), + KEY `expire` (`expire`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `queue` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `cid` int(11) NOT NULL, + `network` char(32) NOT NULL, + `created` datetime NOT NULL, + `last` datetime NOT NULL, + `content` mediumtext NOT NULL, + `batch` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `cid` (`cid`), + KEY `network` (`network`), + KEY `created` (`created`), + KEY `last` (`last`), + KEY `batch` (`batch`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `register` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `hash` char(255) NOT NULL, + `created` datetime NOT NULL, + `uid` int(10) unsigned NOT NULL, + `password` char(255) NOT NULL, + `language` char(16) NOT NULL, + PRIMARY KEY (`id`), + KEY `hash` (`hash`), + KEY `created` (`created`), + KEY `uid` (`uid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `session` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `sid` char(255) NOT NULL, + `data` text NOT NULL, + `expire` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `sid` (`sid`), + KEY `expire` (`expire`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `spam` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` int(11) NOT NULL, + `spam` int(11) NOT NULL DEFAULT '0', + `ham` int(11) NOT NULL DEFAULT '0', + `term` char(255) NOT NULL, + `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `spam` (`spam`), + KEY `ham` (`ham`), + KEY `term` (`term`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `term` ( + `tid` int(10) unsigned NOT NULL AUTO_INCREMENT, + `aid` int(10) unsigned NOT NULL DEFAULT '0', + `uid` int(10) unsigned NOT NULL DEFAULT '0', + `oid` int(10) unsigned NOT NULL, + `otype` tinyint(3) unsigned NOT NULL, + `type` tinyint(3) unsigned NOT NULL, + `term` char(255) NOT NULL, + `url` char(255) NOT NULL, + PRIMARY KEY (`tid`), + KEY `oid` (`oid`), + KEY `otype` (`otype`), + KEY `type` (`type`), + KEY `term` (`term`), + KEY `uid` (`uid`), + KEY `aid` (`aid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tokens` ( + `id` varchar(40) NOT NULL, + `secret` text NOT NULL, + `client_id` varchar(20) NOT NULL, + `expires` int(11) NOT NULL, + `scope` varchar(200) NOT NULL, + `uid` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `client_id` (`client_id`), + KEY `expires` (`expires`), + KEY `uid` (`uid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `xchan` ( + `xchan_hash` char(255) NOT NULL, + `xchan_guid` char(255) NOT NULL DEFAULT '', + `xchan_guid_sig` char(255) NOT NULL DEFAULT '', + `xchan_pubkey` text NOT NULL, + `xchan_photo_mimetype` char(32) NOT NULL DEFAULT 'image/jpeg', + `xchan_photo_l` char(255) NOT NULL DEFAULT '', + `xchan_photo_m` char(255) NOT NULL DEFAULT '', + `xchan_photo_s` char(255) NOT NULL DEFAULT '', + `xchan_addr` char(255) NOT NULL DEFAULT '', + `xchan_profile` char(255) NOT NULL DEFAULT '', + `xchan_name` char(255) NOT NULL DEFAULT '', + `xchan_network` char(255) NOT NULL DEFAULT '', + `xchan_photo_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `xchan_name_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`xchan_hash`), + KEY `xchan_guid` (`xchan_guid`), + KEY `xchan_addr` (`xchan_addr`), + KEY `xchan_profile` (`xchan_profile`), + KEY `xchan_name` (`xchan_name`), + KEY `xchan_network` (`xchan_network`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/install/htconfig.sample.php b/install/htconfig.sample.php new file mode 100644 index 000000000..dc46d646c --- /dev/null +++ b/install/htconfig.sample.php @@ -0,0 +1,93 @@ +<?php + +// If automatic system installation fails: + +// Copy or rename this file to .htconfig.php + +// Why .htconfig.php? Because it contains sensitive information which could +// give somebody complete control of your database. Apache's default +// configuration denies access to and refuses to serve any file beginning +// with .ht + +// Then set the following for your MySQL installation + +$db_host = 'your.mysqlhost.com'; +$db_user = 'mysqlusername'; +$db_pass = 'mysqlpassword'; +$db_data = 'mysqldatabasename'; + +// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles". +// It can be changed later and only applies to timestamps for anonymous viewers. + +$default_timezone = 'America/Los_Angeles'; + +// What is your site name? + +$a->config['sitename'] = "Friendica Social Network"; + +// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED. +// Be certain to create your own personal account before setting +// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on +// the registration page. REGISTER_APPROVE requires you set 'admin_email' +// to the email address of an already registered person who can authorise +// and/or approve/deny the request. + +// In order to perform system administration via the admin panel, admin_email +// must precisely match the email address of the person logged in. + +$a->config['system']['register_policy'] = REGISTER_OPEN; +$a->config['register_text'] = ''; +$a->config[system']['admin_email'] = ''; + +// Maximum size of an imported message, 0 is unlimited + +$a->config['max_import_size'] = 200000; + +// maximum size of uploaded photos + +$a->config['system']['maximagesize'] = 800000; + +// Location of PHP command line processor + +$a->config['php_path'] = 'php'; + +// You shouldn't need to change anything else. +// Location of global directory submission page. + +$a->config['system']['directory_submit_url'] = 'http://dir.friendika.com/submit'; +$a->config['system']['directory_search_url'] = 'http://dir.friendika.com/directory?search='; + +// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts + +$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com'; + +// Server-to-server private message encryption (RINO) is allowed by default. +// Encryption will only be provided if this setting is true and the +// PHP mcrypt extension is installed on both systems + +$a->config['system']['rino_encrypt'] = true; + +// allowed themes (change this from admin panel after installation) + +$a->config['system']['allowed_themes'] = 'dispy,quattro,vier,darkzero,duepuntozero,greenzero,purplezero,slackr,diabook'; + +// default system theme + +$a->config['system']['theme'] = 'duepuntozero'; + + +// By default allow pseudonyms + +$a->config['system']['no_regfullname'] = true; + +// If set to true the priority settings of ostatus contacts are used +$a->config['system']['ostatus_use_priority'] = false; + +// If enabled, all items are cached in the given directory +$a->config['system']['itemcache'] = ""; + +// If enabled, the lockpath is used for a lockfile to check if the poller is running +$a->config['system']['lockpath'] = ""; + +// If enabled, the MyBB fulltext engine is used +// $a->config['system']['use_fulltext_engine'] = true; |