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 DocumentRoottanımlandığı ile ilgili olduğunu düşünürdüm httpd.conf:
Yani ben httpd.confhiç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.confsonunda 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.