The new system is (currently) based on Debian 12 Bookworm and comes with the versions of software it has, including:
We are aiming to offer hosting based on the newer Debian 13 Trixie release in 2026.
We don’t centrally maintain shared installations of web CMS software (e.g. Wordpress etc.) those can be installed by you in your hosting space. As a general principle though these should be kept up to date.
Most management operations for your site are carried out on the
management server, access.cwh.it.ox.ac.uk.
This is not the server that will make your site available on the web, but it does have access to the same files.
Login to access.cwh.it.ox.ac.uk using an SSH or SFTP
client.
Access is restricted to known IP addresses that have been registered with us (via the technical contact section of the comprehensive web hosting request form). If you need to add or change your registered IP address then please email your IP registration change request to us.
Alternatively, connections will be accepted from systems connected to the University VPN.
Your login for the management server will be your Oxford SSO username (abcd1234) and password.
University customers wishing to have non-University staff (e.g. contractors) access the system to manage their sites will need to ensure that their contractors either already have a University SSO, or get them one by applying for a Virtual University Card for them (one per person).
Once logged in you will be in your personal home directory,
/home/abcd1234, and the sites you maintain will be located
under the /sites directory available either by their unique
ID number (/sites/siteXXXX) or via their primary site name
(/sites/www.aardvark.ox.ac.uk/).
Within the site main directory will be see several subdirectories:
html - directory for normal web content (new sites will
have an initial test page here),cgi-bin - for CGI scripts,logs - (access and error logs),database_details - a file with the connection details
for your MariaDB/MySQL database,crontab - an example file for running periodic
jobs,README file.Within your site directory you should have a file called
database_details with contents like this:
Database : site000X
Database host : cwh-mariadb
Database user : site000X
Database password: Correct-Horse-Battery-Staple
You can use these details in setting up a CMS, or access the database directly from the command line:
$ mariadb -h cwh-mariadb -u site0006 -p
You have two quota-limited spaces on the system, your personal home directory on the login server which is intended for settings and other small files and has a fixed quota limit of 1GB, and your site’s directory which has a quota limit at whichever service level you’re paying for (if you have multiple sites they each have their own quota allocation).
If you wish to upload files larger than 1GB to the system, you’ll need to copy them to the site directory directly, rather than into your personal home directory.
access.cwh.it.ox.ac.uk.cd /sites/site000X),df -h .You should get output that looks something like this:
$ df -h .
Filesystem Size Used Avail Use% Mounted on
cwh-dev-nfs-01.it.ox.ac.uk:/data/sites 1.0G 1.0M 1023M 1% /sites
Where the ‘Size’ column shows the current size of the site’s quota, and the ‘Used’ and ‘Use%’ show how much of it is currently occupied.
Your site contains a logs subdirectory containing Apache
web server access and error logs, and PHP access logs. These logs are
rotated daily and retained for 95 days, with older logs compressed to
save space.
Create a file called crontab (or edit the example file)
located in in your site directory with normal
crontab(5) syntax.
Your file will be copied to the web server during a synchronisation
run every 5 minutes, and will then take effect and be run on the
webserver (not on the login server access.cwh.it.ox.ac.uk).
Note that your site’s path on the web server will be
/srv/sites/site000X rather than just
/sites/site000X.
We strongly advise you to set an email address where the output of tasks will be sent. If you do not do this, you will not receive any output from your jobs
The comprehensive web hosting service is based on a Linux platform running Apache 2.4.
The following scripting languages are available:
Databases are provided with MariaDB (compatible with MySQL).
All sites on the system have SSL certificates generated via LetsEncrypt, which relies on having your DNS pointed to the site. If you wish to add an alias to a site or rename it entirely (e.g. to rename a development site to the ‘real’ name after it’s been set up) then you’ll need to contact us to coordinate the process. If you simply redirect your DNS then visitors will get an SSL certificate error.
Log in to the CWH system by SSHing to
access.cwh.it.ox.ac.uk.
Download Wordpress from https://wordpress.org/wordpress-6.8.1.tar.gz
wget https://wordpress.org/wordpress-6.8.1.tar.gz
Change into your site’s directory
cd /sites/cwh-testsite6.it.ox.ac.uk
and unpack the Wordpress tarball:
tar xf ~/download/wordpress-6.8.1.tar.gz --strip-components=1
(–strip-components avoids everything winding up in a ‘wordpress’ subdirectory)
Copy the wp-config-sample.php file as wp-config.php and set the
variables DB_NAME, DB_USER
DB_PASSWORD and DB_HOST according to the
values in your database_details file.
If you want to rename your site (for example putting a dev site into
production and changing the URL/hostname from
www-dev.aardvark.ox.ac.uk to
www.aardvark.ox.ac.uk you’ll need to change the
WordPress Address (URL) and Site Address (URL)
options under Settings->General. It’s helpful to have
the site temporarily accessible via both names, so we recommend:
This should keep the site functioning through the whole process without losing you the access you need to be able to update the Wordpress settings over the web interface.
If you get an error from WordPress when installing or upgrading components like the WordPress install itself or plugins that asks for FTP credentials then WordPress has decided that it can’t write directly to its own files. It should be able to, and setting:
define('FS_METHOD', 'direct');
in the Wordpress
wp-config.php
will force it to use local filesystem access as it should. If you set that and it then doesn’t work, get please in touch.
Version note - We currently offer web servers with PHP 8.2, which allows use of the 10.x releases of Drupal, it does not meet the minimum required version for Drupal 11.
Drupal’s default composer based installation assumes a slightly different directory layout than we have, so where it defaults to installing the drupal web files in a subdirectory of the composer project directory, whereas we’re to install the composer project files in their own directory and the web content in the existing ‘html’ directory.
First, log in to the CWH system by SSHing to
access.cwh.it.ox.ac.uk, then change to the site directory
and create a new project without actually installing Drupal itself:
cd /sites/site000X
composer create-project drupal/recommended-project:10 drupal/ --no-install
cd drupal
In this directory edit the file drupal/composer.json and
change the web-root setting to the full path to your html
directory, and then do the same to all the paths in the
installer-paths section, e.g:
"extra": {
"drupal-scaffold": {
"locations": {
"web-root": "/sites/site000X/html/"
}
},
"installer-paths": {
"/sites/site000X/html/core": [
"type:drupal-core"
],
"/sites/site000X/html/libraries/{$name}": [
"type:drupal-library"
],
"/sites/site000X/html/modules/contrib/{$name}": [
"type:drupal-module"
],
"/sites/site000X/html/profiles/contrib/{$name}": [
"type:drupal-profile"
],
"/sites/site000X/html/themes/contrib/{$name}": [
"type:drupal-theme"
],
"drush/Commands/contrib/{$name}": [
"type:drupal-drush"
],
"/sites/site000X/html/modules/custom/{$name}": [
"type:drupal-custom-module"
],
"/sites/site000X/html/profiles/custom/{$name}": [
"type:drupal-custom-profile"
],
"/sites/site000X/html/themes/custom/{$name}": [
"type:drupal-custom-theme"
]
},
Then install Drupal:
composer install
and you should see the main installation appear in the
html directory.
Most of the drupal setup runs from a browser, but we need to create a settings file in advance by copying the example, and setting the file permissions so that the web installer can write to it (we’ll then restrict it from making further changes once it’s done).
Change into the html directory, copy the example, make
it and the directory, writable:
cd /sites/site000X/html/
cp sites/default/default.settings.php sites/default/settings.php
chmod g+w sites/default/. sites/default/settings.php
It should then look like this:
$ ls -l sites/default/settings.php
-rw-rw-r-- 1 usso0123 site000X 33395 Jun 13 16:05 sites/default/settings.php
You can now access the interactive web installer at your sites main
URL. Step through it until you get to the database settings page, and
set them based on the values in the database_details file
from the top level site directory (including setting the
Host value under the Advanced section:
[[!img drupal_db_settings.png]]
At step 7 the installer will say:
All necessary changes to sites/default and sites/default/settings.php
have been made, so you should remove write permissions to them now in
order to avoid security risks.
Do this with:
chmod g-w sites/default/. sites/default/settings.php
And then complete the installer.