HTML Logo by World Wide Web Consortium (www.w3.org). Click to learn more about our commitment to accessibility and standards.

ocPortal Tutorial: Web hosting for ocPortal

Written by Chris Graham, ocProducts
To put a website on-to the Internet, you need to arrange for 'web hosting'. This is usually done by paying for the services of a web host , who will provide you space-on and access-to, a computer (a web server) that is permanently connected to the Internet via a high-speed connection.

Users with high requirements for CPU, memory, security, privacy, autonomy or disk space, may opt to get a dedicated server . This is more expensive, and usually requires additional maintenance by the user, but for some users, is highly advisable.




Requirements

When choosing a web-host, you need to make sure that they meet all the requirements of ocPortal. ocPortal is intentionally designed to have very low requirements, but like when making virtually any choice in life, there are various different kinds of product that companies may try and sell.
If a random commercial PHP /mySQL -supporting web-host was chosen, it is very likely that they would support these requirements: however ocProducts cannot be held accountable for incompatibilities with systems that do not.

The remainder of this section details ocPortal's requirements. If you have trouble ascertaining a web-hosts compliance, you may wish to contact them with this information.

ocPortal requires:
  • A web server that runs PHP. PHP is software which provides the environment that ocPortal is written for.
  • ocPortal requires PHP version 4.2 or higher. If a web-host has a PHP version older than this, it is not just out-dated, but also insecure: no competent web-hosts still do.
  • A PHP environment with the following enabled: GD2 extension, file uploads with at least 5MB (or higher, depending on your daily needs), mySQL binding, a memory limit of at least 12MB. A competent web-host geared towards running PHP web applications should be able to provide this.
  • At least 25MB of disk space, plus your needs for space for downloads, images, etc.
  • A web server that runs mySQL. mySQL is the database software (software which allows creation of a number of separate databases) which ocPortal uses to store the majority of it's data. Often web hosts will quote a number of databases that web-hosting comes with: ocPortal only requires a single mySQL database to function.
  • mySQL version 4 or higher. It is very unlikely you will find a web-host with an older version than this.
  • A web server running Windows or Linux. As Windows hosting is usually more expensive, and provides no benefit to ocPortal, yet inferior compatibility with PHP, a Linux server is preferable.
  • A web server running IIS (the Microsoft web server) or Apache (the common Linux web server). It is very unlikely you will find a web-host that provides something else.

ocPortal recommends:
  • A PHP environment with the FTP, pSpell, TTF, ZIP and XML extensions/integrated-functionality.
  • A PHP environment with Safe Mode disabled, but open_basedir enabled.
  • A PHP environment with a memory limit of 16MB.

If you do not have the PHP FTP extension, then you will need either:
  • an environment where the web server user has recursive write access over the web directories (most Windows servers)
  • an environment where the web server user is the same as the virtual hosting login user

If LDAP integration is required (for corporate network authentication integration), the PHP LDAP extension is required.

Forum drivers

Please note that many 'forum systems' are referred to as 'bulletin boards', and that a 'forum' within 'forums' is often referred to as a 'board'. We consistently use the terms 'discussion forums', 'forums' and 'forum' to describe these.

If you wish to integrate an existing forum into ocPortal, rather than use our own, the forum must be one of:
  • Invision Board 1.1/1.2/1.3/2.0-2.2
  • phpBB 2.0
  • vBulletin 2.2/3.0-3.6 (3.6 requires manual configuration and is not fully supported)
  • Burning Board 2.0/2.2/Lite
  • XMB 1.8
  • WowBB
  • Simple Machine Forum 1.0/1.1

We provide converters for Invision Board, phpBB, and vBulletin 3.0.x to our forum system, ocF. If you currently use one of these systems, you have the option to convert it.

Tip

Instead of naming the forum "ocPortal comment topics" or "ocPortal Support Tickets", you could name it "Mysite comment centre", "Mysite help region", or anything else you choose. Just be sure to change the configuration option to reflect it.

This is in the Admin Zone > Configuration > Feature Options area, under the "Support Tickets" and "User interaction" sections.
If you have installed forums, you will likely wish to create a comments forum. To do this, create a hidden forum called 'ocPortal comment topics'. This forum will be used to store topics relating to comments for content in your portal.

You may also wish to create hidden a forum called 'ocPortal support tickets' if you wish to enable the support ticket feature.

Domain names

Most websites prefer to have a short and memorable Internet address, direct to their front page. In order to achieve this, you will need to pay for control of a domain name. A very large number of companies will provide these domains, and the facility to bind these names to your web-server, for a very low fee. It is usually your own responsibility to seek and register the domain name for your site.

It is important to note that domain names are licensed on a temporary basis, and therefore you will need to renew your domain names. The length of the licence varies, but is typically between 1 and 5 years.

Responsibilities

Usually the web host will take responsibility for the daily maintenance of the server. For example, keeping the server software, usually Linux and common Linux software, up to date with security and stability patches . However few web hosts will take responsibility for the maintenance (including backups) of your space on the server. It is important to understand the responsibilities for the various aspects of creating, maintaining and operating your website, before you launch your endeavour. If you would like to pay ocProducts to take an increased role with your website, at any stage, please contact us.

Basic server and site infrastructure

When you are provided web-hosting, you are usually allocated a 'hosting control panel' that runs software such as:
  • Plesk
  • cPanel
  • Ensim
This allows you to manage your account on the server, and create databases, FTP accounts (additional to your primary account that already would exist), and e-mail addresses.

Note: the next few paragraphs detail the complixities of a typical Linux file system, and is not necessary reading for most users.

The server itself, has a file system, much like a desktop computer, and is usually laid out something like as follows (this example is for a Linux server):

/
/home/
/home/your-account-name/
/home/your-account-name/httpdocs/
/var/
/var/mysql/
/var/mysql/your-database-name/
/var/mysql/your-database-name/<database-files>

Of course this is only a partial detailing of the directory structure, but the intent is to provide you with an overview of what is really happening on your server. Usually you will not be able to, using your control panel or FTP, see outside of "/home/your-account-name/". When you install ocPortal, you usually would place the quick installer or manual installer files inside "/home/your-account-name/httpdocs/"; this is the directory that becomes accessible at the base URL of your website.
For instance, if your account on the server was associated with a domain name, 'mywebsite.com', then http://www.mywebsite.com/index.php would be tied to the file system file, "/home/your-account-name/httpdocs/index.php" (often the "www." is removable, but not on all servers).
In addition, from your main FTP account, the same file would likely be "/httpdocs/index.php".

In other words, three views of the file system exit, according to context:
  1. The full file system view, which is usually completely hidden from you, but which is what ocPortal actually itself uses.
  2. The FTP view, which branches off from the base of your account directory in the full file system view.
  3. The URL view, which branches off from the httpdocs directory in your account directory.

As previously mentioned, this file system is merely illustrative. Different servers use different conventions; for example "httpdocs" is often "public_html" or "www".

Server security

Towards the start of this document I briefly mentioned how a dedicated server would provide extra security and privacy. The reason for this is that, unless the server is heavily locked down (often at the detriment to it's users needs), then different server users are likely to be able to access and interfere with (erase and edit) each others files. This is highly unfortunate, and not widely known or understood, but is a result of the server architecture and applies to any PHP web application. Your account on the server has a username, much like your username on your own computer; files you upload are assigned to this username, and hence tampering with them is not possible for others. However, on almost all servers, the PHP environment itself, for all web sites on the server, runs with the privileges of the the same user (usually, a user named 'nobody'). This has three consequences:
  • ocPortal files that the web server user needs to write have to be made accessible to the web server. The way this is done is by making them available to every user on the server. Therefore these files are exposed to any user on the server with access to files outside of their account directory, which for non-locked-down servers, is every user..
  • Any file that is uploaded to the website via ocPortal, or created by ocPortal, is fully accessible and modifiable by any other user on the server.
  • Any user on the server may have unrestricted access to your database.

Of course if other clients of the web-host interfere with your data, the web-host, or police, may be able to intercede on your behalf.

PHP-Info

{!DOC_PHP_INFO}





Concepts

web host
A provider of Internet server facilities
dedicated server
A server that is not shared with others
Linux
The Linux operating system, very well suited to servers
patches
Patches are upgrades to software designed to fix problems, especially security ones nowadays

See also