2010-03-22 62 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

相關問題