Basic Installation
First, get root and update the OS:
sudo -s yum update
With that done, let’s get the basic packages and services installed:
yum install mysql mysql-server mysql-devel httpd httpd-devel mod_ssl php php-devel php-mysql php-gd php-dom php-pear php-json memcached svn gcc pcre-devel make
That gets us Apache HTTPD with SSL, PHP with a number of modules, Memcached, and a few system tools.
Let’s set the packaged services to start on reboot:
chkconfig --level 345 httpd on chkconfig --level 345 mysqld on chkconfig --level 345 memcached on chkconfig --list
APC and the Memcahe module are both essential for performance, but they need to be installed using PECL. Simply accept the default options for everything, then execute the echo command as shown to create the ini file.
pecl install apc-beta echo extension=apc.so > /etc/php.d/apc.ini
pecl install memcache echo extension=memcache.so > /etc/php.d/memcache.ini
And with all that you should have a working, if not fully configured, system. Let’s start the services to take a look:
/sbin/service mysqld start /sbin/service memcached start /sbin/service httpd start
MySQL Configuration
MySQL should output a number of messages about configuring itself on the first startup, but all the services should start.
Now we need to create the database and user:
mysql -u root -e "CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci;" mysql -u root -e "CREATE USER 'myuser'@'localhost';" mysql -u root -e "GRANT ALL ON mydb.* TO 'myuser'@'localhost';"
And then import the database from an export:
mysql pro -u root < mydb.sql
Apache HTTPD+SSL Configuration
Installing your app is up to you, but I usually fetch it via SVN into /var/www/appname.
And now to configure HTTPD services:
In /etc/httpd/conf/httpd.conf set AllowOverride All as shown below:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
Delete the vhost definition in /etc/httpd/conf.d/ssl.conf and create a new vhost file in /etc/httpd/conf.d/vhost.conf with something like the following:
<VirtualHost *:80> ServerAdmin support@example.com ServerName falcon.pro.gostage.it DocumentRoot /var/www/appname ErrorLog logs/appname-error_log CustomLog logs/appname-access_log common </VirtualHost> <VirtualHost *:443> ServerAdmin support@example.com ServerName falcon.pro.gostage.it DocumentRoot /var/www/appname ErrorLog logs/appname-error_log CustomLog logs/appname-access_log common SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key </VirtualHost>
Now restart the HTTP daemon:
/sbin/service httpd restart
Recently Commented