У різних середовищах сервера PHP $_SERVER['DOCUMENT_ROOT']
супер глобальний іноді має кінцеву косу рису, а іноді - ні. Я б подумав, що це питання безпосередньо пов'язане з тим, як визначено Apache DocumentRoot
у httpd.conf
файлі:
тобто я б подумав, що якщо httpd.conf
не міститься косої косої риски:
<VirtualHost *:8880>
DocumentRoot /var/www/live/current
...
тоді echo $_SERVER['DOCUMENT_ROOT']
слід дати / var / www / live / current
і якщо httpd.conf
вона містить кінцеву косу рису:
<VirtualHost *:8880>
DocumentRoot /var/www/live/current/
...
тоді echo $_SERVER['DOCUMENT_ROOT']
слід дати / var / www / live / current /
Це стосується Ubuntu 10.04, але в RHEL 5.5 додається косою косою рискою, $_SERVER['DOCUMENT_ROOT']
навіть якщо в Apache не було визначено жодного.
Будь-яка ідея, чому це відбувається? Чи є параметр конфігурації, який мені не вистачає?
Довідково:
- PHP 5.3.3 RHEL (проблема виникає): PHP 5.3.3 (cli) (побудовано: 23 липня 2010 16:26:53)
- Версія PHP Ubuntu (без випуску): PHP 5.3.2-1ubuntu4.2 з Suhosin-Patch (cli) (побудовано: 13 травня 2010 20:03:45)
$realpath = realpath($_SERVER['DOCUMENT_ROOT']);
. Він автоматично видаляє всі декілька косої риски, а також останню. Якщо ви завжди хочете, щоб косою косою рисою було об'єднано її в результат вищезазначеного викликуrealpath()
. Не всередині нього.