Pages : 1
#1 Le 14/03/2007, à 13:12
- Veremma
Problème avec la variable $_SERVER['SERVER_NAME']
Bonjour,
voici quelques mois que je me suis monté un serveur à la maison et tout fonctionne pour le mieux.
Cependant, pour le besoin de ma société, je suis en train de mettre en place une appli me permettant de générer des sondages en ligne. Jusque là pas de soucis. Mais je me suis aperçu qu'en envoyant les mails aux personnes, le lien où doivent se rendre les collaborateurs, comporte l'adresse IP local de mon serveur c'est à dire 192.168.0.2. Je pensais qu'en faisant $_SERVER['SERVER_NAME'] dans mon lien, je récupérerais le nom de mon serveur mais ce ne fût pas le cas.
Et là, je suis bloqué, j'ai tout modifié mes fichiers de conf (apache2.conf, /etc/hosts, le virtual host), mais qu'en j'exécute cette variable, rien à faire elle est toujours positionnée à 192.168.0.2.
Alors help, je galère vraiment depuis ce matin sur ce truc qui je pense est tout bête.
Merci,
Hors ligne
#2 Le 14/03/2007, à 16:59
- Veremma
Re : Problème avec la variable $_SERVER['SERVER_NAME']
Pour complément d'infos, quand je fais un phpinfo(), les variables telles que _SERVER["SERVER_NAME"] me retourne mon adresse ip alors qu'elle devrait me retourner mon nom de domaine. En plus à force d'avoir suivi x tutos, je ne sais plus en j'en suis.
Voici mon fichier apache2.conf :
# Based upon the NCSA server configuration files originally by Rob McCool.
# Changed extensively for the Debian package by Daniel Stone <daniel@sfarc.net>
# and also by Thom May <thom@debian.org>.
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE! If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the LockFile documentation
# (available at <URL:http://www.apache.org/docs/mod/core.html#lockfile>);
# you will save yourself a lot of trouble.
ServerName srv-web
ServerRoot "/etc/apache2"
# The LockFile directive sets the path to the lockfile used when Apache
# is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or
# USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at
# its default value. The main reason for changing it is if the logs
# directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL
# DISK. The PID of the main server process is automatically appended to
# the filename.
LockFile /var/lock/apache2/accept.lock
# PidFile: The file in which the server should record its process
# identification number when it starts.
PidFile /var/run/apache2.pid
# Timeout: The number of seconds before receives and sends time out.
Timeout 300
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
KeepAlive On
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
MaxKeepAliveRequests 100
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
KeepAliveTimeout 15
##
## Server-Pool Size Regulation (MPM specific)
##
# prefork MPM
# StartServers ......... number of server processes to start
# MinSpareServers ...... minimum number of server processes which are kept spare
# MaxSpareServers ...... maximum number of server processes which are kept spare
# MaxClients ........... maximum number of server processes allowed to start
# MaxRequestsPerChild .. maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 20
MaxRequestsPerChild 0
</IfModule>
# pthread MPM
# StartServers ......... initial number of server processes to start
# MaxClients ........... maximum number of server processes allowed to start
# MinSpareThreads ...... minimum number of worker threads which are kept spare
# MaxSpareThreads ...... maximum number of worker threads which are kept spare
# ThreadsPerChild ...... constant number of worker threads in each server process
# MaxRequestsPerChild .. maximum number of requests a server process serves
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
# perchild MPM
# NumServers ........... constant number of server processes
# StartThreads ......... initial number of worker threads in each server process
# MinSpareThreads ...... minimum number of worker threads which are kept spare
# MaxSpareThreads ...... maximum number of worker threads which are kept spare
# MaxThreadsPerChild ... maximum number of worker threads in each server process
# MaxRequestsPerChild .. maximum number of connections per server process (then it dies)
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
AcceptMutex fcntl
</IfModule>
User www-data
Group www-data
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
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
# Global error log.
ErrorLog /var/log/apache2/error.log
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Include all the user configurations:
Include /etc/apache2/httpd.conf
# Include ports listing
Include /etc/apache2/ports.conf
# Include generic snippets of statements
Include /etc/apache2/conf.d/[^.#]*
#Let's have some Icons, shall we?
Alias /icons/ "/usr/share/apache2/icons/"
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# Set up the default error docs.
#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
#
# Putting this all together, we can Internationalize error responses.
#
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
# our collection of by-error message multi-language collections. We use
# includes to substitute the appropriate text.
#
# You can modify the messages' appearance without changing any of the
# default HTTP_<error>.html.var files by adding the line;
#
# Alias /error/include/ "/your/include/path/"
#
# which allows you to create your own set of files by starting with the
# /usr/local/apache2/error/include/ files and
# copying them to /your/include/path/, even on a per-VirtualHost basis.
#
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
Alias /error/ "/usr/share/apache2/error/"
<Directory "/usr/share/apache2/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
</IfModule>
</IfModule>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
# UserDir is now a module
#UserDir public_html
#UserDir disabled root
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options Indexes SymLinksIfOwnerMatch IncludesNoExec
#</Directory>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
UseCanonicalName Off
TypesConfig /etc/mime.types
DefaultType text/plain
HostnameLookups Off
IndexOptions FancyIndexing VersionSort
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
# This really should be .jpg.
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^^
# This is from Matty J's patch. Anyone want to make the icons?
#AddIcon /icons/dirsymlink.jpg ^^SYMDIR^^
#AddIcon /icons/symlink.jpg ^^SYMLINK^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* RCS CVS *,t
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage ko .ko
AddLanguage pt .pt
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
LanguagePriority fr en da nl et de el it ja ko no pl pt pt-br ltz ca es sv tw
AddDefaultCharset ISO-8859-1
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 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
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
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
AddType application/x-tar .tgz
# To use CGI scripts outside /cgi-bin/:
#
#AddHandler cgi-script .cgi
# To use server-parsed HTML files
#
<FilesMatch "\.shtml(\..+)?$">
SetOutputFilter INCLUDES
</FilesMatch>
# If you wish to use server-parsed imagemap files, use
#
#AddHandler imap-file map
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
#
# The following directive disables redirects on non-GET requests for
# a directory that does not include the trailing slash. This fixes a
# problem with Microsoft WebFolders which does not appropriately handle
# redirects for folders with DAV methods.
#
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
# Allow server status reports, with the URL of http://servername/server-status
# Change the ".your_domain.com" to match your domain to enable.
#
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#</Location>
# Allow remote server configuration reports, with the URL of
# http://servername/server-info (requires that mod_info.c be loaded).
# Change the ".your_domain.com" to match your domain to enable.
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#</Location>
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*
NameVirtualHost 192.168.0.2:80
et mon hosts :
127.0.0.1 localhost.localdomain localhost servername
.net
192.168.0.2 servername
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
et le contenu du fichier dans /etc/apache2/sites-available :
<VirtualHost 192.168.0.2:80>
ServerAdmin webmaster@localhost
DocumentRoot /data/www/www.domain.net
ServerName www.domain.net
<Directory /data/www/www.domain.net>
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 /var/log/apache2/domain.log
CustomLog /var/log/apache2/domain.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
J'espère avoir mis tout ce qui pourra vous être utile pour m'aider
Merci
Dernière modification par Veremma (Le 14/03/2007, à 17:01)
Hors ligne
#3 Le 14/03/2007, à 17:28
- coca25
Re : Problème avec la variable $_SERVER['SERVER_NAME']
bonjour,
pour info, tu accedes à ta page ou tu as mis phpinfo en indiquant l'adresse ip ou le nom de ton serveur?
Hors ligne
#4 Le 14/03/2007, à 17:32
- Veremma
Re : Problème avec la variable $_SERVER['SERVER_NAME']
Merci déjà de m'avoir répondu.
En fait, là je fais des tests en local mais je peux atteindre mon site depuis l'extérieur par l'URL. En local je met effectivement l'IP donc 192.168.0.2 parce que par mon nom de domaine je tombe sur l'interface de la neufbox (comprend pas pourquoi !). Par contre il est vrai que depuis l'extérieur je n'ai pas testé le phpinfo().
Merci
Hors ligne
#5 Le 14/03/2007, à 17:39
- coca25
Re : Problème avec la variable $_SERVER['SERVER_NAME']
alors pour le phpinfo, c'est normal qu'il t'affiche l'adresse ip si tu tapes l'adresse ip dans le navigateur, pour contourner le souci de la neufbox, tu peux déclarer dans "/etc/hosts"
127.0.0.1 www.tondomaine.ext
ca devrait aussi fonctionner pour le script qui envoi des mails
Hors ligne
#6 Le 14/03/2007, à 17:51
- Veremma
Re : Problème avec la variable $_SERVER['SERVER_NAME']
J'ai mis dans mon /etc/hosts la ligne :
127.0.0.1 www.nomdedomaine.ext
mais c'est pareil
Dois-je relancer quelque chose pour prendre en compte cette modif ?
J'ai relancé apache2
/etc/init.d/apache2 reload
Merci
Hors ligne
#7 Le 14/03/2007, à 17:59
- coca25
Re : Problème avec la variable $_SERVER['SERVER_NAME']
normalement tu n'a rien à recharger à part peut etre la page.
il a peut etre celle de la neufbox en cache (redemarre le navigateur pour tester)
Dernière modification par coca25 (Le 14/03/2007, à 18:00)
Hors ligne
#8 Le 14/03/2007, à 20:11
- Veremma
Re : Problème avec la variable $_SERVER['SERVER_NAME']
Excuses moi, j'étais sortis faire un tour avec ma fille. Je viens de refaire le test et ce n'est pas bon. Je pense que j'ai aussi peut-être un soucis avec mon routeur. Je vais tester demain du boulot avec cette fois-ci mon nom de domaine.
Merci
Hors ligne
#9 Le 15/03/2007, à 15:09
- Veremma
Re : Problème avec la variable $_SERVER['SERVER_NAME']
OK, En fait c'était un faux problème dans le sens où, en passant l'IP dans l'url, la variable $_SERVER['SERVER_NAME'] prend l'IP mais si je passe par mon nom de domaine j'ai bien la bonne valeur dans cette variable. Cependant j'ai toujours mon soucis avec ma N9ufBox, c'est à dire que, si je tape mon nom de domaine dans l'URL alors j'atteind la page d'admin de ma N9ufBox. Précision ce n'est qu'en local depuis chez moi. Depuis l'extérieur pas de soucis, j'atteind bien mon site.
Je ne sais pas trop comment faire.
Merci de votre aide
Hors ligne
#10 Le 15/03/2007, à 15:19
- ark0
Re : Problème avec la variable $_SERVER['SERVER_NAME']
immanquablement si les ip sur ton serveurs sont en local tu te retrouvera sur ta box. Il faut donc faire un ipforward sur ta box avec un dyndns. Je pense que c'est la meilleurs solution. Qu'on m'arrete si je me trompe.
#11 Le 15/03/2007, à 15:22
- coca25
Re : Problème avec la variable $_SERVER['SERVER_NAME']
le souci avec la neufbox n'en est pas un, c'est normal, la neufbox detecte que la source est en local et donne donc acces au service de configuration.
si elle ne faisait pas comme ca, tu ne pourrais plus avoir acces à la 9box.
sur ma machine, quand je rajoute une adresse dans le /etc/hosts, elle me l'accepte
tu peux rajouter ton nom de domaine pour le faire pointer sur 127.0.0.1
puis tu ping le nom de domaine
est ce qu'il ping bien le 127.0.0.1?
Hors ligne
#12 Le 15/03/2007, à 15:30
- Veremma
Re : Problème avec la variable $_SERVER['SERVER_NAME']
Merci pour ces réponses. En fait, là je ne peux pas faire de tests, je suis au boulot et de plus ils ont bloqués tous les accès externes du style ssh ou telnet. Donc je ne pourrais tester que ce soir. Cependant dans mon fichier hosts, comme je l'ai posté plus haut, je n'ai pas mis le 127.0.0.1 pointant vers mon nom de domaine. J'essaie ce soir dès que je rentre.
Hors ligne
#13 Le 21/03/2007, à 14:57
- Veremma
Re : Problème avec la variable $_SERVER['SERVER_NAME']
Bonjour,
désolé pour ce retour tardif, j'ai fais plusieurs modifs notamment sur le vhosts, le hosts où j'ai fais concorder mon nom de domaine avec l'adresse locale 127.0.0.1. Deplus dans mon routeur je n'avais pas réservé l'adresse de mon serveur. Désormais tout fonctionne correctement. De mon serveur je peux taper directement mon nom de domaine dans l'URL ainsi que sur mes autres pc de la maison. Merci à tous
Hors ligne
#14 Le 21/03/2007, à 15:13
- coca25
Re : Problème avec la variable $_SERVER['SERVER_NAME']
bonjour,
pense à mettre le résolu dans le titre
Dernière modification par coca25 (Le 21/03/2007, à 15:14)
Hors ligne
Pages : 1