apt-get install apache2 libapache2-mod-php5 mysql-server php5-mysql /etc/init.d/apache2 restart #I found that I had to restart apache once more to get php to work.
vi /var/www/phpinfo.php #Add in the following: <?php phpinfo(); ?>
Browse to: http://ipaddress/phpinfo.php
/etc/init.d/apache2 restart
a2enmod ssl a2ensite default-ssl /etc/init.d/apache2 restart /usr/share/doc/apache2.2-common/README.Debian.gz
Browse to: https://ipaddress/phpinfo.php
mkdir /etc/apache2/ssl cd /etc/apache2/ssl openssl req -x509 -days 365 -newkey rsa:1024 -keyout hostkey.key -nodes -out hostcert.pem chmod 600 * vi /etc/apache2/sites-enabled/default-ssl #update the following: SSLCertificateFile /etc/apache2/ssl/hostcert.pem SSLCertificateKeyFile /etc/apache2/ssl/hostkey.key
The above config is my way of creating a SSL cert for apache using openssl. Debian squeeze has a make-ssl-cert utility.
See: /usr/share/doc/apache2.2-common/README.Debian.gz
This config sets up multiple vhosts, and allows https access to each vhost. If you use the default-ssl setup with debian squeeze you may get the error: warn _default_ VirtualHost overlap on port 443, the first has precedence
... waiting [[Fri|Apr 08 15:02:33 2011]] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
vi /etc/apache2/ports.conf #Add-in the following above Listen 443 NameVirtualHost *:443
I prefer to tidy up the vhosts a little, calling vhost configs 01-sitexz, 02-sitexy. Note: the 01-sitexz, because it is listed first, ordered by filename, is the default vhost for the server. I.E. if you browse to the http://ipaddress you'll get the 01-sitexz vhost.
cd /etc/apache2/sites-available cat default-ssl >> default mv default 01-default vi /etc/apache2/sites-enabled/01-default #change <VirtualHost _default_:443> #to <VirtualHost *:443> rm /etc/apache2/sites-enabled/* a2ensite 01-default #all a2ensite does is to create a symlink from sites-available into sites-enabled
vi /etc/apache2/sites-available/02-test <VirtualHost *:80> ServerAdmin test@burkesys.com ServerName test.burkesys.com DocumentRoot /var/www/test CustomLog /var/log/apache2/access.log combined ErrorLog /var/log/apache2/error.log Loglevel warn <Directory /> Options FollowSymLinks MultiViews AllowOverride None </Directory> </VirtualHost> <VirtualHost *:443> ServerAdmin test@burkesys.com ServerName test.burkesys.com DocumentRoot /var/www/test CustomLog /var/log/apache2/access.log combined ErrorLog /var/log/apache2/error.log Loglevel warn <Directory /> Options FollowSymLinks MultiViews AllowOverride None </Directory> SSLEngine on SSLCertificateFile /etc/apache2/ssl/hostcert.pem SSLCertificateKeyFile /etc/apache2/ssl/hostkey.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [[2-6]]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 # MSIE 7 and newer should be able to use keepalive BrowserMatch "MSIE [[17-9]]" ssl-unclean-shutdown </VirtualHost> a2ensite 02-test /etc/init.d/apache2 restart
Browse to: http://ipaddress , https://ipaddress , http://test.server.com , https://test.server.com
You will have to accept the SSL cert warning, however all vhosts should show up correct.
<VirtualHost *:80> ProxyRequests Off ProxyPreserveHost On ProxyPass / http://192.168.1.3:80/ ProxyPassReverse / http://192.168.1.3:80/ ServerName www.tom.me ServerAlias *tom.me CustomLog /var/log/apache2/access_tom.log combined ErrorLog /var/log/apache2/error_tom.log </VirtualHost> <VirtualHost *:443> ProxyRequests Off ProxyPreserveHost On ProxyPass / https://192.168.1.3:443/ ProxyPassReverse / https://192.168.1.3:443/ ServerName www.tom.me ServerAlias *tom.me CustomLog /var/log/apache2/access_tom.log combined ErrorLog /var/log/apache2/error_tom.log SSLProxyEngine On SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 # MSIE 7 and newer should be able to use keepalive BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost>