[APACHE2] Reconnaissance du répertoire de travail

Bonjour, ça faisait longtemps… :smiley:

Durant la dernière MAJ du système et d’Apache, il m’a été proposé de reprendre les fichiers de configuration du responsable du paquet. Je n’ai pas trop réfléchis et j’ai accepté… :confused:

Je me retrouve avec un serveur sur lequel mon répertoire de travail n’est plus configuré, rien d’étonnant, sauf que je n’arrive plus à le remettre en état. J’ai paramétré une seule fois Apache il y a 2 ans sur le premier tuto trouvé sur le net (qui n’était pas forcement le plus indiqué).

J’ai donc suivi le tutoriel d’Ubuntu-fr sur la question sans succès : doc.ubuntu-fr.org/tutoriel/lamp_ … de_travail

Mon serveur est un serveur de développement et rien d’autre, je reste donc en local. Mon fichier de développement est : /home/severin/PCO, donc je voudrais me retrouver dans celui ci lorsque je suis dans le http://localhost/ de mon navigateur.

fichier : /etc/apache2/sites-enabled/000-default

<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order deny,allow
		Deny from all
		Allow from 127.0.0.1
	</Directory>

## ZONE PRIVEE
	Alias / /home/severin/PCO/
	<Directory /home/severin/PCO/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order deny,allow
		Deny from all
		Allow from 127.0.0.1            # Local
		Allow from .w3.org              # W3C
</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}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

J’ai ensuite créé le lien : sudo ln -s /home/severin/PCO /var/www

Redémarrage : sudo /etc/init.d/apache2 force-reload

Et warning à la clef…

Reloading web server config: apache2[Thu Apr 19 16:09:03 2012] [warn] The ScriptAlias directive in /etc/apache2/sites-enabled/000-default at line 28 will probably never match because it overlaps an earlier Alias.

L’ouverture de localhost m’envoie sur un fordidden.

[code]Forbidden

You don’t have permission to access / on this server.
Apache/2.2.16 (Debian) Server at localhost Port 80[/code]

Néanmoins avec un 127.0.0.1/ je vois bien le contenu de mon dossier, sans pour autant pouvoir interagir avec (tout clic se concrétisant par un not found…

Bref… Le problème est sûrement stupide pourtant je me suis arraché déjà pas mal de cheveux dessus…

bonjour,

pourquoi ne pas modifier plutot le documentRoot ? c’est la variable qui définit le chemin de travail du site.

J’avais vu ce tutoriel qui allait en ce sens…
maketecheasier.com/install-and-c … 2011/03/09

C’est convenable niveau sécurité ?

J’ai examiné le /var/log/apache2/error.log (j’aurais du commencer par là) et corrigé une erreur (un / manquant dans le 000-default que j’ai corrigé sur mon premier message). Reste, qu’il m’est toujours impossible de me connecter via localhost (forbidden). Par contre 127.0.0.1 fonctionne parfaitement.

[Thu Apr 19 20:24:02 2012] [error] [client ::1] client denied by server configuration: /home/severin/PCO/accueil.php

Je poursuis mes investigations… :108

bonjour,

tu autorise uniquement le 127.0.0.1.

est ce que tu as dans le fichier hosts le localhost défini à 127.0.0.1 ?

Ton message m’est très flou… :blush:

J’ai commenté la ligne suivante :

Et ajouté :

Je peux alors accéder à mon site en localhost, par contre mon phpmyadmin ne m’est pas accessible. Il le devient si je commente l’alias (et ça a le mérite de virer le warning au reload d’apache), mais plus le site depuis le localhost.

Mon /etc/hosts

[code]127.0.0.1 localhost
127.0.1.1 debian.localdomain debian

The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts[/code]

bonjour,

je dirais que le soucis est peut être lié au “alias /” pour l’accès à phpmyadmin, essaies de mettre par exemple “alias /test” dans ta config pour permettre l’accès aux 2 sites web

Je ne vois pas ce que ça changerait. Ça ne ferait que déplacer le problème. :017

up :confused:

bah non, pourquoi ça déplacerait le problème ?

si tu mets un alias à / vers un site web et un alias à /dede pour un second site web, comment veux tu aue apache fasse la différence ?

si tu vas sur /dede, c’est le dossier de l’alias /dede ou un répertoire de l’alias / ??

tu as essayé ?

Bonjour,
on vas faire simple ok.

Ton forbiden, ça veux dire que tu as réussi à contacter ton serveur web mais que tu n’a pas accès…

Apache est lancé généralement par l’utilisateur www-data. Si cette utilisateur n’a pas d’accès au repertoire /home/severin/PCO et bas >>> FORBIDEN

autre précision :

Si j’ai bien compris quand tu tape 127.0.0.1 ça fonctionne mais pas quand tu tape localhost dans un brownser ?

dans un console si tu tape ping localhost il te dit quoi ?

::1/128 n’est pas forcément nécessaire, c’est juste pour les IPV6.

Tu peux modifier ton fichier /etc/hosts de :

en

ça devrais marché.
Pour ton vhost juste une chose :
tu met : DocumentRoot /var/www
ce qui veux dire que pour apache la racine de se vhost correspond à /var/www
et ensuite tu modifie la racine pour lui dire que finalement la racine c’est /home/severin/PCO/
???

on reprends en plus propre :

[quote]<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www

Options Indexes FollowSymLinks MultiViews AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1

<Directory /PCO>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1 # Local
Allow from .w3.org # W3C

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
[/quote]

Ta plus qu’a faire un :

ln -s /home/severin/PCO /var/www/PCO

Et redémarre apache.

ah et aussi : chown -R www-data /var/www

amicalement,
Fabien493

Bonjour, désolé pour le laps de temps écoulé.

J’avais fait quelques modifications supplémentaire sur mes fichiers. Je refais un point.

/etc/apache2/sites-enabled/000-default

<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/PCO
	<Directory />
		Options FollowSymLinks
		AllowOverride None
		Deny from all
		Allow from 127.0.0.1
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order deny,allow
		Allow from all
		Allow from 127.0.0.1
	</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}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

/etc/hosts

[code]127.0.1.1 debian.localdomain debian

The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts[/code]

=> Le site est accessible depuis 127.0.0.1
=> Il l’est aussi depuis localhost si je laisse Directory /var/wwww en allow from all. Ça pose problème d’un point de vu sécurité ?
=> Par contre mon phpmyadmin est toujours en forbidden.

Problème de phpmyadmin résolu :

/etc/phpmyadmin/apache.conf

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
	Options FollowSymLinks
	DirectoryIndex index.php
	Allow from 127.0.0.1

	<IfModule mod_php5.c>
		AddType application/x-httpd-php .php

		php_flag magic_quotes_gpc Off
		php_flag track_vars On
		php_flag register_globals Off
		php_value include_path .
	</IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authn_file.c>
    AuthType Basic
    AuthName "phpMyAdmin Setup"
    AuthUserFile /etc/phpmyadmin/htpasswd.setup
    </IfModule>
    Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
    Order Deny,Allow
    Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Order Deny,Allow
    Deny from All
</Directory>

Reste que je me pose la question de la sécurité. C’est sans doute naif mais peut on accéder à mon serveur de développement (et qui gardera ce seul rôle) depuis l’extérieur ?

Merci pour vos réponses.

Si tu es derrière une box, et pas de translation de port, ta machine n’est pas accessible depuis l’extérieur.

De plus ton apache est configuré pour n’autoriser que les accès depuis ton localhost

Si tu veux en avoir le coeur net, tu peux, depuis une autre machine, utiliser un logiciel comme nikto pour tester ton serveur web (et nmap pour vérifier si des ports sont accessibles depuis l’extérieur)

Salut,
Au delà de la sécurité, pense à une sauvegarde de temps en temps, ça t’aurait évité bien des galères… :wink:

[quote=“agentsteel”]Si tu es derrière une box, et pas de translation de port, ta machine n’est pas accessible depuis l’extérieur.

De plus ton apache est configuré pour n’autoriser que les accès depuis ton localhost

Si tu veux en avoir le coeur net, tu peux, depuis une autre machine, utiliser un logiciel comme nikto pour tester ton serveur web (et nmap pour vérifier si des ports sont accessibles depuis l’extérieur)[/quote]

J’utilise une connexion wifi (laptop).

[quote=“lol”]Salut,
Au delà de la sécurité, pense à une sauvegarde de temps en temps, ça t’aurait évité bien des galères… :wink:[/quote]

C’est fait, au travers de mon précédent post… :mrgreen:

Je vais tout de même essayer de rendre ça plus propre (et plus sûr) en passant un maximum d’instructions en deny from all.


Sauriez vous comment je peux retrouver le nom de mon localdomain ? :017