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 .