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 DocumentRootdidefinisikan dalam httpd.conffile:
yaitu saya akan berpikir bahwa jika httpd.conftidak 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.confmemang 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.