Nucleus Manual (v1.55)
Notes:

Table Of Contents

About Nucleus back to top

Nucleus is a Content Management System (CMS): a powerful set of PHP scripts that allow you to maintain one or more weblogs or online journals. A short summary of the most important features is given below:

Requirements in order to run Nucleus: (If you don't know if you fit the requirements, ask your system administrator)

Nucleus is intended for the people that want full control and 'tweakability' over their sites. If you're just looking for a very simple way to put up a site, or don't know any HTML, you might want to use a 'simpler' service such as Blogger.

Copyright & Usage back to top

Nucleus is Copyright (c) 2001-2002 by Wouter Demuynck. All rights reserved.

By possessing this software, you agree not to hold the author responsible for any problems that may arise from your installation or usage of Nucleus itself, or from any content generated by yourself or others through the use of this program. You may freely modify this program for your own use, but you may not redistribute modified versions. You are free to publish hacks and changes you made, though. Finally, you may not sell or in any way make a financial profit from this program.

Your possession of this software signifies that you agree to these terms. Please delete your copy of this software if you don't agree to these terms.

Pricing back to top

Nucleus is completely free of charge when used for non-commercial web sites. Donations are highly suggested, though. That would be a great incentive to keep working on the scripts and a form of appreciation.

If you want to use it for a commercial web site, please contact me.

Installation back to top

Note: If you are upgrading, you should see the upgrade instructions on the Nucleus website.

Installing Nucleus is done through some steps:

1. Unzip

Unzip all files to a directory of your computer. Make sure the path names are used when unzipping. You should end up with the following directory structure (* stands for a number of files):

/*                           (main files for site)
/nucleus/*                   (main files for admin-area)
/nucleus/javascript/*        (javascript helper scripts)
/nucleus/libs/*              (Nucleus core libs)
/nucleus/language/*          (definitions of languages)
/nucleus/plugins/*           (plugin-dir)
/nucleus/xmlrpc/*            (XML-RPC interface)
/nucleus/documentation/*     (Documentation + admin-area help)
/nucleus/styles/*            (stylesheets for docs & admin-area)
/media/*                     (media library directory [emtpy])

2. Upload files

Upload all files to your server, using your favorite FTP program. Make sure to upload .php files in ASCII mode! It might not work otherwise.

Optional: If you want to use file upload, you'll need to add write permissions to the /media/ directory. This is needed in order to allow PHP to write uploaded files into that directory. The directory should be chmodded to 777 (Quick guide to change file permissions).

3. Run install.php

Open your web browser open the URL below, where you adapt the yoursite and yourpath parts.

http://www.yoursite.com/yourpath/install.php

This install-script will prompt you for some information, and perform most of the installation for you. When everything has succeeded, install.php will provide you with further instructions (you'll still need to change config.php and delete some files manually)

Note: When you open install.php in your browser and you see the text "If you see this text in your browser...", or you are prompted to download 'install.php', then your web server does not support PHP, and you won't be able to run Nucleus there.

4. Done!

You should now be able to visit your site at http://yoursite.com/weblog/ (or whatever URL maps to the location where you uploaded the Nucleus site main files)

Security Aspects back to top

mySQL passwords

Since Nucleus needs to connect to a mySQL database from a PHP-script, the password for that database must be stored inside a PHP-file. On multi-user systems, this might cause an unevitable security risk: On some systems, other users will be able to read your login information. You might want to contact your system operator to find out how secure it is to store sensible information inside PHP-scripts.

The problem above is common to all PHP scripts that need to connect to a database. As a user, there's usually nothing you can do about it in order to make things 100% secure. I just wanted you to be aware of this potential danger.

Cookies

Nucleus uses cookies to store user login information. This could cause a security risk when your cookies are stolen. Although your password is not derivable from the cookie (the values stored in the cookie are the username and a randomly generated string), there could be possibilities to 'fake' the cookie on another computer and thus to get logged in.

Media dir

When you want to enable file upload, you'll need to set the permissions of the media dir to 777, which means that everyone on that server will be able to delete/add/... files. The reason why this is needed, is that PHP mostly runs as the httpd user, and that user needs to be able to access this dir and write to it. Here also, there's no way around this.

Performance Aspects back to top

Contradictory to some other weblog/online journal scripts, Nucleus does not generate a static version of all items. This means that every time a page is requested, the PHP parser is called and the database is accessed to dynamically create the requested page.

For small web sites, this should not cause any problem. For web sites that get thousands of visitors each hour, I don't know exactly what the effect on the systems performance will be. So far, no problems have been reported by Nucleus users.

Importing From Other Tools back to top

Nucleus contains some conversion scripts that allow you to import the data from your 'old' weblog tool into your Nucleus weblog. No data is destroyed during this process.

More information is available on the Nucleus website. At the time of release, the only available conversion tools are those for Blogger and GreyMatter blogs.

What's allowed/disallowed in comments? back to top

Nucleus has some built-in rules concerning comments:

As for now, all of these rules and parameters are hardwired into the code.

XML-RPC Interface back to top

The URL for the Nucleus XML-RPC interface is:
http://www.yourserver.com/yourpath/nucleus/xmlrpc/server.php

XML-RPC is a format for remote calls using XML messages. Sounds complex, but implementing an XML-RPC interface into an application allows other services to communicate with it.

Currently, the Gel uv french and the metaWeblog API are implemented. If you want an examples of such a client, try w.Bloggar.

The available calls to the interface are described in the development documentation, which can be separately downloaded, or viewed online.

Troubleshooting (FAQ) back to top

Below, some of the most common problems with and questions about Nucleus are answered. Please read these first before you ask for help. In many cases, the solution can be found here.

When I try to run install.php, I'm prompted if I want to download install.php
Your web server is not set up to support PHP scripts. You won't be able to install Nucleus on such a system.
When I try to visit my website, I get a 'Connection Error'. Why?
The reason why this error is shown is that Nucleus cannot connect to your database server for one reason or another, or it cannot select the database. One possible reason is that your login information in config.php is incorrect. Another is that the mySQL server is down.
I can't get my update file to work!
File permissions need to be set correctly in order for the update file to work. The update file also needs to exist prior to changing the blogsettings. (e.g. you can create an empty file and upload it). About the file permissions, make sure the update file is chmodded to 666 and the directories are chmodded to 755. (Quick guide on changing file permissions)
I don't want the XML-RPC interface to be available
You can simply delete the xmlrpc/ directory without causing trouble.
I don't want RSS syndication (headlines) to be available
You can safely delete the xml-rss.php (headlines.php) file and the 'xmlrss' (headlines) skin/template
I get an error: Cannot send headers. Headers already sent...
Most likely this problem is caused by whitespace at the beginning or end of the listed file. So, when it says: "headers already sent in config.php line x", the problem is in config.php. Check if it has spaces or newlines before the starting <? or after the ending ?>. If there are, remove them.

Known Problems back to top

Some known issues:

Credits & Thanks back to top

All code for Nucleus, except the parts listed below, was written by Wouter Demuynck. All rights reserved.

Many thanks should also go to all people who have helped me and/or inspired me. (I tried to link them in the changelog, don't shoot me if you're not in there)

And, lots of thanks should go out to the people that did a donation or helped me out! This really keeps me going!