Hoe kun je het beste een LAMP Server (Linux – Apache – MySQL – PHP) opzetten? Ik heb hierbij gekozen voor het Debian OS en leg de benodigde stappen uit.

Zoals je in een voorgaande blog hebt kunnen lezen heb ik een nieuwe webserver onder eigen beheer in elkaar gezet. Nu moest hierop nog software gezet worden zodat ik hierop WordPress kan hosten. Ik heb hiervoor de Debian distributie (link) gekozen daar deze makkelijk en handig in gebruik is. Verder is dit een goede basis voor een LAMP Server (Linux, Apache, MySQL en PHP).

Eerst heb ik de 64 bits versie van Debian gedownload (link) en op een CD gebrand.

Om Debian te installeren heb ik geboot vanaf deze CD en alle ‘gebruikelijke’ vragen beantwoord. Bij de vraag welke Software Installatie ik precies wilde heb ik gekozen voor:

(*) Webserver
(*) Mailserver
(*) SQL database

Na de installatie was het zaak om een en ander te gaan configureren.

VI Editor

Installeer deze met het volgende commando:

 apt-get install vim-nox

Netwerk instellingen

Zorg dat je een vast IP adres instelt zodat je later gemakkelijk een port-forward kunt instellen op je router. Je moet hierbij de volgende file aanpassen met de vi editor:

/etc/network/interfaces

Hierna ziet deze er ongeveer als volgt uit:

# This file describes the network interfaces available.
# For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback


# The primary network interface
iface eth0 inet static
address 192.168.1.25
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Nadat je de aangepaste file hebt weggeschreven moet je je netwerk services opnieuw opstarten met

/etc/init.d/networking restart

Zorg er verder ook nog voor dat je hosts file correct is. Dit kun je instellen in de volgende configuratie-file:

/etc/hosts

Hierna ziet deze er ongeveer als volgt uit:

127.0.0.1       localhost.exampledomain.com     localhost
127.0.0.1       Webserver.exampledomain.com     Webserver
192.168.1.25    Webserver.exampledomain.com     Webserver

SSH

Daar ik een ‘headless’ (zonder monitor/keyboard) webserver heb is het nodig dat je SSH installeert. Dit doe je door:

apt-get install ssh openssh-server

Vanuit veiligheidsoogpunt moet je vervolgens de ‘PermitRootLogin’ instelling veranderen van ‘yes’ in ‘no’. Dit kun je doen in de configuratie-file:

/etc/ssh/sshd_config

Hierna moet je de SSH opnieuw starten:

/etc/init.d/ssh restart

Update Debian

Het is verstandig om Debian te updaten met de volgende commando’s:

apt-get update
apt-get upgrade

MySQL

Je installeert MySQL met het volgende commando:

apt-get install mysql-server mysql-client libmysqlclient15-dev

Vervolgens moet je de ‘bind-address’ configuratie uitcommentarieren (# ervoor zetten) in de volgende configuratie-file:

/etc/mysql/my.cnf

Hierna moet je de MySQL opnieuw starten:

/etc/init.d/mysql restart

SSMTP Email

Je installeert sSMTP email met het volgende commando:

aptitude install ssmtp

In de file ‘/etc/ssmtp/ssmtp.conf’ configureer je met welke account email verstuurt wordt. Hieronder heb je een voorbeeld hiervan, waarbij je tussen <> je eigen instellingen moet zetten.

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=<email address>
 
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
UseTLS=yes
UseSTARTTLS=yes
 
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=<host-name>
 
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=yes
 
# Username and password for Google's Gmail
AuthUser=<gmail user-name>
AuthPass=<password>
AuthMethod=LOGIN

In ‘/etc/ssmtp/revaliases’ kun je eventueel nog aliases definieren:

root:username@gmail.com
www-data:username@gmail.com

Vervolgens moet je in de ‘/etc/php5/apache2/php.ini’ nog het ‘sendmail’ path aanpassen:

sendmail_path = "/usr/sbin/ssmtp -t"

Aanpassen Apache2

Activeer een aantal modules in Apache met de volgende commando’s:

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include
a2enmod headers
a2enmod expires

Zorg er verder voor dat de MySQL extensie voor PHP beschikbaar is met het volgende commando:

apt-get install php5-mysql

Hierna moet je de Apache service opnieuw starten

/etc/init.d/apache2 restart

Klok synchronisatie

Deze installeer je met het volgende commando:

apt-get install ntp ntpdate

PhpMyAdmin

Dit is erg handig om de je databases van MySQL te beheren. Installeer deze met het volgende commando:

apt-get install phpmyadmin

Kies hierbij dan (*) Apache2 als installatie. Je database beheer is nu beschikbaar onder:

http://ip-address/phpmyadmin/

FTP

Voor het updaten/upgraden van WordPress is het nodig dat je een FTP server hebt draaien. Deze installeer je met het volgende commando:

apt-get install proftpd

Vervolgens moet je deze configureren in ‘/etc/proftpd/proftpd.conf’. Na het aanpassen van de FTP instellingen moet je deze herstarten met:

/etc/init.d/proftpd restart

Samba

Om je webserver vanuit een Windows PC te bereiken is het handig om Samba te installeren. Je kunt dan je web-lokatie met een drive-letter benaderen.

Om Samba te installeren voer je het volgende commando uit:

apt-get install samba samba-client

Vervolgens moet je instellen welke gebruikers toegang hebben tot een lokatie op je webserver:

useradd <user-name>

Verder moet je ook nog een paswoord geven aan deze gebruiker met het volgende commando:

smbpasswd -a <user-name>

In de configuratie-file ‘/etc/samba/smb.conf’ stel je in welke lokatie je wilt delen:

Ik heb hierbij het volgende ingesteld:

[WordPress]
path = /var/www
comment = Share to WordPress Homepage
available = yes
public = yes
writable = yes
browseable = yes
valid users = <user-name>
force user = root
force group = root

Hierna moet je Samba opnieuw starten:

/etc/init.d/samba restart

In principe heb je nu alle basis componenten voor een WordPress installatie. De standaard home-page is nu beschikbaar in /var/www.

De basis configuratie voor je Apache service is beschikbaar in /etc/apache2/apache2.conf

Om te zorgen dat je ‘permalinks’ in WordPress goed werken moet je de volgende file nog aanpassen:

/etc/apache2/sites-available/default

Zorg ervoor dat hierin je ‘DocumentRoot’ goed staat ingesteld en dat je ‘AllowOverride’ hebt ingesteld op ‘all’.

Hieronder een voorbeeld van een stukje van deze file:

ServerAdmin Henri.Matthijssen@planet.nl
DocumentRoot /var/www
<Directory /var/www/>
   Options Indexes FollowSymLinks Multiviews
   AllowOverride all
   Order allow,deny
   allow from all
</Directory>

Als je hier aanpassingen maakt dan moet je de Apache service weer opnieuw starten:

/etc/init.d/apache2 restart

Vanaf hier kun je nu de 5-minuten install van WordPress volgen (link).