Ubuntu - Install php5, mysql, apache2, ssl, pdo & pdo_mysql
http://www.theatons.com/ubuntu-install-php5-mysql-apache2-ssl-pdo-pdo_mysql
I recently tried SUSE enterprise 10 and although i found the GUI absoloutly excellent, wireless support and sound card support was such an effort to get working, i have come back to good ol’ ubuntu. The classic linux distro where stuff seems to ‘just work’.
The following is meant to be a tutorial for setting up a basic webserver on your ubuntu desktop.
Installation instructions / How to setup PHP5, Mysql, Apache2, SSL, Mod_rewrite, pdo and pdo_mysql
Overview / Index
The reason i have put this together, is so people don’t have to search for multiple things, and can find all the essentials here
- Install Apache2
- Install MySql 5
- Install PHP 5
- Install PHPmyadmin
- Install SSL certificate for apache
- Install PDO & PDO_Mysql
I am running Ubuntu 7.10 and fresh installation (about 10 mins ago).
I am going to setup Apache2, PHP5, MySQL, SSL, PDO loading the PDO_MySQL driver. This document is ment to help people who struggle with any of these and provide a bit more of a ‘one stop shop’ to anyone trying to set these services up.
ntom@localhost:~$ sudo apt-get install apache2
Incase you need to, you can find how to add extra repositories here
ntom@localhost:~$ sudo apt-get install mysql-server libmysqlclient15-dev
ntom@localhost:~$ sudo apt-get install php5 php5-common libapache2-mod-php5 php5-gd php5-dev curl libcurl3 libcurl3-dev php5-curl
ntom@localhost:~$ sudo aptitude install phpmyadmin
At this point, you should be able to go to http://localhost/ and see your webserver is now up and running.
You should also now see a folder called ‘phpmyadmin‘ which if you click on, and enter ‘root’ as the username, leave the password blank, and login, will give you access to your mysql db’s.
Step 5 > SSL certificate for Apache2
ntom@localhost:~$ sudo apache2-ssl-certificate
If you get back that it can’t find apache2-ssl-certificate .. then not to worry, this is a known bug, and please read my comment at the bottom.. direct link to the comment click here
Answer the questions
ntom@localhost:~$ sudo a2enmod ssl
This enables the ssl mod for apache2
ntom@localhost:~$ echo "Listen 443" | sudo tee -a /etc/apache2/ports.conf
ntom@localhost:~$ sudo ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl
ntom@localhost:~$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
To understand more about sites-enabled, sites-available click here
ntom@localhost:~$ sudo gedit /etc/apache2/sites-available/ssl
Select All (crt+a), delete, then paste in this:
NameVirtualHost *:443 <virtualhost *:443> ServerAdmin webmaster@localhost SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem DocumentRoot /var/www/ <directory /> Options FollowSymLinks AllowOverride None </directory> <directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </directory> ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </directory> </virtualhost>
Then we need to change the default file, so…
ntom@localhost:~$ sudo gedit /etc/apache2/sites-available/default
and make sure the following lines say this:
NameVirtualHost *:80 <virtualhost *:80>
 
You may also want to enable mod_rewrite.. todo so, follow the following steps:
ntom@localhost:~$ sudo a2enmod rewrite
You will also need to edit sites-available default, and ssl:
sudo gedit /etc/apache2/sites-available/default
And the same again for the ssl file.
Here you will need to change the section which says ‘AllowOverride None’ to:
AllowOverride All
Now restart apache
ntom@localhost~: sudo apache2 -k restart
First, we need to install PEAR, so…
sudo apt-get install php-pear
If you get anything about warning, ‘phpize’, this means you need php-dev, or if your using sypantic package manager, ‘php5-dev’.
sudo pecl install pdo
This installs pdo.
The next thing you want todo is install the pdo_mysql drivers. Do this by doing the following:
sudo pecl install pdo_mysql
If however you get a error somthing along the lines of:
checking for MySQL support for PDO... yes, shared checking for mysql_config... not found configure: error: Cannot find MySQL header files under ERROR: `/tmp/tmpRiQ5ax/PDO_MYSQL-1.0.2/configure' failed
Then you should download and install the following packages:
sudo apt-get install libmysqlclient15-dev
and then try to re-install pdo_mysql.
Once this is finished and sucessful (it was for me), its best to then run the following code:
sudo updatedb sudo gedit /etc/php5/apache2/php.ini
Inside the php.ini, at the bottom, add the following lines:
extension=pdo.so extension=pdo_mysql.so
The end
I hope this has been helpfull to many people out there. I hope it has saved people endless hours looking at different sites for different aspects of this tutorial.
Please be sure to leave some comments
