Skip to main content

Linux Apache MySQL PHP (LAMP) Server to host our own website

http://linuxsolutions.org.in/images/php-mysql.jpg

The most popular configuration to host our own website is certainly the Linux + Apache + MySQL + PHP combination (Alias LAMP server). Although it is possible to do the same using Windows (WAMP) or with others applications too, I will only focus on LAMP.

Apache is the most popular HTTP server; coupled with the world’s most popular Open Source database, MySQL and the very popular scripting language PHP, you should not doing a big mistake here using this combo.

Installation

To install it, just install all these applications:

During the installation, you will need to set MySQL root password and to select the Web Server to reconfigure (Apache in our case)

https://library.linode.com/assets/357-debian-6-mysql-root-password.png

 

Configuration

Either you want to build your own website from scratch or you could use some Content Management System (CMS), like WordPress, Drupal, or Joomla, which is like a template that you can customize and fulfil (Like this blog).

In any case, you will need to build a specific folder in /var/www, install what ever you want in it and provide a Virtualhost to inform Apache to deliver this folder depending on the url asked, as briefly discussed in my previous post to help you set a Static IP and explain the server/router should response.

Let’s say you want to host 2 websites, one blog and one photo gallery, here is how you should do:

1) Create the folders

(You can call the folders as you wish)

2) Add whatever CMS, services you want inside

3) Give proper permission to these folders

As we have created the 2 previous folders using sudo command, the owner is now root…which will cause access issues. To avoid that, we need to change the owner of these 2 folders by www-data.

chown is to change owner, -R option is for recursive, if you want to do it on full folder, you need to add -R, and www-data:www-data is to assign the folders to the user AND group www-data.

4) Create the needed virtualhost (Vhost) files

The apache virtualhost files are the key to know which folder/service to deliver when an user request a certain domain name.

For example, you may want that http://freedif.org redirect to the folder /var/www/myblog and that the sub-domain http://pic.freedif.org redirect to /var/www/gallery or may be to have a second domain name directly, it’s in fact not very difficult with the Virtualhost.

You will need to create the conf file in /etc/apache2/site-available and then active this virtualhost (Actually you could directly create the conf file in /etc/apache2/site-enabled, thus already active but this solution is less flexible if you want to turn on/off sometimes some websites)

– Create the virtualhost:

In my presented case, the Virtualhost of http://freedif.org that will redirect to the folder /var/www/myblog will look like (With comments after the ###, you could remove them if you want)

The remaining lines will not need much changes normally.

And you could do the same for your second website

– And now activate your 2 virtualhosts:

where myblog and gallery are the names of the virtualhost files created previously.

And finally restart apache:

If no error message, you should be all set.

PS: Don’t forget to create an A redirection on your domain name registrar to your IP and allow connection from port 80 into your router.

Exploits of a Mom

4 thoughts on “Linux Apache MySQL PHP (LAMP) Server to host our own website

    1. If you want to keep your website on your own computer, yes, you need to have 24/7
      But you could have a mirror somewhere else to be the relay if you turn off your computer.

      Nowadays, for 5e, you can have a tiny computer (Raspberry Pi Zero) with a negligible power consumption.
      It all depends on your needs.

    2. Instead of running PHP website on your own PC, isn’t it better to host it on some hosting, like Cloudways or SiteGround? If you are running on your PC, you might not be able to scale or secure it.

      1. Hi Olidev,

        No solution is perfect in my view.

        Using some solutions like OVH, 1&1, etc… is a simple way to host some websites and you usually have some sense of protection (for DDoS) and a stable environment with the security patch (Except on what you have installed of course…) and in some cases a good way to scale it up.
        But in another hand, you loose some privacy and flexibility (Some provider may block this and that, they might have access to your informations, etc…). Snowden has shown this face several years ago. In some cases, the hosting companies have no choice in fact.

        For me privacy is more important for some applications (I got professional websites/services on robust hosting companies) but what I prefer the most is to have full control/ownership, learn by doing, and having a great experience at home. (Super fast services, all I want how I want, etc…). But I know this is not professional. (Not the intend).

Leave a Reply

Your email address will not be published. Required fields are marked *