General information

The LRZ web hosting team uses tried-and-true components in their infrastructure:

  • GNU/Linux operating system (Debian)
  • Apache web server software (version 2.4)
  • PHP scripting language (see below)
  • MySQL database servers

Your website comes with 10 GB of storage space and several hundreds of MB for your database (optional).

Your files on the filesystem and in your database are backed up automatically on a regular basis. A portion of your backed-up filesystem data (so-called filesystem snapshots) is accessible to you so you may restore accidentally deleted or overwritten data yourself. The filesystem snapshots will usually relieve you of the need to create your own backups.

Filesystem quota

The filesystem web space is the home directory of the functional account used to operate and manage your website. The home directory also contains your website's document root. This is the reason your home directory is also accessible on all servers of the same HTTP daemon pool (see below) and on the access server.

A hard size limit applies to all data in the home directory, i.e. the total data volume on the file system cannot exceed a certain amount. This restriction is primarily intended to prevent the occupied disk space from growing arbitrarily in the event of an error situation.

All data in the home directory counts towards the quota. For example, older versions of a software package, backups, log data or caches that you create manually or that are created automatically by a PHP application (e.g. a content management system) will fill up your quota.

Tip

To avoid reaching the quota, consider doing the following:

  • Get an overview of whether your website accumulates data that grows continuously over time where there is no need to keep it in the long run.
  • Clean up such data regularly or at least when needed.
    Fortunately, many of the larger PHP applications have a configurable mechanism that cleans up such files automatically.

PHP

PHP execution

In our infrastructure, PHP is executed via the FastCGI Process Manager (PHP FPM), making your website's PHP processes run with the privileges of your website's functional account.

Available PHP versions

We usually provide more than one PHP version at a time. As of November 2021, we support PHP 7.3, 7.4, and 8.0. The current default PHP version is PHP 7.3, meaning that a new website will come preconfigured with this version.

You may choose to use a different version than the default one. Please contact the LRZ web hosting team to change your website's PHP version.

Please note

Each major version of PHP, like 7.3 or 7.4, is supported by the PHP development team for two years (see "Supported Versions").

As soon as a major release reaches its end of life (EOL) and no longer receives security updates, we will also no longer be able to provide support for that PHP version to avoid security risks. This means that we will upgrade websites in our hosting running the PHP version that is falling out of support to the next higher major version (e.g. from PHP 7.3 to 7.4). This action usually happens in early December each year. As part of this, you must ensure that your web application is compatible with the next higher PHP version. If you use a CMS such as TYPO3 or Wordpress, you can usually find compatibility information in the system requirements.

We will inform you about an upcoming change in our supported PHP versions several weeks in advance.

In cases where a non-default PHP version was configured for the website (for example, if you use a very recent PHP version), your website's PHP version will not be changed automatically.

PHP extensions

A range of PHP extensions/libraries are available in our infrastructure, e.g. gd (graphics library), ftps, imap, intl, ldap, mbstring or mcrypt. Due to the maintenance aspect and our limited person power, we will usually not be able to provide more extensions. Please contact us if there is a certain extension that you need and we will consider if we can provide it. The same applies to the customisation of PHP parameters.

Using PHP on the command line and in cron jobs

On the access servers, PHP is available for use on the command-line and in cron jobs. The php command executes the most recent installed version of PHP that is configured for your website. You can find out the exact version with the -v flag. The following shows an example where PHP 7.4 is configured for the site. PHP is executed in version 7.4.11 ("11" is the patch level version).

user@webdev02:~$ php  -v
PHP 7.4.11 (cli) (built: Oct 8 2020 17:32:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies

However, the PHP version that is executed via the php command may change due to updates (see the information box under "Available PHP versions"). Therefore, we provide a dedicated command for each major PHP version, like for example php7.4 (see below for more information).

Tip

The configuration of your website determines which major PHP version your website uses (see above).

To avoid errors in the execution of your web application, you should also use this major PHP version on the command line or in cron jobs or other scripts.  Therefore, it is recommended to use the version-specific PHP command (see below) to avoid unexpected version jumps.

There are various ways to find out which PHP versions are installed and what the commands are called:

user@webdev02:~$ update-alternatives --list php
/usr/bin/php7.1
/usr/bin/php7.2
/usr/bin/php7.3
/usr/bin/php7.4
/usr/bin/php8.0

user@webdev02:~$ ls /usr/bin/php*
/usr/bin/php  /usr/bin/php7.1  /usr/bin/php7.2	/usr/bin/php7.3  /usr/bin/php7.4  /usr/bin/php8.0

user@webdev02:~$ ls /bin/php*
/bin/php  /bin/php7.1  /bin/php7.2  /bin/php7.3  /bin/php7.4  /bin/php8.0

Notes:

  • You can find the PHP commands in the /bin directory as well as under /usr/bin.
  • The PHP commands in /bin and /usr/bin are identical.
  • Usually, /bin and /usr/bin are included in the command search path (meaning both directories are contained in the $PATH environment variable, which you can check by running the command echo $PATH). This means that you can simply use the command without using the whole path (for example, php7.4 instead of /usr/bin/php7.4).

Tip

Cron jobs are executed in a separate environment where the command search path is different from the interactive shell. When writing cron jobs, you should therefore do the following to avoid problems:

  • Use absolute paths for commands (for example, use /usr/bin/php7.4 instead of php7.4).
  • If your cron job executes a shell script, you should set the $PATH environment variable explicitly at the start of the script.

Operational infrastructure

In order to improve availability and fail-safety, websites in our web hosting infrastructure are deployed by several so-called webserver daemon pools. The daemon pools are located behind a service load balancer (abbreviated: SLB; see the "Service Catalogue", section 6.2). The SLB is a redundantly constructed special hardware which is also redundantly connected to the internet at the LRZ.

A webserver daemon pool consists of several servers that run the webserver software, as well as the database server. The webserver servers are identical in their configuration. Each server runs an Apache webserver daemon that can process all websites of the pool. The websites are implemented as virtual hosts (short form: vhosts). If you surf to your website using your web browser, the SLB will forward the request to an available daemon server of the daemon pool where your website resides.

Good to know

  • There are multiple webserver daemon pools in the LRZ web hosting infrastructure, each configured as shared web hosting. A common misconception is that each website runs on its own dedicated server.
  • Websites inside the same webserver daemon pool share all of the pool's resources.
  • If a website is accessed, this is processed by one of the available servers in the webserver daemon pool, creating a redundant infrastructure.
  • Our customers cannot access the servers in the webserver daemon pools directly. Instead, access is possible through a so-called access server, via FTP, and phpMyAdmin (the latter solely for database management). See Access options for more details.
  • When managing your website, you will always work with the permissions of your website's functional account. In no case is it possible to be granted admin rights/root privileges.

  • No labels