Howto Install MµCMS

So you are about to try MµCMS. As the software has been downloaded over 2,000 times and only about 150 people have viewed this document, You are one of the smart ones, or you have broken your install and have decided to find out why.  I have gone to a good deal of trouble to write this, and if you follow these instructions your install should work quite well.  My software has been tested in a number of environments and platforms, and as problems are found they are fixed, or instructions to solve the problems are posted.

 

Warning:

Working knowledge of your server, PHP, CSS, HTML, apache configurations, and htaccess are required to perform a production install of this software. Not understanding these can result in a compromised server and/or website. You have been warned.

Installation (The quick and dirty)

I know this seems like a lot but if you are familiar with a server's setup it should take about 5-10 minutes. (The hardest part is getting the permissions right)

Step 1: Get and Place

unarchive (tar.gz, or 7zip, etc) the package. Copy the contents into your web viewable folder.

 

Step 2: Check Permissions

Make sure you web server is able to access the files (check your permissions). If you do not have permissions setup properly, you will get LOTS of errors on every single page. The web server needs read write access to the files and folders in question at the very least. (Refer to you server documentation and your native operating system to figure this out... if you get invalid read write errors on pages the cause is due to permissions.)

Web server assigns the rights of the web-server-specific user, typically user "nobody", to the connected web client, as if "nobody" is connected to the web server. "Nobody" doesn't belong to your group and thus it inherits permissions that "others" have to your files. 

  • For generic files such as html or images, etc you usually need to set 644 permissions. It is because "nobody" needs to read the file, and thus the file should be readable by others, hence 4 (read only) permissions for both group and others. For yourself you need a right to read and write (hence 6) to the file.
  • For scripts you need 755 rights. The script should be executable by "nobody". The script file should also be readable by "nobody", as the file is interpreted by an interpreter such as PHP and therefore must be readable. Thus it must combine read and execute permissions for "others", as "nobody" belongs to "others" group. For yourself you need to have also write access, getting 755 as a result.

 If you have command line access to your server the commands should look something like this:

  • chown -Rf nobody /web/path/here/*
  • chgrp -Rf nobody /web/path/here/*
  • chmod -Rf 755 /web/path/here/*

of coures replacing "nobody" with the web server user, and "/web/path/here/*" with your web path wildcard. You can check documentation on wikipedia.org for further help with permissions.

If you do not have command line access you can change your permissions using your favorite ftp program. Consult your ftp proram documentation for instructions on how to do so.

 

Note to GoDaddy Customers, due to a conflict in file structures, You must perform the GoDaddy work arround to get this to work with GoDaddy.  Please click here to see this.

 

Step 3: Determine Install Directory

Determine your install directory in relation to the web root. (Best way is to find the address you have to type into the address bar to get your site). If you are installing into your web root (http://www.yourserver.com/) you can skip this step. if you are are installing into a sub foler (http://www.yourserver.com/sub_folder/) you must do this or things will not work properly.

 

Once you have determined your web folder you must edit 3 files (specifically 3 lines of code). This is meant to be done quite quickly. I have tried to minimize the number of files that had to be edited for changing web paths. I have not implemented an automatic solution as of yet (and unless you are thinking about paying me to do so, am not particularly interested in doing so):

 Here is the list of files needing editing for sub-directory install:

  • /admin/fckconfig.js
  • /admin/fckedittor.js
  • /admin/editor/filemanager/browser/default/conectors/php/config.php
  • /admin/editor/filemanager/upload/php/config.php
  • /admin/classes/config.php

I apologize for the size of the table but, the informtaion would not display any other way.


File Name: /admin/fckconfig.js
Line Number: 225
Entry FCKConfig.SmileyPath    =  '/images/smiley/msn/' ;
Modification for Sub-folder install FCKConfig.SmileyPath    =  '/sub_folder/images/smiley/msn/' ;

File Name /admin/fckeditor.js
Line Number 38
Entery this.BasePath = '/admin/editor/' ;
Modification for Sub-folder install this.BasePath = '/sub_folder/admin/editor/' ;

File Name /admin/editor/filemanager/browser/default/conectors/php/config.php
Line Number 34
Entery $Config['UserFilesPath'] = '/articles/' ;
Modification for Sub-folder install this.BasePath = '/sub_folder/admin/editor/' ;

File Name /admin/editor/filemanager/upload/php/config.php
Line Number 37
Entery $Config['UserFilesPath'] = '/articles/' ;
Modification for Sub-folder install $Config['UserFilesPath'] = '/sub_folder/articles/' ;

File Name /admin/classes/config.php
Line Number 29
Entery $BPath     = '/admin/';
Modification for Sub-folder install $BPath     = '/sub_folder/admin/';

 

 

 

Step 4 The Config File:

/admin/classes/config.php

This is your primary configuration file here are the variables and line numbers that should be modified for usage:

Variable Line Number Description
$Salts 12 Password Salts, it is strongly recommended that these be a LONG string of alphanumeric characters (no special characters please)
$BPath 29 This should only be changed if installing into a sub directory of the web root.
$NotifyAdmin 104 Should only be changed if the email.php file has been configured to send an administrative email for security alerts.

Other settings in the config.php file can be changed however, you should have a good understanding of the code base before doing so.

 

Step 5: Install

run the installer: http://www.yourserver.com/admin/install.php

 

Follow the instructions given.

 

Step 6: Server Security - Setup

Setup the htaccess file so that it requires a user login to access the “/admin” folder. (otherwise other people will have access to your site components) Consult your apache's documentation for this.

 

Setup the following htaccess files for your server settings: The configuration settings for each server will be different depending on the versions of php and apache installed. The base files should be a good start, but you must configure /htaccess for your server this is very important! (You have been warned.) If you are getting Error 500 Internal Server Error or misconfigureation, it is due to your htaccess setup.

 

  • /htaccess

  • /articles/htaccess

  • /stats/htaccess

  • /admin/htaccess (make sure to put your password file for this one outside of the web root it self

 

Configure your robots.txt file

Step 7: Secure the Installation

Remove or move the install.php file from the “/admin” folder. Otherwise if someone compromises your site they will be able to set your administrative password.

 

Step 8: Login.

Goto your site and login. Start using as desired...