2010-03-22 56 views
1

我打算在共享主机上托管一个应用程序,但我无法创建虚拟主机或在apache上更改某些内容。Zend Framework - 没有公用文件夹

与ZF经常应用程式看起来像这样:

    • 公共
      • 的index.php
      • 的.htaccess
    • 应用

我有某事。这样的:

    • 应用
  • 的index.php
  • 的.htaccess

我所有的代码是在应用程序文件夹。 但也有一些.ini和.xml文件包含敏感信息,例如登录名和密码等等...

如果我在应用程序文件夹中添加一个.htaccess,与deny from all是文件夹内的安全信息?

回答

8

我最近在http://akrabat.com/zend-framework/zend-framework-on-a-shared-host/上写过这篇文章。

基本要点有:

创建在根文件夹的index.php文件:

<?php 
define('RUNNING_FROM_ROOT', true); 
include 'public/index.php'; 

创建在根文件夹.htaccess文件:

SetEnv APPLICATION_ENV production 

RewriteEngine On 
RewriteRule .* index.php 

也许设置APPLICATION_ENV发展,同时测试:)

请注意,当引用静态文件现在,baseUrl()视图助手指向您的根文件夹,而不是您的公共/文件夹。

1

如果我在应用程序文件夹中添加一个.htaccess文件夹,并且所有的信息都是安全的?

这不是一个理想的解决方案,因为如果供应商将改变方式.htaccess文件进行解析(这是他们永远不会用于生产的机器上,它会是一个坏的事故如果发生),但我想这是在如果没有非公开目录,则可以获得最佳结果。

如果可以(我不知道ZF是否支持它),请将xmlini文件重命名为.php。这样,即使保护被移除,它们也会被解析为PHP文件而不是被公开。这有点偏执,但如果没有太多麻烦可行,那不是一个坏主意。

0

您是否只能访问虚拟主机上的公共目录?通常,主机可以访问至少一个以上的目录,在这种情况下,更好的解决方案是在其中创建一个文件夹,并将其放入您的应用程序中。然后,您可以将公共虚拟主机目录符号链接到应用程序的公共目录中。否则,您至少可以将您的配置文件保存在虚拟主机的公共目录之外,因为您可以轻松地告诉ZF他们所在的位置。

如果你绝对不能做这些事情之一,那么你将不得不使用像你所建议的文件结构。假设您的敏感ini/XML文件用于Zend_Config,该组件还支持用于配置的PHP数组(请参见http://framework.zend.com/manual/en/zend.config.introduction.html上的示例1)。这对你来说会是一个稍微安全一些的选项,因为你的htaccess文件不能工作,只要PHP文件仍然被解析为PHP,你的敏感数据就不会被查看。

2

您可以在共享主机上保留常用的目录结构。只需使用.htaccess更改文档根目录。在处理共享主机时,我这样做:

RewriteEngine On 

php_value upload_max_filesize 15M 
php_value post_max_size 15M 
php_value max_execution_time 200 
php_value max_input_time 200 
# Exclude some directories from URI rewriting 
#RewriteRule ^(dir1|dir2|dir3) - [L] 

RewriteRule ^\.htaccess$ - [F] 

RewriteCond %{REQUEST_URI} ="" 
RewriteRule ^.*$ /public/index.php [NC,L] 

RewriteCond %{REQUEST_URI} !^/public/.*$ 
RewriteRule ^(.*)$ /public/$1 

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^public/.*$ /public/index.php [NC,L] 
+0

你还在使用这种方法吗?我觉得这是一个很好的方法。干杯。 – MEM 2011-02-21 05:40:17

+0

@MEM是的,虽然我很少使用共享主机了。我开发的大部分网站都转到虚拟或专用服务器。 – 2011-02-21 13:00:47

+0

非常感谢。它运作良好。 – 2013-01-30 10:59:04