fbpx

What is Geeklog CMS Portal?

  • Posted by: Dinsol.com
Geeklog CMS Portal Hosting with cPanel

Geeklog CMS Portal Version : 2.2.1sr1

Geeklog is an open source application for managing dynamic web content. It is written in PHP and supports MySQL or PostgreSQL as the database backend.”Out of the box”, Geeklog is a CMS, or a blog engine with support for comments, trackbacks, multiple syndication formats, spam protection, and all the other vital features of such a system.The core Geeklog distribution can easily be extended by the many community developed plugins and other add-ons to radically alter its functionality. Available plugins include forums, image galleries, and many more

Features of Geeklog

Geeklog is a PHP/MySQL based application for managing dynamic web content. “Out of the box”, it is a blog engine, or a CMS with support for comments, trackbacks, multiple syndication formats, spam protection, and all the other vital features of such a system.

Blog/CMS Features

  • Create, Schedule, Post and Edit articles in multiple topics
  • Save story drafts until they are ready for publishing.
  • Control over formatting used in articles (HTML whitelists)
  • Control over acceptable content (filtering of offensive language)
  • Embed images or other content in articles
  • Multiple Authors can post
  • Submissions from users
  • Support for comments, trackbacks and pingbacks
  • Export and import in all common syndication formats (RSS/RDF/Atom etc)
  • Spam detection and rejection
  • Robust calendar feature with support for personalized calendars.
  • Support for OpenID, OAuth, and other remote authentication methods.
  • Extendible via numerous Open Source plugins.
  • Support for WYSIWYG HTML editors (includes CKEditor)
  • Support for Autotags (also called Short Codes)

Administration Features

  • Easy to install with an automated installer
  • Fully support for internationalization and localization
  • Easy to use admin interface
  • A fully functional File Manager
  • Admin interface has complete configurability for all Geeklog functions.
  • User-specified theming engine for custom look and feel

Security Features

  • User accounts and access controls.
  • Robust *nix-like security model for all objects which can be extended for use in plugins
  • Access can be defined for each article, topic etc
  • All passwords are stored encrypted.
  • All admin access is logged.
  • All errors are logged.
  • Complete error logging on all forms and SQL calls.

Developer Features

  • Plugin support with API for developers.
  • A fully configurable block system, with php-in-block support.
  • Includes jQuery and jQuery UI javascript libraries
  • Includes the css framework Uikit
  • Scripts class for easy access to jQuery and your own libraries
  • Well organized codebase, use of PHP’s Object-Oriented features.
  • Thin database abstraction layer allowing Geeklog to be ported to DBMS’s other than the defaults (MySQL and PostgreSQL supported directly).

Introduction

Geeklog was originally developed for the Security Geeks web site and was originally authored by Jason Whittenburg. In early 2001, Jason decided it was time to devote his time to other things and handed the project over to Tony Bibbs. Three years later, Tony handed the project over to Dirk Haun, who has since been acting as the Geeklog maintainer.

Geeklog is bona fide open-source software and has been released under the GNU GPLv2 for use by others. Configuring Geeklog is meant to be an easy process though it will require you to have access to several components of your system.

Dinsol Global ( www.dinsol.com ) offers Geeklog CMS Portal installation facility within few clicks without downloading and going into time consuming configuration & settings including databases. This script along with 300+ others are available with all cPanel Web Hosting Plans which is very easy to explore, use and manage. Visit www.dinsol.com for more details and information

Installing Geeklog

Glossary

  • Directory: Same as a folder.
  • Path: A physical location on a server that describes where files and directories are. On Windows paths begin with the drive letter (c:/inetpub/wwwroot/), on *nix paths start at root (/) like (/var/www/)
  • public_html: Common name for the directory on a webserver that contains all files that are accessible via a URL (other common names: htdocs, www)
  • URL: Uniform Resource Locator, the address of a specific piece of information on the web (http://www.foo.com/)

Installation Requirements

Required Software

To install and use Geeklog you will need to have a server running Apache or Microsoft IIS with PHP 5.6.4 or higher installed (PHP 7.X is supported). PHP extensions required include:

  • mbstring
  • bzip2
  • mysql or mysqli (To enable MySQL support)
  • pgsql (To enable Postgresql support)
  • OpenSSL (To enable the Geeklog OAuth Login process)
  • JSON (For Filemanager and Database tools)
  • fileinfo (To enable thumbnail creation of images in articles)

You will also need either MySQL 4.1.3 or later (MariaDB 5.1 or later will also work), or PostgreSQL 9.1.7 or greater.

When creating your database you will have to figure out what database collation you will use. Currently we recommend using UTF-8 (utf8mb4 for MySQL) character sets as this by far supports the most languages (and emojis as well). This means the database collation utf8mb4_general_ci for MySQL or en_US.UTF-8 for PostgreSQL. Plus if you plan to have a multi language site this will ensure all your content (independent of language) will be able to be stored correctly as they will be able to handle the character sets of different languages. If you set your database collations to one of these, your character sets in the Geeklog Configuration will be updated automatically during the install.

During the install process you can indicate whether to use UTF-8 as the default character set for your site independent of the language you are using. This will set the database character set to UTF-8. If you have checked this setting, make sure your database collation is compatible with the character set (usually for MySQL this is either utf8_general_ci or, if you wish to support emojis utf8mb4_general_ci). Checking this will not change the collation of your database, this must be done manually before you proceed with the install. If you leave ‘Use UTF-8’ unchecked your installs default language selection character set will be used.

Geeklog supports other languages that are not listed in the install. The easiest way to support these languages is to use a UTF-8 database collation and then once the install is complete go into the Geeklog Configuration and change the language to the one you want. If you rather use the database collation specific for your language you will either have to pick an install language that uses the same character set, or after the install, manually update the settings in siteconfig.php and dbconfig.php files to use the correct character sets. You will then have to update your collation for the Geeklog database, tables and columns. To find out what character set the other languages use, you will need to check that actual language file located in the Geeklog languages directory.

Note for PostgreSQL users: Geeklog currently requires that the Postgres option standard_conforming_strings is set to off (it is on by default as of PostgreSQL 9.1).

Note for MySQL users: As of version 5.5.3 MySQL supports 4-byte characters. In this case if you want to support for example emoji icons characters which are 4 bytes you will need to use a collation which supports it like utf8mb4_general_ci. For existing Geeklog databases which are using a different collation you can use a tool like phpMyAdmin to change your database default collation along with all the table collations. Be warned depending on what your initial collation is you may need to also update the data in your tables.

Things You Should Know

Before installing Geeklog for the first time, please make sure you:

  • Know how to determine the path of your root web directory. (What is a path?)
  • Have the ability to unpack the downloaded Geeklog tarball file.
  • Have the ability to create a new database or have access to an existing one.
  • Have a db user that can modify the database. For MySQL this includes a user that has been granted all privileges on the database (Plus the LOCK permission which is not included in the ALL permissions when granting permissions).
  • Have access to your web server via SSH or FTP so you can change permissions on a few files and directories.

New Installation

  1. Download the current version of Geeklog from Geeklog.net.
  2. Unpack the downloaded tarball file by running: tar -zxvf geeklog-2.2.1sr1.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.
  3. Create a blank MySQL or PostgreSQL database and a user account with privileges to modify it. For MySQL this includes a user that has been granted all privileges on the database (including LOCK which is not included in the ALL permission). Your hosting provider may have already set up a database and account for you, contact them if you need assistance with this step.
  4. Place the contents of geeklog-2.2.1sr1/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-2.2.1sr1/ 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:
    • Create an inconspicuous directory (i.e. don’t name it “geeklog”) in your root web directory.
    • Place these system files in that directory.
    • Password protect it using an .htaccess file or similar.
  5. 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.
  6. 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

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.

  1. Download the current version of Geeklog from Geeklog.net.
  2. Unpack the downloaded tarball file by running: tar -zxvf geeklog-2.2.1sr1.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.
  3. Place the contents of geeklog-2.2.1sr1/ 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/.
  4. Depending on the version you’re upgrading from:
    • 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: You can 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.
  5. 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.
  6. Once you have completed the upgrade be sure to delete the admin/install directory.

Migrating

The install script’s “Migrate” option will help you move your site to another server or domain name. It will update the configuration information stored in the database and can also update URLs in content, such as articles (in case the domain name or URL of your Geeklog site changed).

After clicking on “Migrate”, you will have to enter the database credentials for your (new) database server, as usual. Note that you don’t need to enter a table prefix, as the Migrate option will detect it automatically.

You then have the option to upload a database backup from your computer, to import from a backup that’s already on the server (in Geeklog’s backups directory), or you can use the current content of the database, in case you already imported it through other means.

Note: Uploading a backup file from your computer will only work as long as the size of the backup file is below the server’s max. upload limit. The max. allowed size will be displayed when you select this option. If your backup file is over that limit, try compressing it (zip or gzip should work) or use one of the other two options.

Common Problems and Troubleshooting

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.

Common errors (Line numbers will vary):

  • 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:
    • not enclosing paths in single quotes properly
    • missing semicolon at the end of the line
    • using single quotes within a string (you need to write 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:
    • Uncompressing the tarball with certain versions of WinZip (try using 7-Zip or WinRAR instead)
    • Editing the lib-common.php with Dreamweaver or other so-called WYSIWYG HTML editors (use a simple text editor instead)
    • Editing the lib-common.php with “on-site” text editors built into tools like Cpanel (again, use a simple text editor instead)
  • 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 has the permissions set to at least 755 AND the files in it have permissions of at least 644. You may need to make the permissions 775 or 777 and 664 or 666 (respectively) if 755 and 644 isn’t working for you. For good measure, make sure the public_html/backend directory and the geeklog.rss file have the same permissions.
  • 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:

  1. Go to https://www.geeklog.net and check out the Support section. The Support section includes a FAQ, forums, and a search system (try searching for the error message, if you get one).
  2. 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.
  3. Try the chat room at Gitter (in the Geeklog room). Please have all your path and database information in siteconfig.php and db-config.php readily available.
  4. 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.
  5. Even more support options are listed elswhere in this documentation.