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).