Sujet: Apache, encore...
30/08/2007 @ 14:53:38: Jean-Christophe: Apache, encore...
Bon, résumons:

J'ai un serveur apache2 qui héberge un cms et un serveur de communication "OSC Inventory".
Visiblement, le serveur OCS devrait être joignable via http://intranet/ocsinventory.
Le problème, c'est que quand j'essaye de faire une mise à jour d'un client OCS, j'ai une erreur 404 dans le log et une "page non trouvée : ocsinventory" dans les logs de mon CMS.
J'en arrive à la conclusion que le CMS a pris la main sur la gestion du virtual folder "ocsinventory" et donc ne laisse pas le client papoter pénard avec le serveur.

Pour vous aider à trouver mon problème ( :itm: ) voici les fichiers de config de Apache.
Apache2.conf

Pour faire plaisir à zion, j'ai enlevé toutes les lignes commentées pour alléger :smile:
ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile /var/run/apache2.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>

<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

User www-data
Group www-data

AccessFileName .htaccess

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

TypesConfig /etc/mime.types
DefaultType text/plain
HostnameLookups Off
ErrorLog /var/log/apache2/error.log
LogLevel warn
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/ocsinventory.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ServerTokens Full
ServerSignature On

<IfModule alias_module>
Alias /icons/ "/usr/share/apache2/icons/"

<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

</IfModule>
<IfModule mod_autoindex.c>
IndexOptions FancyIndexing VersionSort HTMLTable NameWidth=*
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip x-bzip2
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# RCS CVS *,v *,t
</IfModule>

<IfModule mod_mime.c>
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-bzip2 .bz2
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
</IfModule>

<IfModule mod_negotiation.c>
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback
</IfModule>

<IfModule mod_mime.c>
AddCharset us-ascii .ascii .us-ascii
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .arb .arabic
AddCharset ISO-8859-7 .iso8859-7 .grk .greek
AddCharset ISO-8859-8 .iso8859-8 .heb .hebrew
AddCharset ISO-8859-9 .iso8859-9 .latin5 .trk
AddCharset ISO-8859-10 .iso8859-10 .latin6
AddCharset ISO-8859-13 .iso8859-13
AddCharset ISO-8859-14 .iso8859-14 .latin8
AddCharset ISO-8859-15 .iso8859-15 .latin9
AddCharset ISO-8859-16 .iso8859-16 .latin10
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5 .b5
AddCharset cn-Big5 .cn-big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8 .koi8
AddCharset KOI8-E .koi8-e
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-U .koi8-u
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-7 .utf7
AddCharset UTF-8 .utf8
AddCharset UTF-16 .utf16
AddCharset UTF-16BE .utf16be
AddCharset UTF-16LE .utf16le
AddCharset UTF-32 .utf32
AddCharset UTF-32BE .utf32be
AddCharset UTF-32LE .utf32le
AddCharset euc-cn .euc-cn
AddCharset euc-gb .euc-gb
AddCharset euc-jp .euc-jp
AddCharset euc-kr .euc-kr
#Not sure how euc-tw got in - IANA doesn't list it???
AddCharset EUC-TW .euc-tw
AddCharset gb2312 .gb2312 .gb
AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
AddCharset shift_jis .shift_jis .sjis
AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
<IfModule mod_setenvif.c>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
</IfModule>

Include /etc/apache2/sites-enabled/

ocsinventory.conf
################################################################################
#
# OCS Inventory NG Communication Server Perl Module Setup
#
# Copyleft 2006 Pascal DANEK
# Web: http://ocsinventory.sourceforge.net
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################

# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace 1 by 1
# For mod_perl > 1.999_21, replace 1 by 2
PerlSetEnv OCS_MODPERL_VERSION 2

# Where to write detailled logs
PerlSetEnv OCS_LOGPATH "/var/log/ocsinventory-NG"

# Database options
# Replace localhost by hostname or ip of MySQL server, generally localhost
PerlSetEnv OCS_DB_HOST localhost
# Replace 3306 by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT 3306
# Name of database
PerlSetEnv OCS_DB_NAME ocsweb
PerlSetEnv OCS_DB_LOCAL ocsweb
# User allowed to connect to database
PerlSetEnv OCS_DB_USER ocs
# Password for user
PerlSetVar OCS_DB_PWD ocs

# The options below are overloaded if you are using ocs GUI
# Be careful: you must restart apache to have any effects
PerlSetEnv OCS_OPT_FREQUENCY 0
PerlSetEnv OCS_OPT_PROLOG_FREQ 24
PerlSetEnv OCS_OPT_DEPLOY 1
PerlSetEnv OCS_OPT_TRACE_DELETED 0
PerlSetEnv OCS_OPT_AUTO_DUPLICATE_LVL 7
PerlSetEnv OCS_OPT_LOGLEVEL 0
PerlSetEnv OCS_OPT_INVENTORY_DIFF 1
PerlSetEnv OCS_OPT_INVENTORY_TRANSACTION 1
PerlSetEnv OCS_OPT_PROXY_REVALIDATE_DELAY 3600
PerlSetEnv OCS_OPT_LOCK_REUSE_TIME 3600

# Optional modules
PerlSetEnv OCS_OPT_IPDISCOVER 2
PerlSetEnv OCS_OPT_IPDISCOVER_MAX_ALIVE 7
PerlSetEnv OCS_OPT_IPDISCOVER_LATENCY 100
PerlSetEnv OCS_OPT_REGISTRY 0
PerlSetEnv OCS_OPT_UPDATE 0
PerlSetEnv OCS_OPT_DOWNLOAD 0
PerlSetEnv OCS_OPT_DOWNLOAD_FRAG_LATENCY 10
PerlSetEnv OCS_OPT_DOWNLOAD_CYCLE_LATENCY 0
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LATENCY 0
PerlSetEnv OCS_OPT_DOWNLOAD_TIMEOUT 30
PerlSetEnv OCS_OPT_WEB_SERVICE_ENABLED 0
PerlSetEnv OCS_OPT_PROLOG_FILTER_ON 1
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ON 1
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP 1
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP_CACHE_TIME 60

############ DO NOT MODIFY BELOW ! #######################

# External modules
PerlModule Apache::DBI
PerlModule Compress::Zlib
PerlModule XML::Simple

# Ocs
PerlModule Apache::Ocsinventory
PerlModule Apache::Ocsinventory::Server::Constants
PerlModule Apache::Ocsinventory::Server::System
PerlModule Apache::Ocsinventory::Server::Communication
PerlModule Apache::Ocsinventory::Server::Inventory
PerlModule Apache::Ocsinventory::Server::Duplicate

# Options
PerlModule Apache::Ocsinventory::Server::Option::Registry
PerlModule Apache::Ocsinventory::Server::Option::Update
PerlModule Apache::Ocsinventory::Server::Option::Ipdiscover
PerlModule Apache::Ocsinventory::Server::Option::Download
# This module guides you through the module creation
# PerlModule Apache::Ocsinventory::Server::Option::Example
# This module adds some rules to filter some request sent to ocs server in the prolog and inventory stages
# PerlModule Apache::Ocsinventory::Server::Option::Filter

# Virtual directory for handling OCS Inventory NG agents communications
# Be carefull, do not create such directory into your web server root document !
#PerlTaintCheck On
<Location /ocsinventory>
order deny,allow
allow from all
Satisfy Any
SetHandler perl-script
PerlHandler Apache::Ocsinventory
</Location>

PerlModule Apache::Ocsinventory::SOAP;
<location /ocsinterface>
SetHandler perl-script
perlHandler "Apache::Ocsinventory::SOAP"
order deny,allow
allow from all
Satisfy any
</location>



Intranet.conf
<VirtualHost *>
DocumentRoot //var/www/intranet
ServerName intranet
<Directory "/var/www/intranet">
allow from all
AllowOverride All
Options +Indexes
</Directory>
Alias /support/ "/var/www/intranet/support/"
Alias /ocsreports/ "/var/www/intranet/ocsreports/"
</VirtualHost>



Je ne vois pas trop ce que je peux vous fournir de plus :spamafote:

Merci :smile:
30/08/2007 @ 15:13:03: zion: Apache, encore...
Zion te remercie :petrus:

Le 404 ne signifie pas que cela fonctionne mais bien que le PerlHandler Ocsinventory est bien chargé pour le répertoire en question. Par contre il manque peut être un alias /ocsinventory/ vers le bon répertoire dans ton Intranet.conf, non?

En général j'essaie une url du genre:
http://intranet/ocsinventory/plop.gif

Le log apache est plus expressif sur le path du fichier qu'il a essayé :grin:
30/08/2007 @ 15:18:34: Jean-Christophe: Apache, encore...
je viens d'essayer, mais le log d'apache n'est pas plus parlant, par contre, c'est Drupal qui le prend dans ses log comme "page non trouvée".
Je pense que le problème viens du fait que Drupal intercepte la demande, mais je ne sais comment changer ca pour laisser Apache gérer la requête.
30/08/2007 @ 15:21:59: Jean-Christophe: Apache, encore...
peut-être dire a url rewrite de ne pas essayer avec "ocsinventory" et "ocsinterface", mais je ne sais pas comment :spamafote:

mireille : j'ai ajouté un "RewriteCond %{REQUEST_URI}!^/ocsinventory/" dans le htaccess, j'ai maintenant une erreur 500 et plus une 404 :sad:
30/08/2007 @ 15:22:18: zion: Apache, encore...
Drupal? Drupal?
Il n'en est question nul part dans tes conf, il vient d'où celui la? :grin:

Essaie avec un fichier images qui se trouvent réellement dans le répertoire OCS, si tu as un 404 c'est que le virtual path est déjà foireux à la base :smile:
30/08/2007 @ 15:44:05: Jean-Christophe: Apache, encore...
mô si, drupal, on en parle dans intranet.con
30/08/2007 @ 15:46:36: zion: Apache, encore...
:heink:
30/08/2007 @ 16:26:21: Jean-Christophe: Apache, encore...
Ca marche!

Mon intuition était bonne mais j'm'étais planté dans
rewriteCond %{request_uri} !^/ocsinventory


Ca marche!!!
Retour