Install Apache
Apache is the most popular Web HTTP server for a Linux servers.
yum install httpd httpd-devel
We might need the httpd-devel libraries to compile and install other modules from the sources, just to be on the safer side. /etc/httpd/conf/httpd.conf – Apache configuration file location.
/etc/init.d/httpd start
Install MySQL Database Server
MySQL is a widely used open source database server on most Linux servers and can very well integrate to PHP and Apache server on CentOS/RHEL.
yum install mysql mysql-server mysql-devel
If you attempt to type mysql in command prompt, you will be getting this nasty error.
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
This is because you are not running the mysqld daemon before launching the mysql client. The file /var/lib/mysql/mysql.sock will be automatically created upon running the first instance of mysql.
To fix:
First start the mysql daemon, then type mysql:
/etc/init.d/mysqld start
mysql
Changing MySQL Root Password
By default the root password is empty for the mysql database. It is a good idea to change the mysql root password to a new one from a security point of view.
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;
Once done, check by logging in:
mysql -u root -p
Enter Password:
To Create A New MySQL User
To create a new mysql user ‘guest’ with ‘all privileges’ on the database ‘demo’:
mysql > create database demo
mysql >GRANT ALL PRIVILEGES ON demo.* TO 'guest'@'localhost' IDENTIFIED BY 'guest' WITH GRANT OPTION;
mysql> UPDATE user SET Password=PASSWORD('guest') WHERE user='guest';
That’s it! MySQL is ready! Don’t forget to remember the root password as we might be using it with phpmyadmin.
Install PHP5 Scripting Language
Installing PHP5 with the necessary modules is so easy and can be configured for both the Apache and mysql environment.
yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml
Don’t forget to install php-gd (gd library). It is very important if we plan to run captcha scripts on our server and so as other which are dependent on mysql and other functions.
Restart Apache to load php.
/etc/init.d/httpd restart
To Test If PHP Is Working Or Not:
Create a file named /var/www/html/test.php with the following phpinfo() function inside php quotes.
Then point your browser to http://ip.address/test.php.
That’s it! You should see a php configuration file displaying all kind of paths and installed modules.
Closely observe the installed configuration on your server.
* PHP Paths (php.ini path)
* Apache paths and Loaded Modules (mod_security, mod_evasive if installed_
* PHP GD Library
* MySQL paths and other information
Install phpMyAdmin
phpMyAdmin is a free web based MySQL database Administration Tool. Without phpMyAdmin it is almost impossible to mysql db operations in the command line. phpMyAdmin has become so convenient and it is absolutely sought by most webmasters to be present along with the mysql server.
yum install phpmyadmin
Point your browser to: http://ip.address/phpmyadmin.
Common Errors
You might encounter the following errors while configuring phpmyadmin.
Forbidden
You don't have permission to access /phpmyadmin/ on this server.
To fix:
Edit the /etc/httpd/conf.d/phpmyadmin.conf and uncomment the line deny from all.
nano /etc/httpd/conf.d/phpmyadmin.conf
Order Deny,Allow
# Deny from all
Allow from 127.0.0.1
Error
The configuration file now needs a secret passphrase (blowfish_secret)
To fix:
nano /usr/share/phpmyadmin/conf.inc.php
Look for a line and enter any password. Just dont leave it empty!
$cfg['blowfish_secret'] = 'mydemopass'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
It worked for me using the above methods!
Log into the phpmyadmin with the mysql root password we changed while installing the mysql database.
Install Webmin
Webmin a free server hosting control panel for Linux. It is a web based hosting administration tool and can be handy to tweak settings in your server if you are a beginner to Linux! You can download webmin here. Since webmin cannot be installed using yum, we can download an RPM package and install it on our server.
wget
rpm - i webmin-1.410-1.noarch.rpm
That should be a pretty easy installation! Remember webmin uses port 10000 and should not be blocked by your firewall.
Point your browser to: http://ip.address:10000
You should see a webmin login. But we don’t know the login and password yet! To set up the webmin password run the script below…
/usr/libexec/webmin/changepass.pl /etc/webmin admin
Log in with the admin username and new webmin password!
To uninstall webmin, just run:
/etc/webmin/uninstall.sh
Final Steps
We want the Apache and mysql to be loaded at every boot so we switch them on using chkconfig:
chkconfig httpd on
chkconfig mysqld on