Dalam lingkungan server yang berbeda, PHP $_SERVER['DOCUMENT_ROOT']
super global terkadang memiliki garis miring dan terkadang tidak. Saya akan berpikir masalah ini berkaitan langsung dengan bagaimana Apache DocumentRoot
didefinisikan dalam httpd.conf
file:
yaitu saya akan berpikir bahwa jika httpd.conf
tidak mengandung garis miring:
<VirtualHost *:8880>
DocumentRoot /var/www/live/current
...
maka echo $_SERVER['DOCUMENT_ROOT']
harus memberikan / var / www / live / saat ini
dan jika httpd.conf
memang mengandung garis miring:
<VirtualHost *:8880>
DocumentRoot /var/www/live/current/
...
maka echo $_SERVER['DOCUMENT_ROOT']
harus memberikan / var / www / live / current /
Ini adalah kasus di Ubuntu 10,04 tetapi pada RHEL 5,5 garis miring ditambahkan ke $_SERVER['DOCUMENT_ROOT']
bahkan jika tidak ada yang didefinisikan pada Apache.
Adakah yang tahu mengapa ini terjadi? Apakah ada parameter konfigurasi yang saya lewatkan?
Sebagai referensi:
- PHP 5.3.3 dari RHEL (masalah terjadi): PHP 5.3.3 (cli) (dibangun: 23 Juli 2010 16:26:53)
- Versi PHP Ubuntu (tidak ada masalah): PHP 5.3.2-1ubuntu4.2 dengan Suhosin-Patch (cli) (dibangun: 13 Mei 2010 20:03:45)
$realpath = realpath($_SERVER['DOCUMENT_ROOT']);
. Secara otomatis menghapus semua banyak garis miring dan juga garis miring. Jika Anda selalu ingin garis miring menyatukannya dengan hasil panggilan di atasrealpath()
. Tidak di dalamnya.