A "LAMP" stack is a group of open source software built together to enable hosting of websites, applications & databases. The term "LAMP" is used to identify it as Linux, Apache, MySql and Php.
In this tutorial will help you install and configure the LAMP stack on a CentOS 7 6bit server.
We will need the following to be able to successfully setup an LAMP Server on Ubuntu:
- An CentOS 7 x64 VPS server
- Root Access to the server
- An SSH client (You can download Putty or Bitvise depends on your operating system and liking)
When you have all this ingredients we can now start setting up our LAMP Server. Please follow the guide carefully, remember, you can always copy and paste the commands below for ease of installation and configuration.
The apache web server is the most popular web server in the world. It is a product of the collaboration of many developers worldwide to develop a feature rich, open-source http web server.
We will start by typing the below command:
sudo yum -y install httpd
That's it! your web server is installed, now you would want to run and enable it on startup it by the commands.
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Now go to your browser and type in the ip of your server. You should see the below information:
Now we will install MariaDB. It is a fork of the Mysql-Server originally from the developers of MySql itself, it is the most used sql server worldwide and is currently being used by major websites such as facebook, Wikipedia and more.
To start installing MariaDB, we issue the command:
sudo yum install mariadb-server mariadb
Then we can start mariaDB with.
sudo systemctl start mariadb
MariaDB will now run, so we will make sure to secure our server by running a script to update our passwords.
As a newly installed server we still don't have root password for the database so we have to create one. make sure to read each succeeding instructions carefully.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! Remove anonymous users? [Y/n] y ... Success! Disallow root login remotely? [Y/n] y ... Success! Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Thanks for using MariaDB!
We will want to enable MadiaDB on boot so we execute the command.
sudo systemctl enable mariadb.service
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.
We will need php so we can interact with our database, collecting data, access control, user interactions and many more. We will start by installing the basic php modules.
sudo yum install php php-mysql
That modules should communicate with any database programs you will make later on, for now we will have to restart apache for the changes to be reflected.
sudo systemctl restart httpd.service
In order for us to install php modules we must know the name of the module and the purpose of it. So we will look for modules that we need by running the command.
sudo yum search php-
We will get a list of available modules to install just like in the below info:
php-whitehat101-apr1-md5.noarch : Apache's APR1-MD5 algorithm in pure PHP php-xcache.x86_64 : Fast, stable PHP opcode cacher php-xml.x86_64 : A module for PHP applications which use XML php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol php-xmlseclibs.noarch : PHP library for XML Security php-xmpphp.noarch : XMPPHP is the successor to Class.Jabber.PHP php-zendframework-zend-diactoros.noarch : PSR HTTP Message implementations php-zendframework-zendpdf.noarch : Zend Framework ZendPdf component php-zendframework-zendxml.noarch : Zend Framework ZendXml component php-zetacomponents-base.noarch : Zeta Base Component php-zetacomponents-console-tools.noarch : Zeta ConsoleTools Component
To know what is a module for we can execute.
sudo yum info php-zendframework-zendxml
Then you will see its version, size and information.
Name : php-zendframework-zendxml Arch : noarch Version : 1.0.2 Release : 2.el7 Size : 10 k Repo : epel/x86_64 Summary : Zend Framework ZendXml component URL : http://framework.zend.com/ License : BSD Description : An utility component for XML usage and best practices in PHP.
To install it we will run.
sudo yum install php-zendframework-zendxml
You can install more modules as you need fit by just repeating the above commands.
To see what php modules we have installed in our web server we have to create a php file in the web directory of apache. For this guide we will name it info.php.
Create a file in the directory
/var/www/html/ with a filename of info.php.
sudo nano /var/www/html/info.php
Copy the below texts and save the file.
<?php phpinfo(); ?>
Now go to your browser and enter the ipaddress of your server followed by /info.php like below:
make sure to replace 22.214.171.124 with the ip of your web server.
You should be able to see your php information much like what I have below depending on your installed php modules.
Thats it! Now you have your newly installed web server running. You can now upload files and serve them to your clients and users.
We hope you enjoy learning and reading our guide. If you do, please do not forget to write a comment.