Pages : 1
#1 Le 07/08/2012, à 21:03
- R2D2-Ubuntu
Problème de configuration d'apache à partir des sources
Salut à tous,
alors voilà j'ai installé apache à partir de sources téléchargées sur le site officiel comme suit :
sudo tar -zxvf httpd-2.2.22.tar.gz
cd ./httpd-2.2.22
./configure --prefix=/usr/local/apache2 -sysconfdir=/usr/local/apache2/conf --with-included-apr -enable-cgi --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
make
make install
Tout s'installe parfaitement. Je lance le server :
cd /usr/local/apache2
sudo ./apachectl start
Tout va bien it works !
Je suis conscient que je peux installer apache à partir des dépots, cependant il faut que je le fasse par les sources pour un devoir à rendre.
J'ai 2 questions/ problèmes :
-Est-ce normal qu'après l'installation je n'a pas les dossiers dans /etc/apache2 qui sont indiqués dans la doc ubuntu http://doc.ubuntu-fr.org/apache2 (sites-available sites enabled etc...). Comment les obtenir dans mon dossier d'installation ?
- j'ai normalement activé les cgi directement à la configuration de l'installation d'apache. Or quand je place un helloworld en cgi dans mon dossier cgi-bin et que je tente d'y accéder par l'url (avec firefox) http://localhost/cgi-bin/Hello.cgi cela me donne une page introuvée.
- Connaissez-vous une méthode pour coupler ce server avec un server tomcat ? De sorte qu'ils puissent communiquer tous les deux.
Merci de m'éclairer.
Cordialement
Hors ligne
#2 Le 07/08/2012, à 21:18
- J5012
Re : Problème de configuration d'apache à partir des sources
ouvre le configure et cherche les directives qui indique ou modifie les chemins d'applications
./configure --prefix=/usr/local/apache2 -sysconfdir=/usr/local/apache2/conf
Hors ligne
#3 Le 07/08/2012, à 21:33
- compte supprimé
Re : Problème de configuration d'apache à partir des sources
Ça date un peu, mais ce sont quelques pistes... http://ww2.ac-creteil.fr/reseaux/system … index.html
#4 Le 07/08/2012, à 22:26
- R2D2-Ubuntu
Re : Problème de configuration d'apache à partir des sources
ouvre le configure et cherche les directives qui indique ou modifie les chemins d'applications
./configure --prefix=/usr/local/apache2 -sysconfdir=/usr/local/apache2/conf
J'ai ouvert le configure qui se trouve dans le dossier décompressé . Je comprend bien à quoi sert le --prefix et -sysconfdir (C'est le path pour les fichiers de configuration de mon apache) cependant je ne comprends pas ce que tu veux dire par "les chemins d'application". Merci
Ça date un peu, mais ce sont quelques pistes... http://ww2.ac-creteil.fr/reseaux/system … index.html
Merci mais malheureusement je n'ai rien trouvé qui puisse m'aider. Apache n'est pas installé via les sources mais via les dépots (ce que je sais déjà faire).
Hors ligne
#5 Le 08/08/2012, à 00:45
- ticamhoa
Re : Problème de configuration d'apache à partir des sources
Si j'ai bien compris, tu cherches les dossiers /etc/apache2/sites-available et /etc/apache2/sites-enabled. Normalement ces dossiers sont créés lors de l'installation.
En vrai, au cours d'une installation de Ubuntu server, le LVM propose des logiciels à installer en même temps; entre autres LAMP. En principe tout l'environnement est créé dans le même temps.
Sinon il faut voir dans les docs de Apache directement.
Dernière modification par ticamhoa (Le 08/08/2012, à 00:48)
Hors ligne
#6 Le 08/08/2012, à 01:37
- ChesterKiK
Re : Problème de configuration d'apache à partir des sources
Bonsoir,
tu as tapé :
./configure --prefix=/usr/local/apache2 -sysconfdir=/usr/local/apache2/conf --with-included-apr -enable-cgi --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
donc la config d'apache se trouve dans /usr/local/apache2/conf
Tu devras définir tes dossiers cgi dans /usr/local//apache2/conf/httpd.conf :
<Directory "/var/www/ton dossier bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Allow from all
</Directory>
N'oublie pas de redémarrer apache et de définir tes exécutables avec le groupe www-data en lecture et X pour tous.
Hors ligne
#7 Le 08/08/2012, à 10:14
- droopy191
Re : Problème de configuration d'apache à partir des sources
-Est-ce normal qu'après l'installation je n'a pas les dossiers dans /etc/apache2 qui sont indiqués dans la doc ubuntu http://doc.ubuntu-fr.org/apache2 (sites-available sites enabled etc...). Comment les obtenir dans mon dossier d'installation ?
Salut,
C'est du spécifique Debian/Ubuntu. C'est normal que n'ayez pas ces outils en compilant à partir des sources apache.
Hors ligne
#8 Le 08/08/2012, à 11:07
- R2D2-Ubuntu
Re : Problème de configuration d'apache à partir des sources
Bonsoir,
tu as tapé :./configure --prefix=/usr/local/apache2 -sysconfdir=/usr/local/apache2/conf --with-included-apr -enable-cgi --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
donc la config d'apache se trouve dans /usr/local/apache2/conf
Tu devras définir tes dossiers cgi dans /usr/local//apache2/conf/httpd.conf :<Directory "/var/www/ton dossier bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Allow from all </Directory>
N'oublie pas de redémarrer apache et de définir tes exécutables avec le groupe www-data en lecture et X pour tous.
Merci c'est cette explication là dont j'avais besoin.
Par contre je ne comprends pas bien ce que t veux dire par :
et de définir tes exécutables avec le groupe www-data en lecture et X pour tous.
"définir tes exécutables avec le groupe www-data en lecture" -> A quoi correspond le groupe "www-data", c'est le dossier dans lesquels mes cgi doivent figurer? C'est vraiment ce point là que je ne comprends pas. Merci de m'éclairer.
"X pour tous" cela veut dire autorisation d'exécution pour tous ?
[Edit] J'ai testé, mais cela ne fonctionne pas. Voici ce que j'ai fait:
Je suis allé ouvrir mon /usr/local/apache2/conf/httpd.conf. J'y ai ajouté à la fin :
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Allow from all
</Directory>
J'ai créé le dossier /var/www/cgi-bin comme suit :
sudo mkdir /var/www/cgi-bin
J'ai copié dans ce dossier mon cgi (tout en le laissant dans /usr/local/apache2/cgi-bin)
J'ai donné les droits à chaque dossier de l'arborescence à partir de www avec la commande :
sudo chmod u+x Nom_du_dossier_ou_fichier
Avec Nom_du_dossier_ou_fichier = www, cgi-bin, Hello.cgi
Cela ne fonctionne pas, j'ai toujours ma page introuvée...
Salut,
C'est du spécifique Debian/Ubuntu. C'est normal que n'ayez pas ces outils en compilant à partir des sources apache.
Ah merci de m'avoir éclairé, j'ai bien compris maintenant.
Si j'ai bien compris, tu cherches les dossiers /etc/apache2/sites-available et /etc/apache2/sites-enabled. Normalement ces dossiers sont créés lors de l'installation.
En vrai, au cours d'une installation de Ubuntu server, le LVM propose des logiciels à installer en même temps; entre autres LAMP. En principe tout l'environnement est créé dans le même temps.Sinon il faut voir dans les docs de Apache directement.
Merci de ta réponse mais je n'installe pas LAMP, j'ai juste besoin d'un server apache.
Dernière modification par R2D2-Ubuntu (Le 08/08/2012, à 12:04)
Hors ligne
#9 Le 08/08/2012, à 14:48
- ChesterKiK
Re : Problème de configuration d'apache à partir des sources
définir tes exécutables avec le groupe www-data en lecture et X pour tous.
désolé pour cette phrase un peu trop résumé.
Le "www-data" est l'utilisateur par défaut d'apache.
Il est nécessaire pour que apache accède aux dossier/fichier soit de définir le owner avec www-data et de fixer les droits sur 750 (user/group RX et rien pour les autres), soit de garder le owner root (puisque tu as créer le dossier avec sudo) et de définir les droits à 755 (tous le monde RX).
Mais le problème semble être ailleurs puisque si j'ai bien compris apache répond que la page n'existe pas, sinon il aurait dit que tu n'as pas les droits pour l'ouvrir (er 403).
La clause <directory doit être à l’intérieur de la clause <VirtualHost ... et non à la fin de http.conf
tu devrais donc au final avoir un truc du genre :
<VirtualHost *:80>
ServerName MONSERVEUR
DocumentRoot /var/www/htdocs
<Directory /var/www/htdocs>
Options Indexes MultiViews FollowSymLinks
Allow from all
</Directory>
ScriptAlias /bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Allow from all
</Directory>
# emplacement des logs
ErrorLog /var/log/apache2/error.log
</VirtualHost>
La dernière ligne défini l'emplacement du fichier d'erreur : /var/log/apache2/error.log
N'oublie pas de redémarrer Apache, et tu devrais pouvoir accéder à ton bin par http://localhost/bin/tonbin (c'est le ScriptAlias qui définie le vrai dossier cgi-bin comme un sous dossier de ton host)
Tes autres fichiers web (html, php ...) devront être dans /var/www/htdocs
Si ça ne fonctionne pas le fichier error.log devrait te donner des pistes. N’hésite pas à supprimer ce fichier s'il est déjà plein de trucs que tu ne comprends pas, il sera recréé au prochain redémarrage d'apache.
Dernière modification par ChesterKiK (Le 08/08/2012, à 15:08)
Hors ligne
#10 Le 10/08/2012, à 16:13
- R2D2-Ubuntu
Re : Problème de configuration d'apache à partir des sources
Mais le problème semble être ailleurs puisque si j'ai bien compris apache répond que la page n'existe pas, sinon il aurait dit que tu n'as pas les droits pour l'ouvrir (er 403).
La clause <directory doit être à l’intérieur de la clause <VirtualHost ... et non à la fin de http.conf
tu devrais donc au final avoir un truc du genre :<VirtualHost *:80> ServerName MONSERVEUR DocumentRoot /var/www/htdocs <Directory /var/www/htdocs> Options Indexes MultiViews FollowSymLinks Allow from all </Directory> ScriptAlias /bin/ /var/www/cgi-bin/ <Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Allow from all </Directory> # emplacement des logs ErrorLog /var/log/apache2/error.log </VirtualHost>
La dernière ligne défini l'emplacement du fichier d'erreur : /var/log/apache2/error.log
N'oublie pas de redémarrer Apache, et tu devrais pouvoir accéder à ton bin par http://localhost/bin/tonbin (c'est le ScriptAlias qui définie le vrai dossier cgi-bin comme un sous dossier de ton host)
Tes autres fichiers web (html, php ...) devront être dans /var/www/htdocs
Si ça ne fonctionne pas le fichier error.log devrait te donner des pistes. N’hésite pas à supprimer ce fichier s'il est déjà plein de trucs que tu ne comprends pas, il sera recréé au prochain redémarrage d'apache.
-Est-ce que je peux ajouter ce bout de configuration à la fin de mon httpd.conf (Je parle pour le virtualHost)?
- J'ai configuré un mod_jk fonctionnel (pour coupler apache et tomcat) sans avoir fait de virtualHost. Si je fais un virtualHost va-t-il falloir que je modifie ma configuration du mod_jk ?
- Je peux changer le directory : /var/www/cgi-bin/ en /usr/local/apache2/cgi-bin sans que cela pose problème?
- Si je change * après virtual host exemple :
<VirtualHost 19.168.1.1:80>
...
</VirtualHost>
J'accèderai à mon server via l'adresse IP ci-dessus?
- Les erreurs que j'avais (sans avoir configuré le virtualhost étaient :
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, you@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Et dans les logs d'apache :
[Fri Aug 10 00:42:49 2012] [error] [client 127.0.0.1] (2)No such file or directory: exec of '/usr/local/apache2/cgi-bin/cgi' failed
[Fri Aug 10 00:42:49 2012] [error] [client 127.0.0.1] Premature end of script headers: cgi
Les droits sont pourtant bien configurés et le test-cgi intégré à apache fonctionne tandis que mon script cgi fonctionnel lui ne marche pas.
cgi
#!/bin/bash
set -f
echo "Content-type: text/plain; charset=iso-8859-1"
echo
if [ "$REQUEST_METHOD" = "POST" ]; then
if [ "$CONTENT_LENGTH" -gt 0 ]; then
read -n $CONTENT_LENGTH POST_DATA <&0
fi
fi
echo "Bonjour ${POST_DATA#name=} !"
echo `date`
[EDIT] : J'ai essayé ta méthode avec les virtualhost voici ce que j'ai fait :
- J'ai décommenté dans httpd.conf la ligne
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
-J'ai édité le fichier httpd-vhosts.conf en y ajoutant les lignes que tu m'as suggéré avec virtualHost. (En modifiant avec les bons path)
<VirtualHost *:80>
ServerName BPI
DocumentRoot /usr/local/apache2/htdocs
<Directory /usr/local/apache2/htdocs>
Options Indexes MultiViews FollowSymLinks
Allow from all
</Directory>
ScriptAlias /bin/ /usr/local/apache2/cgi-bin/
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Allow from all
</Directory>
# emplacement des logs
ErrorLog /usr/local/apache2/logs/error_log
</VirtualHost>
Rien n'y fait cela ne fonctionne toujours pas.
-J'ai fait un test : J'ai changé les droits en 750 sur cgi-bin et lorsque je tente de me connecter au cgi, il me dit 403 forbidden. Donc ce n'est pas un problème de droit. Lorsque je remet les droits j'ai toujours les messages suivants :
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@bpi.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
dans le navigateur et
[Fri Aug 10 17:54:32 2012] [error] [client 127.0.0.1] (2)No such file or directory: exec of '/usr/local/apache2/cgi-bin/cgi' failed
[Fri Aug 10 17:54:32 2012] [error] [client 127.0.0.1] Premature end of script headers: cgi
Dans le fichier de log /logs/error_log.
Je ne comprends pas le no such file or directory puisque le fichier cgi est bien dans cgi-bin...
J'ai remarqué également que le printenv fourni avec apache ne fonctionne pas non plus
Je ne comprends plus rien... A moins que ça ne soit un problème de fichier .htaccess... Mais je n'en ai pas ...
Merci de ton aide
Dernière modification par R2D2-Ubuntu (Le 10/08/2012, à 17:12)
Hors ligne
#11 Le 11/08/2012, à 00:02
- ChesterKiK
Re : Problème de configuration d'apache à partir des sources
[Fri Aug 10 17:54:32 2012] [error] [client 127.0.0.1] (2)No such file or directory: exec of '/usr/local/apache2/cgi-bin/cgi' failed
[Fri Aug 10 17:54:32 2012] [error] [client 127.0.0.1] Premature end of script headers: cgi
Qu'est-il sensé faire ce script nommé "cgi" ?
D'après ces messages, c'est ce script qui fait planter apache.
Bonne nouvelle quand même c'est la preuve que le script est bien lancé ;-)
Dernière modification par ChesterKiK (Le 11/08/2012, à 00:06)
Hors ligne