我在Ubuntu 14.04上使用LAMP创建了简单的http服务器,并将我的html,php和js文件放到了apache根目录 / var / www / 。这些文件中的所有路径都是绝对路径,看起来像 /script1.php 或 /subdir/script.php 。 Web服务器的目录树看起来像:
/
|---var
|---www
|---script1.php
|---subdir
|---usr
|---home
|---etc
文件 /etc/apache2/sites-available/000-default.conf :
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
Alias /data /var/www/
<Location /data>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /usr/local/apache2/.digest_passwd.dav
Require valid-user
Order Allow,Deny
Allow from all
DirectoryIndex disabled
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
问题在于所有路径都从根服务器目录开始。
例如,php命令 opendir('/')显示列表:
/
|---var
|---usr
|---home
|---etc
但是我需要那样的列表
/
|---subdir
|---script1.php
那么,我怎样才能让Apache认为'/'不是root web服务器目录,而是root apache目录?
答案 0 :(得分:0)
opendir采用实际路径而不是Web服务器文档根目录的路径。因此,opendir(&#34; /&#34;)正常工作以向您显示服务器的根目录。
如弗拉基米尔所述,请使用
opendir($_SERVER["DOCUMENT_ROOT"]);
或者可能更好的安全性
opendir(filter_var($_SERVER["DOCUMENT_ROOT"], FILTER_INPUT_STRING));