Install Apache Web
| sudo yum install httpd |
Edit Apache's httpd.conf
The httpd.conf can be found in /etc/httpd/conf/ and configures resource usage.
This is an example of a configuration for a VPS with 2GB of RAM:
| KeepAlive Off |
| Â |
| ... |
| Â |
| <IfModule prefork.c> |
| StartServers |
| MinSpareServers 20 |
| MaxSpareServers 40 |
| MaxClients 200 |
| MaxRequestsPerChild 4500 |
| </IfModule> |
NOTE: The Apache config should be closely monitored. Different sites may require adjustment of these values to optimize performance. This configuration is presented as a good baseline.
Set Up Virtual Hosts
Create a file named vhost.conf in /etc/httpd/conf.d using your own domain in place of yourdomain.com:
| NameVirtualHost *:80 |
| Â |
| <VirtualHost *:80> |
| ServerAdmin webmaster@yourdomain.com |
| ServerName yourdomain.com |
| ServerAlias www.yourdomain.com |
| DocumentRoot /var/www/yourdomain.com/public_html/ |
| ErrorLog /var/www/yourdomain.com/logs/error.log |
| CustomLog /var/www/yourdomain.com/logs/access.log combined |
| </VirtualHost> |
NOTE: you will need to make a new entry in your vhost.conf file like this for each domain you intend to host on your VPS
Now you must make the directories referenced in your vhost.conf file - remember to replace yourdomain.com with your actual domain name:
| sudo mkdir -p /var/www/yourdomain.com/public_html |
| sudo mkdir /var/www/yourdomain.com/logs |
Start Apache
The first command will start the Apache service, and the second command will make Apache run on boot:
| sudo service httpd start |
| sudo /sbin/chkconfig --levels 235 httpd on |
Install MySQL
| sudo yum install mysql-server |
Start MySQL
| sudo service mysqld start |
| sudo /sbin/chkconfig --levels 235 mysqld on |
Secure MySQL
We suggest you answer "yes" to all the options given when you run this command:
| mysql_secure_installation |
Create a Database
First you will need to log in to MySQL:
| mysql -u root -p |
Now, create a database and user, replacing webdata with your database name, webuser with your username, and password with a strong password:
| create database webdata; |
| grant all on webdata.* to 'webuser' identified by 'password'; |
Quit MySQL:
| quit |
Install PHP
| sudo yum install php php-pear |
Install MySQL support:
| sudo yum install php-mysql |
Edit the /etc/php.ini to improve performance, error messages, and logs:
| error_reporting = E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR |
| error_log = /var/log/php/error.log |
| max_input_time = 30 |
Create the error directory
| sudo mkdir /var/log/php |
| sudo chown apache /var/log/php |
Restart Apache:
| sudo service httpd restart |
Â