Skipping the LAMP introduction, as I’m sure that most of you know what is all about. This tutorial will concentrate on how to install and configure famous LAMP stack – Linux Apache, MariaDB, PHP, PhpMyAdmin – on the last release of Red Hat Enterprise Linux 7.0 and CentOS 7.0, with the mention that both distributions have upgraded httpd daemon to Apache HTTP 2.4.

Requirements
Depending on the used distribution, RHEL or CentOS 7.0, use the following links to perform a minimal system installation, using a static IP Address for network configuration.
For RHEL 7.0
For CentOS 7.0
Step 1: Install Apache Server with Basic Configurations
1. After performing a minimal system installation and configure your server network interface with a Static IP Address on RHEL/CentOS 7.0, go ahead and install Apache 2.4 httpd service binary package provided form official repositories using the following command.
# yum install httpd

2. After yum manager finish installation, use the following commands to manage Apache daemon, since RHEL and CentOS 7.0 both migrated their init scripts from SysV to systemd – you can also use SysV and Apache scripts the same time to manage the service.
# systemctl status|start|stop|restart|reload httpd OR # service httpd status|start|stop|restart|reload OR # apachectl configtest| graceful

3. On the next step start Apache service using systemd init script and open RHEL/CentOS 7.0 Firewall rules using firewall-cmd, which is the default command to manage iptables through firewalld daemon.
# firewall-cmd --add-service=http
NOTE: Make notice that using this rule will lose its effect after a system reboot or firewalld service restart, because it opens on-fly rules, which are not applied permanently. To apply consistency iptables rules on firewall use –permanent option and restart firewalld service to take effect.
# firewall-cmd --permanent --add-service=http # systemctl restart firewalld

Other important Firewalld options are presented below:
# firewall-cmd --state # firewall-cmd --list-all # firewall-cmd --list-interfaces # firewall-cmd --get-service # firewall-cmd --query-service service_name # firewall-cmd --add-port=8080/tcp
4. To verify Apache functionality open a remote browser and type your server IP Address using HTTP protocol on URL (http://server_IP), and a default page should appear like in the screenshot below.

5. For now, Apache DocumentRoot path it’s set to /var/www/html system path, which by default doesn’t provide any index file. If you want to see a directory list of your DocumentRoot path open Apache welcome configuration file and set Indexes statement from – to + on <LocationMach> directive, using the below screenshot as an example.
# nano /etc/httpd/conf.d/welcome.conf

6. Close the file, restart Apache service to reflect changes and reload your browser page to see the final result.
# systemctl restart httpd

Step 2: Install PHP5 Support for Apache
7. Before installing PHP5 dynamic language support for Apache, get a full list of available PHP modules and extensions using the following command.
# yum search php

8. Depending on what type of applications you want to use, install the required PHP modules from the above list, but for a basic MariaDB support in PHP and PhpMyAdmin you need to install the following modules.
# yum install php php-mysql php-pdo php-gd php-mbstring


9. To get a full information list on PHP from your browser, create a info.php file on Apache Document Root using the following command from root account, restart httpd service and direct your browser to the http://server_IP/info.php address.
# echo "<?php phpinfo(); ?>" > /var/www/html/info.php # systemctl restart httpd

10. If you get an error on PHP Date and Timezone, open php.ini configuration file, search and uncomment date.timezone statement, append your physical location and restart Apache daemon.
# nano /etc/php.ini
Locate and change date.timezone line to look like this, using PHP Supported Timezones list.
date.timezone = Continent/City

Step 3: Install and Configure MariaDB Database
11. Red Hat Enterprise Linux/CentOS 7.0 switched from MySQL to MariaDB for its default database management system. To install MariaDB database use the following command.
# yum install mariadb-server mariadb

12. After MariaDB package is installed, start database daemon and use mysql_secure_installation script to secure database (set root password, disable remotely logon from root, remove test database and remove anonymous users).
# systemctl start mariadb # mysql_secure_installation


13. To test database functionality login to MariaDB using its root account and exit using quit statement.
mysql -u root -p MariaDB > SHOW VARIABLES; MariaDB > quit

Step 4: Install PhpMyAdmin
14. By default official RHEL 7.0 or CentOS 7.0 repositories doesn’t provide any binary package for PhpMyAdmin Web Interface. If you are uncomfortable using MySQL command line to manage your database you can install PhpMyAdmin package by enabling CentOS 7.0 rpmforge repositories using the following command.
# yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
After enabling rpmforge repository, next install PhpMyAdmin.
# yum install phpmyadmin

15. Next configure PhpMyAdmin to allow connections from remote hosts by editing phpmyadmin.conf file, located on Apache conf.d directory, commenting the following lines.
# nano /etc/httpd/conf.d/phpmyadmin.conf
Use a # and comment this lines.
# Order Deny,Allow # Deny from all # Allow from 127.0.0.1

16. To be able to login to PhpMyAdmin Web interface using cookie authentication method add a blowfish string to phpmyadmin config.inc.php file like in the screenshot below using the generate a secret string, restart Apache Web service and direct your browser to the URL address http://server_IP/phpmyadmin/.
# nano /etc/httpd/conf.d/phpmyadmin.conf # systemctl restart httpd


Step 5: Enable LAMP System-wide
17. If you need MariaDB and Apache services to be automatically started after reboot issue the following commands to enable them system-wide.
# systemctl enable mariadb # systemctl enable httpd

That’s all it takes for a basic LAMP installation on Red Hat Enterprise 7.0 or CentOS 7.0. The next series of articles related to LAMP stack on CentOS/RHEL 7.0 will discuss how to create Virtual Hosts, generate SSL Certificates and Keys and add SSL transaction support for Apache HTTP Server.
Thank you very much for your informative article on LAMP setup..
Hi
One more thing to note:
rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
[[email protected] yum-root-bB6l9i]# pwd
/var/tmp/yum-root-bB6l9i
//marsk
Dear friend, I have installed CentOS 7.0 as I can know until version of php supports. felix
Typo ‘LocationMach’ please change ‘LocationMatch’
and ‘nano /etc/httpd/conf.d/phpmyadmin.conf’ change to ‘nano /etc/httpd/conf.d/phpMyAdmin.conf’
New Version
you can add phpmyadmin for Centos 7:
sudo yum install epel-release
sudo yum install phpmyadmin
Can not install phpmyadmin on OEL 7.2 x64….
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
=>package rpmforge-release-0.5.3-1.el7.rf.x86_64 is already installed
Error: Package: phpmyadmin-2.11.11.3-2.el6.rf.noarch (rpmforge)
Requires: php-mbstring >= 4.1.0
Dont work! bad howto
Your instructions throws erros at:
# yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
and your image associated with that command also shows the error. Can’t get past this part.
@Lester,
Do this way…
It’s really late to answer this but I think I would let you know.
# yum install http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
You can get past right this way.
Thanks!!!
@sahadev: Check /etc/httpd/conf.d/phpmyadmin.conf file and verify your IP/netmask
##############
Order Deny,Allow
Deny from all
Allow from 10.0.0.0/24 ## Use your IP/Network CDIR
Require all granted
I tried to restrict phpmyadmin access to a particular ip address in httpd-2.4 but still it is not working
@Israrul,
How to configure PhpMyAdmin to allow access to specific IP address.
Open /etc/httpd/conf.d/phpMyAdmin.conf file and edit
Require ip& Allow from
lines as shown in the following example.Here is what phpMyAdmin.conf will look like with the added access rules.