c:/inetpub/wwwroot/
), on *nix paths start at root (/
) like (/var/www/
) http://www.foo.com/
)To install and use Geeklog you will need to have a server running Apache or Microsoft IIS with PHP 4.1.0 or higher installed. You will also need either MySQL 3.23.2 or greater or Microsoft SQL Server 2000 or newer.
Before installing Geeklog for the first time, please make sure you:
Download the current version of Geeklog from Geeklog.net.
Unpack the downloaded tarball file by running:
tar -zxvf geeklog-1.5.1.tar.gz
Note: Some users have reported that WinZip corrupts certain Geeklog files during decompression. This will cause errors during the installation process. You are strongly urged not to use WinZip. Try 7-Zip or WinRAR if you must decompress the file locally.
Create a blank MySQL or Microsoft SQL database and a user account with privileges to modify it. Your hosting provider may have already set up a database and account for you, contact them if you need assistance with this step.
Place the contents of geeklog-1.5.1/public_html/
into your web root directory on your web server. The web root directory is often named "public_html", "htdocs", or "www".
Next, place the remaining contents of geeklog-1.5.1/
into either the parent directory of your root web directory (recommended) or any other non public folder and the installation wizard will attempt to locate them automatically. If it cannot you will be asked to specify their paths during installation. This is done as a security measure to prevent access to Geeklog system files by Internet users.
Note: If your hosting provider does not allow you to place files outside of your root web directory:
Open your browser and navigate to the Geeklog installation wizard file admin/install/index.php
on your web server. The path to this file will depend on where you chose to put the Geeklog files on your web server. The default location is:
http://[your_geeklog_site]/admin/install/index.php
The Geeklog installation wizard was designed to automate the install process. Simply follow the installation steps.
Once you have completed the installation be sure to delete the admin/install
directory. Also, read the first story on your Geeklog site to learn how to log in as the administrator and change the default password.
Upgrading is no different than a New Installation except your database already exists and needs to be updated.
Take extreme care to back up any files from your current Geeklog installation that have any custom code in them, especially lib-custom.php (where all custom code should reside). Be sure to back up any modified themes, images, and static pages from your current installation.
Also, please be sure to back up your database. We can't stress the importance of backing up your files and database enough.
YOU HAVE BEEN WARNED.
Download the current version of Geeklog from Geeklog.net.
Unpack the downloaded tarball file by running:
tar -zxvf geeklog-1.5.1.tar.gz
Note: Some users have reported that WinZip corrupts certain Geeklog files during decompression. This will cause errors during the installation process. You are strongly urged not to use WinZip. Try 7-Zip or WinRAR if you must decompress the file locally.
Place the contents of geeklog-1.5.1/
into the same directory your old installation was located. For instance, if your old Geeklog was in /usr/home/www/geeklog/
, then your new installation should also be in /usr/home/www/geeklog/
.
When upgrading from Geeklog 1.4.1 or earlier: Put the config.php files from your old install back into their place now (the main config.php and those for the plugins). The install script will read these files during the upgrade to pre-populate the new Configuration admin panel with your settings. If you skip this step, you will end up with default settings for Geeklog and the pre-installed plugins.
When upgrading from Geeklog 1.5.0 or later: Put the db-config.php and siteconfig.php from your old install back into their place now, overwriting the files of the same name that came in the tarball. Otherwise, you would have to enter your database credentials and other information during the upgrade process again.
Open your browser and navigate to the Geeklog installation wizard file admin/install/index.php
on your web server. The path to this file will depend on where you chose to put the Geeklog files on your web server. The default location is:
http://[your_geeklog_site]/admin/install/index.php
The Geeklog installation wizard was designed to automate the upgrade process. Simply follow the installation steps.
Once you have completed the upgrade be sure to delete the admin/install
directory.
Before you go any further, please open siteconfig.php and double check your paths! Bad paths, or typos in the paths, will cause all sorts of errors in Geeklog.
When you get an error message, please read it carefully. Even if you're not familiar with PHP, it will give you a hint about what is wrong. Pay special attention at the paths contained in the error message. As mentioned before, wrong paths are the most common cause for problems.
If you get more than one error message, always start with the very first error - the others will often go away automatically once you've fixed the first one.
Error: Parse error: parse error in /path/to/your/siteconfig.php on line 20
Answer: A parse error usually hints at a typo you've made. Check the file at the given line (the actual error may be in the line preceding the one mentioned in the error message).
Common problems are:
Joe's Site
as Joe\'s Site
, escaping the extra quote)
Error: Warning: main(some/path/to/system/databases/mysql.class.php): failed to open stream: No such file or directory in /path/to/your/system/lib-database.php on line 100
Fatal error: main(): Failed opening required 'some/path/to/system/databases/mysql.class.php' (include_path='.:/some/other/path/') in /some/path/to/system/lib-database.php on line 100
Answer: The path that you've entered for the $_CONF['path']
variable in siteconfig.php is not correct. Make sure you typed it correctly. Also make sure it uses an absolute path, i.e. one that starts at the root of your file system (and that it starts with a / under Unix/Linux or a drive letter under Windows).
Error: 1050: Table 'gl_access' already exists
Answer: You must have run the install script once before (possibly unsuccessfully). To be on the safe side, drop the database and create a new, empty database and try running the install script again.
Error: Parse error: parse error in ../../lib-common.php on line 2231
Fatal error: Cannot instantiate non-existent class: template in ../../lib-common.php on line 335
Or:
Parse error: parse error in /path/to/geeklog/public_html/lib-common.php on line 3036
Fatal error: Call to undefined function: plg_showcenterblock() in /path/to/geeklog/public_html/index.php on line 67
Or:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /path/to/geeklog/public_html/lib-common.php on line 3815
Fatal error: Cannot instantiate non-existent class: template in /path/to/geeklog/public_html/lib-common.php on line 709
Answer: All of the above cases (and similar "parse error" messages you may get for lib-common.php, typically with a line number in the 3000 or 4000 range) indicate a corrupted lib-common.php
file.
As noted at the top of this document this is usually caused by one of the following:
Error: Warning: mysql_connect(): Access denied for user: 'username@localhost' (Using password: YES) in /path/to/geeklog/system/databases/mysql.class.php on line 104
Cannnot connect to DB server
Answer: First of all, make sure the database settings in siteconfig.php
are correct, specifically the name and password of your MySQL user, the name of your database, and the name of your MySQL server.
If you're running your own server, you may need to give your MySQL user proper permissions. Log in to MySQL as the MySQL root user and issue these commands:
GRANT ALL PRIVILEGES ON [database_name] TO [user@host] IDENTIFIED BY '[password]';
FLUSH PRIVILEGES;
Replace the [lower-case] strings with the actual values.
If you want (or need) to be more restrictive with database permissions: You will need to at least grant the ALTER, CREATE, DELETE, INSERT, SELECT, and UPDATE permissions to your database user. ALTER and CREATE permissions are only needed for installing and upgrading Geeklog, as well as for installing plugins and other add-ons.
Error: Warning: fopen("/some/path/logs/error.log", "a") - Permission denied in /some/path/public_html/lib-common.php on line 1440
Answer: Make sure that the logs/ directory AND the files in it have permissions of at least 775. You may need to make the permissions 777 if 775 isn't working for you. For good measure, make sure the public_html/backend
directory and the geeklog.rss file have the same 775 or 777 permissions.
Tip: Use the script that is located at http://yourgeeklogsite/admin/install/check.php
to test if all the permissions have been set up correctly.
Whenever someone tries to log in or out, the following error is produced:
Cannot add header information - headers already sent by (output started at /usr###/home/<userid>/public_html/geeklog/siteconfig.php:589) in /usr###/home/<userid>/public_html/geeklog/system/lib-sessions.php on line 133
Answer: Make sure that your siteconfig.php file does not contain any "whitespace" after the closing ?>
at the end of the file. I.e. there should not be anything (not even blanks or empty lines) after those two characters.
If you still have problems, please do one or more of the following:
Go to http://www.geeklog.net and check out the Support section. The Support section includes a FAQ and a search system (try searching for the error message, if you get one).
Visit the mailing list archives at http://lists.geeklog.net/pipermail/geeklog-users/. You can also subscribe to the mailing list and post your question to the Geeklog community.
Try the chat room at irc.freenode.net, channel #geeklog
. Please have all your path information in siteconfig.php and lib-common.php readily available.
Try entering the text of the error message on Google. Chances are you will find someone else who had the same problem and fixed it. And sometimes searching for a specific error will cause Google to bring up broken pages that have the same error.