Php 访问web服务器文档根文件夹上方的文件

Php 访问web服务器文档根文件夹上方的文件,php,apache,ubuntu-10.04,Php,Apache,Ubuntu 10.04,在别处阅读时,我遇到了这样一个概念:将我不希望公众访问的文件放在我的web根文件夹上方。在我的本地WAMP堆栈上这样做没有问题,但是一旦转移到我的VPS(运行Ubuntu10.04.4 LTS),PHP脚本只能看到根目录下的文件 我的子域的虚拟主机设置: <VirtualHost *:80> # Admin email, Server Name (domain name), and any aliases ServerAdmin #####@####.com ServerName

在别处阅读时,我遇到了这样一个概念:将我不希望公众访问的文件放在我的web根文件夹上方。在我的本地WAMP堆栈上这样做没有问题,但是一旦转移到我的VPS(运行Ubuntu10.04.4 LTS),PHP脚本只能看到根目录下的文件

我的子域的虚拟主机设置:

<VirtualHost *:80>  
# Admin email, Server Name (domain name), and any aliases
ServerAdmin #####@####.com
ServerName admin.########.com
ServerAlias www.admin.########.com

# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php admin.php
DocumentRoot /srv/www/#######.com/public_html/admin/web_pages

<Directory /srv/www/#######.com/public_html/admin/web_pages>
    Options +Indexes
    AllowOverride All
</Directory>

# Log file locations
LogLevel warn
ErrorLog /srv/www/########.com/logs/error.log
CustomLog /srv/www/########.com/logs/access.log combined
</VirtualHost>

#管理员电子邮件、服务器名(域名)和任何别名
ServerAdmin#####@######.com
服务器名管理员
ServerAlias www.admin.com
#索引文件和文档根目录(公共文件所在的位置)
DirectoryIndex.html index.php admin.php
DocumentRoot/srv/www/########.com/public_html/admin/web_页面
选项+索引
允许超越所有
#日志文件位置
日志级别警告
ErrorLog/srv/www/##########com/logs/error.log
CustomLog/srv/www/##########com/logs/access.log组合
给出日志错误:文件不存在:/srv/www/########.com/public_html/admin/web_pages/css,请参考:

(我的css文件夹位于web_pages文件夹上方,通过以下路径调用:../css/####.css)


这是我的配置设置的问题,还是我试图做一些我不应该做的事情,而是在我的web根目录下拥有我需要的一切?我真的希望常量文件和应用程序逻辑不可访问,但css、html页面和图像都可以。

如果您想授予对web根目录上某些文件夹的公共访问权限,可以使用指令:

Alias /css/ "/srv/www/#######.com/public_html/admin/css"
<Directory /srv/www/#######.com/public_html/admin/css>
# some configuration directives here   
</Directory>
Alias/css/“/srv/www/#########.com/public_html/admin/css”
#这里有一些配置指令
之后,您的css文件将可以通过新路径访问(无需
):
/css/###.css


别忘了打开
mod_alias
Apache模块

很高兴知道!然而,有没有办法单独访问php脚本而不是公开访问?我似乎误解了你们的问题。是否要使用文档根目录上方的脚本进行包含?或者你想直接调用这个脚本?您所说的“仅允许访问php脚本而非公开访问”是什么意思?你说css、html和图像什么都可以,但它们放在文档根目录下或上面的位置呢?在你的错误日志示例中,发生错误的原因是服务器没有授予对文档根目录上的访问权限,当你调用
/css/#####css//code>(/srv/www/########com/public#html/admin/css/#############css/##########你只要调用(/srv/www/#########com/public_html/admin/css/####css)这个文件确实不存在。很抱歉,米哈伊尔,我不确定我的代码中犯了什么错误,但在遇到一些其他问题并需要改革我的目录结构后,我在根域中的PHP脚本现在可以访问根域上的那些,我将非脚本文件移到相应的文档根中。我在我从上面的根创建了一个软链接,这样我的域名就可以访问它们了。谢谢你抽出时间回答我的问题!