Opaze

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 24 avril 2009

Apache : création d'un vhost

Dans un premier temps il faut éditer le fichier de configuration d'apache pour lui demander de prendre en compte la configuration des vhosts.

cd /private/etc/apache2
sudo vi httpd.conf

Rechercher les lignes suivantes : (/Virtual Hosts)

# Virtual Hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

Décommenter la seconde ligne enregistrer et quitter.

Ensuite, on passe à la création du vhost en lui même :

sudo vi extra/httpd-vhosts.conf

Commenter tout le bloc du premier <VirtualHost *:80>.

#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot "/www/docs/dummy-host.example.com"
#    ServerName dummy-host.example.com
#    ServerAlias www.dummy-host.example.com
#    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
#    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log common"
#</VirtualHost>

Et modifier le suivant en fonction et votre site :

<VirtualHost *:80>
    ServerAdmin webmaster@monsite.org
    DocumentRoot "/Users/Cyb/Dev/Web/monsite"
    ServerName monsite
    ErrorLog "/private/var/log/apache2/monsite-error_log"
    CustomLog "/private/var/log/apache2/monsite-access_log common"
</VirtualHost>

Enregistrer et quitter.

Maintenant on ajoute un "faux DNS" pour notre site :

sudo vi /etc/hosts

Et on ajoute la ligne :

127.0.0.1       monsite

Enregistrer et quitter.

Voilà ! Il ne reste plus qu'à redémarrer Apache et de lancer un navigateur avec l'URL http://monsite/

samedi 16 août 2008

Erreurs et maintenance d'Apache

Je viens de constater que mon Apache ne démarrait plus. Voici donc une bonne occasion pour expliquer où se trouve certains fichiers.

Si vous n'avez plus accès à vos pages Web, essayez de le relancer à la main :

macyb:~ Cyb$ sudo apachectl -k start
Password:
(2)No such file or directory: httpd: could not open error log file /private/var/log/apache2/error_log.
Unable to open logs

Si vous obtenez cette erreur, la résolution est très simple : il faut créer un dossier apache2 pour les logs :

sudo mkdir /private/var/log/apache2

Relancez.

macyb:~ Cyb$ sudo apachectl -k restart

Vous venez de voir ou se trouvent les fichiers de log d'Apache. On va donc y jeter un œil :

macyb:~ Cyb$ tail -f /private/var/log/apache2/error_log

Cette commande vous permettra de visualiser les erreurs au fil de l'eau. Pour quitter, ctrl+c. L'erreur la plus courante sera sûrement une erreur 404 (File does not exist) pour le favicon. En effet, à chaque requête au serveur, une deuxième est faite pour charger le fichier favicon.ico (la petite image à coté de l'URI).

Si comme moi vous avez un peu la tête en l'air, pour ne pas oublier de sauvegarder vos fichiers, le plus simple est de les mettre dans votre compte utilisateur à la place de /Library/WebServer/.

Pour cela, on va éditer le fichier httpd.conf :

macyb:~ Cyb$ sudo vi /private/etc/apache2/httpd.conf 
Password:

Cherchez la ligne suivante :

DocumentRoot "/Library/WebServer/Documents"

Et remplacez-la par le chemin de votre choix.

DocumentRoot "/Users/Cyb/Dev/Web"

Si vous enregistrez maintenant (echap et :w) et relancez Apache, vous constaterez que Apache ne vous laisse pas accéder à vos fichiers. Normal, il est configuré pour interdire l'accès à tous les fichiers en dehors des sites définis. Nous replongeons donc dans le fichier httpd.conf et juste en dessous du DocumentRoot on trouve une série de lignes dont la première est :

<Directory "/Library/WebServer/Documents">

Pour faire simple, cette section indique à Apache qu'il a le droit d'accéder aux fichiers présents dans ce dossier. Or, le chemin indiqué est celui par défaut et non celui que l'on veut. Il suffit donc de le remplacer par celui que l'on a choisi :

<Directory "/Users/Cyb/Dev/Web">

Enregistrez le fichier et relancez Apache. Voilà vos pages Web !

dimanche 30 mars 2008

Activation du serveur Apache et PHP sous Leopard

Dans la dernière version de Mac OS X (10.5 alias Leopard) est inclut PHP 5. À cette date c'est actuellement la version 5.2.5 qui est installée. Apache est toujours de la partie mais cette fois en version 2.

macyb:~ Cyb$ apachectl -v
Server version: Apache/2.2.8 (Unix)
Server built:   Feb 20 2008 12:01:56

macyb:~ Cyb$ php -v
PHP 5.2.5 (cli) (built: Feb 20 2008 12:30:47) 
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

Cela simplifie déjà une bonne partie de l'installation.

Pour activer Apache il n'y a rien de plus simple. Rendez-vous dans les Préférences système puis dans Partage. Ensuite activez le Partage web. La pastille passe au vert, apache vient d'être lancé. Lancez un navigateur avec http://localhost/ comme URI. Magnifique ! La page par défaut d'apache : on peut continuer.

Dans la configuration d'Apache, le module PHP n'est pas chargé par défaut. Voici comment y remédier :

macyb:~ Cyb$ sudo vi /etc/apache2/httpd.conf 

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:

Une fois votre mot de passe entré, cherchez dans le fichier la ligne suivante :

#LoadModule php5_module        libexec/apache2/libphp5.so

Décommentez-la et enregistrez (echap, puis :wq). Rechargez apache.

macyb:~ Cyb$ sudo apachectl restart

Si vous avez été attentifs lors de l'activation d'apache, vous avez remarqué qu'il y a un site global pour la machine et un site pour chaque utilisateur. Le tilde n'étant pas très sexy dans une URI, on va s'intéresser au site de la machine. Son emplacement est dans /Library/WebServer/Documents/ ou directement via le Finder Bibliothèque -> WebServer -> Documents. Supprimez le contenu du dossier. Créez un fichier de test nommé index.php qui contient le phpinfo :

<?php
phpinfo();
?>

Retournez dans votre navigateur et actualisez. Vous devez visualiser à présent le détail de la configuration de PHP.