Farklı sunucu ortamlarında, PHP $_SERVER['DOCUMENT_ROOT']
süper küresel bazen bir eğik çizgi ve bazen de yok. Bu sorunun doğrudan Apache'nin dosyada nasıl DocumentRoot
tanımlandığı ile ilgili olduğunu düşünürdüm httpd.conf
:
Yani ben httpd.conf
hiçbir sondaki eğik çizgi içeriyorsa:
<VirtualHost *:8880>
DocumentRoot /var/www/live/current
...
o echo $_SERVER['DOCUMENT_ROOT']
zaman / var / www / live / current ifadesini vermelidir
ve eğer httpd.conf
sonunda eğik çizgi varsa:
<VirtualHost *:8880>
DocumentRoot /var/www/live/current/
...
o echo $_SERVER['DOCUMENT_ROOT']
zaman / var / www / live / current /
Bu Ubuntu 10.04 için geçerlidir, ancak RHEL 5.5'te $_SERVER['DOCUMENT_ROOT']
Apache'de tanımlanmamış olsa bile bir eğik çizgi eklenir .
Neden olduğuna dair fikri olan? Kaçırdığım bir yapılandırma parametresi var mı?
Referans için:
- PHP 5.3.3 (RHEL) (sorun oluşur): PHP 5.3.3 (cli) (yapılı: 23 Tem 2010 16:26:53)
- Ubuntu'nun PHP sürümü (sorun yok): Suhosin-Patch (cli) ile PHP 5.3.2-1ubuntu4.2 (dahili: 13 Mayıs 2010 20:03:45)
$realpath = realpath($_SERVER['DOCUMENT_ROOT']);
. Otomatik olarak tüm çoklu eğik çizgileri ve ayrıca arkadaki çizgileri kaldırır. Her zaman bir eğik çizgi istiyorsanız, yukarıdaki çağrının sonucuna bitirinrealpath()
. İçinde değil.