Mise en place d’un lamp ( Linux / Apache / Mysql / Php )

Pré-requis : un serveur linux ( on utilisera ici une Debian 6.0 ) sans rien d’installer dessus.

Pour la suite de l’article, on dira que le serveur a une entrée dns correctement configurée ( ainsi que le reverse ) pour serveur.domaine.com

Installation des logiciels

Ca, on utilise simplement apt et c’est reglé ;)

root@serveur:/home# apt-get install apache2 libapache2-mod-php5 php5 php5-gd php5-mysql mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common fontconfig-config heirloom-mailx libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap libdbd-mysql-perl libdbi-perl libfontconfig1 libgd2-xpm libhtml-template-perl libjpeg62
  libmysqlclient16 libnet-daemon-perl libonig2 libplrpc-perl libpng12-0 libqdbm14 libt1-5 libx11-6 libx11-data libxpm4
  mysql-client-5.1 mysql-common mysql-server-5.1 mysql-server-core-5.1 php5-cli php5-common php5-suhosin ssl-cert ttf-dejavu-core
Suggested packages:
  apache2-doc apache2-suexec apache2-suexec-custom exim4 mail-transport-agent php-pear libgd-tools libipc-sharedcache-perl
  libterm-readkey-perl tinyca openssl-blacklist
Recommended packages:
  mailx
The following NEW packages will be installed:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common fontconfig-config heirloom-mailx libapache2-mod-php5
  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libdbd-mysql-perl libdbi-perl libfontconfig1 libgd2-xpm
  libhtml-template-perl libjpeg62 libmysqlclient16 libnet-daemon-perl libonig2 libplrpc-perl libpng12-0 libqdbm14 libt1-5 libx11-6
  libx11-data libxpm4 mysql-client-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1 php5 php5-cli php5-common
  php5-gd php5-mysql php5-suhosin ssl-cert ttf-dejavu-core
0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded.
Need to get 37.3 MB of archives.
After this operation, 96.8 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
....

On verifie que les services tournent bien :

root@serveur:/home# netstat -an | grep LISTEN | egrep "(80|3306)"
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN

Il semblerait qu’on ait bien quelque chose qui ecoute sur le port 3306 et uniquement sur localhost, le serveur mysql à bien l’air installé.

De même pour le port 80, on doit donc donc avoir apache de lancé. Il suffit de vérifier à l’aide d’un navigateur/telnet que monserveur.mondomaine.com réponds bien et affiche bien “It Works”

Les choses sérieuses, création d’un premier site de test ..

Mise en place de l’arborescence des répertoires

root@serveur:/# mkdir /var/www/www.domaine.com
root@serveur:/# mv /var/www/index.html /var/www/www.domaine.com

On met les droits qui vont bien

root@serveur:/# chown -fR www-data:www-data /var/www/*
root@serveur:/# chmod -fR g+rwxs /var/www/*
root@serveur:/# chmod -fR o-rwx /var/www/*

Prendre votre éditeur de texte préféré pour éditer le fichier /etc/apache2/sites-available afin d’obtenir :

<VirtualHost *:80>
        ServerAdmin webmaster@domaine.com
        ServerName serveur.domaine.com
        DocumentRoot /var/www/serveur.domaine.com
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/serveur.domaine.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/serveur.domaine.com-error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/serveur.domaine.com-access.log combined
</VirtualHost>

On demande à apache de verifier la configuration :

root@srv1:~# apachectl configtest
Syntax OK

Ne reste plus, qu’a lui faire prendre en compte

root@serveur:/# /etc/init.d/apache2 reload
Reloading web server config: apache2.

Comments are closed.