LAMP installatie (CentOS)

5
LAMP installatie - CentOS Frederik Vos Inhoudsopgave 1 Inleiding 1 2 Benodigdheden 1 3 Network configuratie 2 4 Dnsmasq 3 5 MySQL Database server 3 6 Apache Web server + PHP 4 7 PHPMyAdmin 4 8 Auteur 5 1. Inleiding De term LAMP 1 (Linux + Apache + Mysql + PHP) is inmiddels erg ingeburgerd geraakt, en als gevolg daarvan zijn er veel handleidingen op internet te vinden voor de diverse distributies. Mijn persoonlijke ervaringen is dat veel van deze handleidingen fragmentarisch zijn: beschreven wordt bijvoorbeeld wel hoe de software te installeren, maar de tip hoe de firewall te configureren ontbreekt vervolgens. Een extra doel van dit document is de configuratie extra geschikt te maken voor testen. 2. Benodigdheden Als basis gebruiken we de installatie zoals beschreven is in het document: “CentOS als VMware JeOS Appliance” 2 . 1 http://nl.wikipedia.org/wiki/LAMP 2 http://issuu.com/inktvis75/docs/jeos-centos

description

Installatie van Apache + Mysql + PHP + PHPMyAdmin in CentOS 6.4

Transcript of LAMP installatie (CentOS)

Page 1: LAMP installatie (CentOS)

LAMP installatie - CentOS

Frederik Vos

Inhoudsopgave

1 Inleiding 1

2 Benodigdheden 1

3 Network configuratie 2

4 Dnsmasq 3

5 MySQL Database server 3

6 Apache Web server + PHP 4

7 PHPMyAdmin 4

8 Auteur 5

1. Inleiding

De term LAMP1 (Linux + Apache + Mysql + PHP) is inmiddels erg ingeburgerdgeraakt, en als gevolg daarvan zijn er veel handleidingen op internet te vindenvoor de diverse distributies.

Mijn persoonlijke ervaringen is dat veel van deze handleidingen fragmentarischzijn: beschreven wordt bijvoorbeeld wel hoe de software te installeren, maar detip hoe de firewall te configureren ontbreekt vervolgens.

Een extra doel van dit document is de configuratie extra geschikt te maken voortesten.

2. Benodigdheden

Als basis gebruiken we de installatie zoals beschreven is in het document:“CentOS als VMware JeOS Appliance”2.

1http://nl.wikipedia.org/wiki/LAMP2http://issuu.com/inktvis75/docs/jeos-centos

Page 2: LAMP installatie (CentOS)

3 NETWORK CONFIGURATIE

We maken ook gebruik van third-party repository EPEL3. Deze laat zich eenvou-dig aan het systeem toevoegen. Download de epel-release rpm vanaf de EPELwebsite en installeer deze:

cd /tmpwget ftp://mir01.syntis.net/epel/6/x86_64/epel*.rpmrpm -ivh rpm -ivh epel-release*.rpm

Opmerking: wget ondersteund bij het ftp protocol filename-globbing, daaromhoef je niet de volledige bestandsnaam op te geven en heb je daardoor ook altijdde meest recente versie.

3. Network configuratie

Servers via DHCP een ip adres laten krijgen is, uitzonderingen daar gelaten geengoed idee. Configureer een static ip adres, door het bewerken van het bestand:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0TYPE=ethernetBOOTPROTO=staticONBOOT=yesNM_CONTROLLED=noIPADDR=192.168.0.70NETMASK=255.255.0.0GATEWAY=192.168.0.254DNS1=127.0.0.1

Opmerking: uiteraard moeten de ip adressen in bovenstaand voorbeeld wordenaangepast.

Maak deze instellingen actief:

ifdown eth0 && ifup eth0

Pas de hostname aan in het bestand:/etc/sysconfig/network

HOSTNAME=centos-lamp.localdomain

Opmerking: Uiteraard hier ook de hostname aanpassen naar eigen wens, maarlaat localdomain staan.

Pas vervolgens ook het bestand aan:/etc/hosts

127.0.0.1 localhost localhost.localdomain127.0.0.2 centos-lamp.localdomain centos-lamp

Opmerking: Wanneer je bijvoorbeeld een website wil aanbieden met als host-name www.example.com dan voeg je later een entry toe aan het hosts be-stand, waarbij je het ip adres gebruikt waarop je de website wilt gaan be-naderen. Uiteraard moet je dit ip adres dan wel op een netwerk-interface

3http://fedoraproject.org/wiki/EPEL

2

Page 3: LAMP installatie (CentOS)

5 MYSQL DATABASE SERVER

configureren, maak dan een bestand aan: ifcfg-eth0.0 aan in de directory/etc/sysconfig/network-scripts, vergeet daarbij niet ook de DEVICE para-meter aan te passen. Uiteraard: het volgende ip adres krijgt eth0.1 etc.

Als laatste stap de firewall configureren:

lokkit --default=serverlokkit --service=httplokkit --service=dnslokkit --update

Na deze configuratie wijzigingen is het verstandig CentOS te rebooten. Contro-leer na de reboot of het bestand /etc/resolv.conf er als volgt uit ziet:

nameserver 127.0.0.1

Wanneer dit niet het geval is, pas dit dan alsnog handmatig aan.

4. Dnsmasq

Het is een goed idee om Dnsmasq te gebruiken, deze lichte dns-server imple-mentatie stelt je in staat om virtual hosting goed te kunnen testen. Het enigewat je dan namelijk moet doen is de nameserver van de client te veranderen inhet ip adres van deze LAMP machine.

Installatie van de software:

yum install dnsmasq

Vervolgens eerst een backup maken van de meegeleverde configuratie:

mv /etc/dnsmasq.conf /etc/dnsmasq.org

Maak een nieuw bestand /etc/dnsmasq.conf aan met de volgende inhoud:

resolv-file=/etc/resolv.dnsmasqdomain=localdomainselfmx

Maak een nieuw bestand aan /etc/resolv.dnsmasq met de volgende inhoud:

nameserver 8.8.8.8

Opmerking: uiteraard mag je ook andere DNS servers gebruiken!

Start Dnsmasq en zorg ervoor dat deze gestart wordt tijdens het boot-proces:

service dnsmasq startchkconfig dnsmasq on

5. MySQL Database server

We installeren van de database server MySQL zowel de server als de client soft-ware. Weliswaar is de client software niet strict noodzakelijk, maar het maaktbeheer, testen en troubleshooten wel gemakkelijker.

3

Page 4: LAMP installatie (CentOS)

7 PHPMYADMIN

yum groupinstall "MySQL Database client"yum groupinstall "MySQL Database server"

Start Mysql en zorg ervoor dat deze gestart wordt tijdens het boot-proces:

service mysqld startchkconfig mysqld on

Standaard wordt MySQL nogal onveilig afgeleverd, gelukkig is er een script diedit probleem oplost:

mysql_secure_installation

Gebruik daarbij de volgende instellingen:

• Set root password? [Y/n] y

• Remove anonymous users? [Y/n] y

• Disallow root login remotely? [Y/n] y

• Remove test database and access to it? [Y/n] y

• Reload privilege tables now? [Y/n] y

6. Apache Web server + PHP

Installatie van de webserver software gaat net zoals bij MySQl eenvoudig doorhet gebruik van de groupinstall functie van YUM:

yum groupinstall "Web Server"yum groupinstall "PHP Support"

Start Apache, en ook deze moet gestart worden tijdens het boot-proces:

chkconfig httpd onservice httpd start

Om te controleren of PHP werkt maken we een bestand aan phpinfo.php aanin de directory /var/www/html.

<?phpphpinfo();

?>

Controleer nu bijvoorbeeld met de text-browser Elinks of alles naar behorenfunctioneert:

elinks http://127.0.0.1/phpinfo.php

7. PHPMyAdmin

Om de databases eenvoudig te beheren installeren we ook het handige en zeerpopulaire PHPMyAdmin4.

4http://http://www.phpmyadmin.net

4

Page 5: LAMP installatie (CentOS)

8 AUTEUR

yum install phpMyAdmin

Open vervolgens het bestand /etc/httpd/conf.d/phpMyAdmin.conf en verwij-der regel 11 (<Directory /usr/share/phpMyAdmin/>) t/m regel 26 (</Directory>).

Dit zorgt ervoor dat we PHPMyAdmin remote kunnen gebruiken. Maar danmoet de authenticatie wel veiliger: in plaats van cookie-based http-based au-thenticatie. Kopieer het voorbeeld configuratie bestand naar het “werkzame”configuratie bestand:

cp /usr/share/phpMyAdmin/config.sample.inc.php \/usr/share/phpMyAdmin/config.inc.php

en pas regel 29 aan:$cfg[’Servers’][$i][’auth_type’] = ’cookie’;moet worden:$cfg[’Servers’][$i][’auth_type’] = ’http’;

Herstart hierna de webserver:

service httpd restart

en PHPMyAdmin is benaderbaar op http://ip_adres/phpMyAdmin

8. Auteur

Dit document is geschreven door Frederik Vos, werkzaam als Senior TechnicalTrainer bij XTG.

5