Install Apache, MySQL and PHP on CentOS 7
Install Apache, MySQL and PHP on CentOS 7 Servers
This guide is available in template form to deploy to VPS Servers running Virtuozzo. Rebuild your server from the client area or the VPS control panel using this image – CentOS-7-86_x64-Apache-MySQL-PHP. Install Apache MySQL PHP.
We have already covered how to install Apache, MySQL and PHP on a CentOS 6 system so now we are going to go through the steps on how to install Apache, MySQL and PHP on a CentOS 7 system. We are going to use a LAMP stack to install the required software to an NVMe VPS Server.
Users should be using a SUDO user on servers. If you have not created a SUDO user you should do this first.
Install Apache – CentOS 7
*If you are using one of our templates on your VPS Apache is installed by default.
sudo yum install httpd
Once Apache is installed, start Apache
sudo systemctl start httpd.service
At this point, you should be able to visit your server’s IP address and see the default Apache webpage.
http://YOUR-IP/
HINT: If you do not know your server’s IP address you can use curl to curl the icanhazip.com website to return your IP address.
curl http://icanhazip.com
Providing you can see the default Apache webpage above next, you will want to start Apache on reboots. We do this with the following command
sudo systemctl enable httpd.service
Install MySQL (MariaDB) On CentOS 7
Now you have Apache working you will next want to install MySQL issue the below commands to get started
sudo yum install mariadb-server mariadb
Once the installation is complete next, start MySQL
sudo systemctl start mariadb
Finally, we will run the MySQL secure script. This will ask you to enter a password. Since this is a new install leave this blank and press enter to continue then, create a new MySQL root password. Answer y for the rest of the questions.
sudo mysql_secure_installation
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 authorization.
New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
... Success!
The last thing to do is to start MySQL on reboots with the following command
sudo systemctl enable mariadb.service
Install PHP on CentOS 7
Now you have Apache and MySQL setup and working the final thing to do is install PHP. We will be using yum again to install PHP to your server. To start, issue the below command
sudo yum install php php-mysql
PHP should now be installed. You will need to restart Apache to have them both work together. Issue the below command
sudo systemctl restart httpd.service
Install PHP Modules
The very last thing to do is install any PHP modules you require. To do this you can request a full list of modules available with the below command
sudo yum search php-
The returned result will look like this
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
To get more information about each extension you can use the yum info function. For example;
sudo yum info php-enchant
To install individual modules you can use
sudo yum install package
To install multiple modules you can use
sudo yum install package1 package2 package3
* Just switch packages for the required module like this
sudo yum install php-enchant php-fpm php-cli
Final Testing Of PHP (Optional)
At this point, your server is now set up with Apache, MySQL and PHP. you can continue testing your software to ensure all is working fine. We can create a PHP file with the default phpinfo script inside the file then, call that file via a browser which will display all the default PHP values on the server. If you have configured everything correctly this file will display. If something is wrong it will not display.
The file needs to be placed in the servers web root folder. On CentOS systems this is /var/www/html/ so, let’s use nano to create a info.php file and enter the default php code
nano /var/www/html/info.php
Inside this file place the following code
<?php phpinfo(); ?>
Save and exit the file. You should now navigate to http://YOUR_IP/info.php to see if the file renders. If it does your all good to go. If it does not before you retrace the steps in this guide try allowing HTTP and HTTPS traffic through the firewall. Issue the below commands
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
After you have finished testing your server you will want to remove this file so just issue the below command
sudo rm /var/www/html/info.php
Install PHP 7.3 on CentOS 7
This template is also available for First2Host customers to use. You can reinstall using this template from your client area or the VPS control panel.
To Install PHP 7 just run the below commands
yum remove php*
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Now that you have a server with Apache, PHP and MySQL why not Install HTOP to monitor the processes inside the server? Should you need to update the MySQL root password please follow this guide. You can now use this server to host websites using Apache Virtual Hosts.