How to set up a LAMP server on Scaleway

Hey,

Recently I needed to adjust my network server load and I did not want to invest on a long-term on a dedicated instance (avoiding setup fees, add flexibility). From now I am working with old dedicated server from Online.net. They are pretty good and they are doing the job. Along this, I am used to work with Scaleway (an ARM cloud based service) for small projects or when I want to add flexibility to my existing dedicated based network architecture.

About Scaleway

Scaleway is a cloud provider, a subdivision of (iliad). It does complete the dedicated and web hosting offer from Online.net (iliad). I am now a Scaleway user since April 2015 and it worked well so far until now.

The offer is composed of the following servers:

BareMetal SSD Cloud Servers
True BareMetal servers for quantifiable, predictable and constant performances.

ARMv8 SSD Cloud Servers
The first ARM64 SSD Cloud Servers for developers.

Depending on the offer you will get a kind of unmetered bandwidth guarantee from 200 to 800Mbit/s. The big thing is that it's really affordable from 2.99€/month to 279.99€ for the biggest instance.

Starter

For small projects, web hosting, test etc..

  • ARM based's one: ARM64-2GB, ARM64-4GB, ARM64-8GB
  • X86 based's one: VC1S, VC1M, VC1L


Baremetal

For highest usage than the starter one

  • ARM based's one: C1
  • X86 based's one: C2S, C2M, C2L


Intensive

For intensive and high cloud based usage as stated

  • ARM based's one: ARM64-16GB, ARM64-32GB, ARM64-64GB, ARM64-128GB
  • X86 based's one: X64-15GB, X64-30GB, X64-60GB, X64-120GB


The great thing with Scaleway is that there is a ImageHub where you can deploy a ready to use infra, it has many pre-installed container and this is how I ran Ghost by the way.

Each time you will create a new instance, there is the Choose image section where you can install an operating system (Ubuntu, CentOS, Debian, Fedora etc..), pre-installed stuff from ImageHub (Wordpress, Docker, OpenVPN, LEMP Stack, etc..) or from any personal images of Snapshots.


LAMP Stack

LAMP stands for Linux Apache MySQL PHP, a variant is LEMP for Linux NGINX MySQL PHP. Actually last time I had to install this but without MySQL since I do not need it.

I started from a Debian Stretch distribution then:

apt-get update && upgrade
apt-get install iftop htop //monitoring stuff
apt-get install php7.0-dev libapache2-mod-php7.0 apache2 php7.0-mysql

Once this is done I added few tweaks like changing values from:
/etc/apache2/mods-enabled/mpm_prefork.conf

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of requests a server process serves

<IfModule mpm_prefork_module>
        StartServers             your_StartServers_value
        MinSpareServers          your_MinSpareServers_value
        MaxSpareServers          your_MaxSpareServers_value
        MaxRequestWorkers        your_MaxRequestWorkers_value
        MaxConnectionsPerChild   your_MaxConnectionsPerChild_value
        ServerLimit              your_ServerLimit_value
</IfModule>

See documentation here for tweak: https://httpd.apache.org/docs/2.4/mod/prefork.html

Also I'm used to modify the /etc/apache2/apache.conf file because there is document directory index by default

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Remove Index as option

<Directory /var/www/html>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Once this is done:
service apache2 restart or service apache2 reload

Then you are good to go, you may have a PHP web server up and running. In order to check if PHP is working properly, you can create a info page.

<?php phpinfo(); ?>

That's it for today, hope you enjoy .