Self Managed CloudVPS could be configured in one of the following configurations:
- Vanilla OS: CentOS 7 64 or RedHat 7 64x or Debian Squeeze 7 64x or Ubuntu 14.04 64x
- Preconfigured LA(E)MP: Fully optimised Linux, Nginx (reverse proxy), Apache, MariaDB, PHP
Independant on the configuration requested, the following applies to any CloudVPS server:
- You will receive a welcome email containing your server username and other access details
- To become privileged user (root), use `sudo`
- MySQL root password is stored in /root/.my.cnf file. This allows passwordless access for user 'root'
- In any configuration your server will have a user 'redyhost' configured, used by RedyHost support team to access your server whenever you raise a support request. This user is restricted to access from only whitelisted IP addresses and is setup in very secure way. RedyHost does not recommend removing this user or denying access to your server. In emergency situations we will be accessing your VPS in order to avoid or minimise downtime.
1. Vanilla OS
If you ordered a vanilla OS install, this comes with minimal set of packages required to run and operate your server. SSH daemon runs on port 221, unless you specified an alternative port during the order.
2. Preconfigured LEMP
Whenever you requested a preconfigured LEMP stack to be installed, we use the following configuration
- CentOS Linux (latest stable version)
- Nginx (latest stable version)
- Apache (latest stable version)
- MariaDB (latest stable version)
- PHP run via php-fpm (latest stable version)
- Postfix (latest stable version)
We install CentOS as this is our preferred Linux OS. CentOS comes with minimal set of packages required to operate a high performance production web server
By default we use port 221 for SSH access. This requires passing -p 221 to your ssh connection string, for example ‘ssh vmuser@ip_address -p 221’
Nginx is used as standalone webserver or as reverse-proxy and static files cache, it’s configuration located in /usr/nginx/conf/ folder. Any virtual host configuration is located inside /usr/nginx/conf.d/ subdirectory.
Nginx configuration files used (please note the exact files layout may change at any time, please inform us if the layout of files in your CloudVPS does not match):
- 0_cache_zone.conf - manages Nginx cache zone
- cloudflare.conf - manages CloudFlare IP addresses and real_ip_header (required if you use CloudFlare or could be ignored)
- drupal8.conf - test Drupal 8 installation virtual host. Could be safely removed or used as a base for your own Drupal 8 installation
- disabled/drupal7.conf.disabled - could be used as a base configuration file for your own Drupal 7 installation. Move this file into the parent folder cp disabled/drupal7.conf.disabled drupal7.conf and modify ‘server_name’ and ‘root’ to point to your website docroot directory
- headers.conf - controls any custom headers per server
- pagespeed.inc - controls mod_pagespeed filters. Disabled by default. To enable, ensure the file is included (add include conf.d/pagespeed.inc; in vhost file) and change pagespeed off; to pagespeed on;
- ssl.drupal8.conf - SSL configuration for vhost, could be used as base template for your own SSL configuration.
- static_cache.inc - manages static files cache
- disabled/ - folder containing other use examples and configuration files not currently in use.
We install latest stable PHP version managed via php-fpm.
php-fpm pools are configured in /etc/php-fpm.d/ directory
Default `www.conf` pool file controls php-fpm user (defaults to `www-php`). If you change the user or copy this pool file to be used as another php-fpm pool (makes ure you change port number to a unique number, e.g. 9001, 9002 etc), make sure the Nginx docroot folder has been chown’d to the same user and group as the new php-fpm pool config file. This user must exists in the system prior php-fpm pool configuration.
Amongst the common modules required to run Drupal and Wordpress, we also have installed and preconfigured the following performance-oriented PHP modules:
- Opcache by Zend
- php memcached extension
to get mysql root password, run `sudo cat /root/.my.cnf`
To login to mysql client, become root user (sudo -s) and type ‘mysql’.
Use the root password to create databases and grant user privileges.
We have installed the latest stable version of memcached daemon, running on the default port 11211. To modify the memory limit to be utilised, edit the fie /etc/sysconfig/memcached. The php-pecl-memcached extension was also installed to facilitate the utilisation of the memcached daemon from PHP scripts.
The CloudVPS contains Postfix as the email server, that sends emails directly. The configuration is stored in /etc/postfix/main.cf file
In order to manage your DNS zone file, we recommend creating a free account at CloudFlare.
Important Kernel version notice
Our CloudVPS uses vanilla kernel, however we discovered that due to a but in kernels 4.4 and above, we are unable to live migrate your CloudVPS to another server. Such migration may be required when we patch hypervisors, run server maintenance or likewise. Do not upgrade your kernel to 4.4 or above.
The latest supported kernel version is 4.3.x
To get started with your new Cloud VPS, follow these firsts steps
- SSH into your server and try to become root user via `sudo -s` command
- As root user, confirm you can access /root/.my.cnf file and read mysql root password
- Give you get mysql root password above, execute `mysql_secure_installation` as user root and change mysql root password
- Update /root/.my.cnf file with the new mysql root password and test you can login to mysql by running command `mysql` with no username and password specified
- Create `/var/www/html/[domain]` directory and chown it to the user specified in your php-fpm pool configuration file (defaults to 'redyhost'): `chown redyhost:redyhost /var/www/html/[domain]`
- Upload your website into `/var/www/html/[domain]/` directory or use git to clone your project into the folder
- Using /usr/local/nginx/conf/conf.d/drupal8.conf as an example (or create your own) set ‘server_name’ variable to your website domain and ‘root’ variable to point to your website docroot directory '/var/www/html/[domain]'
- Create a new database, an upliviledged mysql user and grant permissions to the new user
- Upload your database
- Test your website by visiting the domain name configured in Nginx virtual host file.