Webserver with CMS
Ubuntu: The first thing we did, was to install Ubuntu. We used the new LTS version, 12.04.
Apache (LAMP): Next thing was to install Apache, MySQL and PHP. We used the easy way, by selecting the LAMP stack during installation of Ubuntu. If you forget to select it during installation, simply type 'tasksel' in a shell, and you get the same menu where you can select LAMP.
SSL:
We have set up our server to be apple to work with encrypted traffic. To do this we had to enable SSL.
Commands to do this:
generate keys for CSR (Certificate Signing Request)
- openssl genrsa -des3 -out server.key 1024
Create insecure key
- openssl rsa -in server.key -out server.key.insecure
- mv server.key server.key.secure
- mv server.key.insecure server.key
Create the CSR
- openssl req -new -key server.key -out server.csr
Sign the certificate
- openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Copy the files to the right dirs
- cp server.crt /etc/ssl/certs
- cp server.key /etc/ssl/private
Enable SSL
- a2enmod ssl
enable certifikate file
- a2ensite "filename"
disable certifikate file
- a2dissite "filename"
Reload apache server
- service apache2 reload
Tomcat:
To install Tomcat, we first had to make sure Java was installed:
- apt-get install openjdk-7-jre
Then we could install Tomcat, with these commands (including documentation):
- mkdir Tomcat
- wget http://apache.hoxt.com/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27-fulldocs.tar.gz
- tar -zxvf apache-tomcat-7.0.27-fulldocs.tar.gz
- wget http://apache.hoxt.com/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27.tar.gz
- tar -zxvf apache-tomcat-7.0.27.tar.gz
- cd apache-tomcat-7.0.27/bin
- ./startup.sh
Drupal (CMS): We read about different CMS', and we agreed that Drupal seemed to be the best choice for us.
- It s very easy to install.
- The administrator panel is quite easy to navigate in.
- It is easy to create new content.
- There are themes/plugins for every need.
- It is possible to include php and javascript code directly in your page content.
The installation was done in a few easy steps.
- Download and extract latest version of Drupal from their website.
- Create a database.
- Point a browser to your server, and follow instructions.
That's it!
NOAA Weather information:
We have created a script, which we run hourly on the server. The script fetches a textfile with weather information
from Karup. The information from this textfile is parsed, and formatted to be easier to read (This is done with a small php script).
DNS: To setup our server to act as a DNS server, we installed bind9 (apt-get install bind9). To configure it, we needed to change some configuration files to look like this: /etc/bind/named.conf.local looks like this:
# Our domain zone
zone "mo-web.local"
{
type master;
file "/etc/bind/zones/mo-web.local.db";
};
# For reverse DNS
zone "0.0.10.in-addr-arpa"
{
type master;
file "/etc/bind/zones/rev.0.0.10.in-addr.arpa";
};
in /etc/bind/named.conf.options, uncomment this section, and add some DNS servers:
forwarders {
8.8.8.8;
8.8.4.4;
0.0.0.0;
};
/etc/bind/zones/mo-web.local.db looks like this:
$TTL 604800
@ IN SOA ns.mo-web.local. root.mo-web.local. (
8 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS mo-web.local.
@ IN A 192.168.139.128
ns IN A 192.168.139.128
www IN A 192.168.139.128
And finally /etc/bind/zones/rev.0.0.10.in-addr.arpa:
$TTL 3D
@ IN SOA ns.mo-web.local. admin.mo-web.local. (
2007062001
28800
604800
604800
86400
)
IN NS ns.mo-web.local.
2 IN PTR ubuntu.mo-web.local
FTP: We used vsftpd as ftp server:
- apt-get install vsftpd
Then we changed the configuration file (/etc/vsftpd.conf) on the following lines:
// disable anonymous logins
anonymous_enable=NO
// enable login for local users
local_enable=YES
// local users will only have access to their home dir
chroot_local_user=YES
restart ftp server
- service vsftpd restart
Finally we created a user with rights to /var/www/ (by setting home dir to /var/www/):
- useradd -d /var/www/ -m paul
- passwd paul