© Steve Dunstan 2002. See gpl.txt for license details.
Requirements | Installing | Upgrading | Security | Backing Up and Restoring Your Database | Common Problems | Support | Development | Thank You | Disclaimer
Requirements

- e107 requires a webserver that has PHP 4.3 (or newer) and MySQL 3.22 (or newer), contact your host if you're not sure if you have these installed.
- If you host your own site you can download PHP and MySQL and install them yourself, both are free.
- You will need your MySQL username and password, and a database for content storage. Don't worry if you only have one database, e107 is happy to share it's database with other applications.
- A complete e107 install requires approximately 9MB of disk space on your server, although this should be reduced dramatically for most users by removing the plugins and themes they won't be using, simply by removing the relevant folder.

Installing

- After downloading and unzipping the package, you need to upload the files to your server using an FTP client. e107 will happily run in your webserver root or in a sub-directory ...
  - Open your FTP client and connect to your webserver
  - Move into the folder on your webserver where web pages are stored, generally it's 'public_html', 'www' or 'html'
  - Copy all the files from the unzipped e107 package onto your webserver - this could take a while, time for a cup of coffee!
- If you have the correct permissions on your server you can use an alternative (and much quicker) method to upload the files ...
  - Download e107 in tar.gz format from e107.org
  - Using your FTP client, upload the tar.gz to your webserver without unzipping it first
  - Now open a shell prompt, and navigate to the folder where you uploaded the e107 tar.gz
  - type tar xvzf file.tar.gz to unpack the archive

- You now need to set the file permissions of some files for e107 to access them correctly. Set the file permissions to 0777 (readable writable by the server), if a series of checkboxes appear tick every box. Here is a list of the files you need to ensure the server can read / write to...
  - e107_config.php
  - e107_files/public/
  - e107_files/cache/
  - e107_files/public/avatars/
  - e107_plugins/
  - e107_themes/

- Now open your web browser and navigate to install.php, for example http://yourwebspace.com/install.php or http://yourwebspace.com/e107/install.php
  - If all the files have been uploaded successfully, you will see the first page of the install script. Choose the language you wish to use during the procedure and click the button to continue
  - e107 will now carry out a series of tests to see if requirements are met and all files that need permissions set are ok to be written to. If you get a warning about MySQL don't worry too much, some versions of MySQL don't return the correct version, or return nothing at all. Click on the button to continue if all criteria have been met, or else repair the problem and retest.
  - Next you have to enter your MySQL details. Enter your server name (generally 'localhost'), username and password. If you don't know your username and/or password contact your webhosts. Now enter the name of the database you want e107 to use. If you have the correct permissions you can create the database directly from the install script should you want to
  - If all is well e107 should now connect to your MySQL database, if any error messages are shown return to the previous page and make sure you entered your details correctly
  - Now you have to enter your main admin details. Enter your username, password and email address, you can change your email address and password at a later stage but your username cannot be changed, so make sure you enter it correctly
  - e107 will now create the MySQL database tables and populate them with settings etc
  - If all is well, the last button will take you to your new website. There, all done, that wasn't too bad was it?!

- You must now set the file permissions of the main config file back to 0644 ...
  - Using your FTP client, select the e107_config.php file
  - Set its file permission (using the method explained above) to 0644
- Now delete the install.php file from your server, if you do not it could pose a potential security risk to your site

Upgrading
Please click here for instructions on upgrading your 0.6175 website to 0.7.
Using phpMyAdmin to backup your database

- First, navigate to your phpMyAdmin page and log in
- From the dropdown box on the left (or the text link) click on your e107 database
- In the main page, click on the 'Export' tab
- In the right box, make sure 'Add drop table', 'Add AUTO_INCREMENT value' and 'Enclose table and field names with backquotes' are ticked
- Make sure the main 'Structure' and 'Data' boxes are ticked
- Tick 'Save as file'
- If you want the backup file compressed, tick either 'zipped' or 'gzipped'
- Click 'Go'

- To restore a backup, Click on the 'SQL' tab at the top and browse to your backup, you may need to empty your existing database before you can restore the backup

Security
Security has been a primary concern since the first released versions of e107, and for this reason there are some very easy measures you can take to make your site more secure ...

- Rename your e107_admin directory: this will make it less obvious to other e107 users where your admin files are.
- The procedure to change your directory names has changed. The definitions have been moved to e107_config.php.
- If you are UPGRADING from a very old version of e107 (e.g. less than v.615), you will need to open class2.php and find the following lines.
  // If you need to change the names of any of your directories, change the value here then rename the respective folder on your server ...
  $ADMIN_DIRECTORY = "e107_admin/";
  $FILES_DIRECTORY = "e107_files/";
  $IMAGES_DIRECTORY = "e107_images/";
  $THEMES_DIRECTORY = "e107_themes/";
  $PLUGINS_DIRECTORY = "e107_plugins/";
  $HANDLERS_DIRECTORY = "e107_handlers/";
  $LANGUAGES_DIRECTORY = "e107_languages/";
  $HELP_DIRECTORY = "e107_docs/help/";
  $DOWNLOADS_DIRECTORY = "e107_files/downloads/";
- Cut these lines from class2.php and paste them into e107_config.php. Now you can change the folder names from here.
- If this is a NEW INSTALL the folder names are already in e107_config.php. They have been left in class2.php for backwards compatibility. They will be removed from there in the future.
- This procedure depends on you completing the steps above and making sure the file paths are located in e107_config.php now.
- To rename your e107_admin directory (or any of your other directories), first rename the folder in the usual manner using your FTP client. Then open e107_config.php from the root directory of your e107 installation in a text editor, and find the following line near the top of the file ...
  $ADMIN_DIRECTORY = "e107_admin/";
  ... and change e107_admin/ to the name you've renamed it on your server
- You can change the name of all your e107 directories using this method
- There are some security settings that you can change from your admin area. Go to the preferences page and you'll see a section marked Security

Common Problems

- If for any reason you get a critical error message concerning your core settings, you can easily reset them to default using the resetcore utility. You can find this in your e107_files folder, use your web browser to navigate to http://yoursite.com/e107_files/resetcore/resetcore.php and follow the instructions. This will not affect any content on your site; it will merely reset your core settings, so your site theme etc will revert to default. You can make a backup of your core at any time and restore this from the resetcore utility, to backup your core go to your admin section, click on Database ten click on Backup Core
- If after installing e107 you get a blank page, check your error_reporting level in your php.ini file. This is generally caused by an error on your site not being reported because your error reporting is set too low, or turned off completely. If you don't have access to your php.ini contact your web host
- If you are seeing Undefined Variable or Notice errors on your site, your error_reporting is set too high. Make sure it's set to E_ERROR | E_WARNING | E_PARSE in your php.ini, again if you don't have access contact your web hosts and ask them to change it

Support
All these places are very friendly, please don't hesitate to use them even if you think your question is trivial, you'll get a polite reply.

- e107 forums
  http://e107.org/forum.php
- e107 faq
  http://e107faq.bkwon.net
- IRC channel
  #e107 on irc.freenode.net
- Third party plugin support: e107coders
  http://e107coders.org/
- Third party theme support: e107themes
  http://e107themes.org/

Development
e107 has been tested, and developed on Apache 1 and 2, IIS, and PHP 4.3+ (Including 5.0).
It is developed by the e107 dev team (Jalist, McFly, Cameron, Streaky, SweetAs, Asperon, Que, Lolo, Chavo, Lisa, MrPete).
If you have made changes to the core you think might benefit others please let us know about them in the forums at e107.org :)
Thank you
Thanks first to jalist for starting this whole thing out and sticking with it for so long.

- Thanks mainly to Terrence, Damon, que, nalenb, Dawn, HeX0R, JuhaH, bkwon, Knight, Aldrin for their unstinting support.
- Also to everyone else who has assisted and submitted translations/fixes etc
- Thanks to CraHan, NeXTer, Kuhndog, wols, [steev], rootrider, Claymore, demigod, maaneeack, Schmots, dreamer, galois and the others in [#ls.g] for their friendship.
- Thanks to Jérôme C. Meijers and Craig Bramscher
- e107.net for donated hosting
- Thanks to all of you who have taken the time to create plugins/themes/hacks, answer questions in the forums and IRC channel etc. We have a wonderful community here and it's because of people like you.
- And thanks to you for trying e107, I hope you like it and it fits your website needs. If it doesn't try OpenSourceCMS for a full list of alternative systems.
- A couple of third-party scripts have been integrated into e107 to make your life easier, so thank you to ...
  - MagpieRSS (http://magpierss.sourceforge.net) MagpieRSS provides an XML-based (expat) RSS parser in PHP.
  - PCLZip (http://www.phpconcept.net/pclzip/) PclZip library offers compression and extraction functions for Zip formatted archives (WinZip, PKZIP).
  - PCLTar (http://www.phpconcept.net/pcltar/) PclTar offer the ability to archive a list of files or directories with or without compression. The archives created by PclTar are readable by most of gzip/tar applications and by the Windows WinZip application.
  - TinyMCE (http://tinymce.moxiecode.com) TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.
  - Nuvolo Icons (http://www.icon-king.com) Icons used in e107
  - PHPMailer (http://phpmailer.sourceforge.net) Full featured email transfer class for PHP
  - Brainjar DHTML Menu (http://www.brainjar.com/dhtml/menubar/) Menu system used in several themes
  - DHTML / JavaScript Calendar (http://www.dynarch.com/projects/) Popup calendar widget
  - FPDF (http://www.fpdf.org) PDF support
  - UFPDF (http://www.acko.net/node/56) UTF-8 PDF support
  Both these scripts are released under the GPL license and as stated the copyright information has been left intact in the scripts themselves, if you want to use these scripts in your own code you must abide by the GPL license.

Disclaimer
This software is free and as such comes without warranty as stated in the GNU GPL License (included in this package). Any problems encountered due to deficiencies in this software are not the responsibility of the author.