【问题标题】:Cake php Sub Folder Installation, Temp folder errors from htaccess or file permissions?Cake php 子文件夹安装,来自 htaccess 或文件权限的临时文件夹错误?
【发布时间】:2012-05-03 13:48:24
【问题描述】:

我的客户要求我为他们制作的蛋糕 php 应用程序进入他们现有服务器上的子目录。 在我的测试远程和本地安装中,一切都可以完美运行。

最初我遇到了 htaccess 问题,不得不将 RewriteBase /quotesystem/ 添加到我的 htaccess 文件中才能看到该站点。所以我改变了我的 htaccess 如下:

蛋糕根.htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /quotesystem/
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

应用程序.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
RewriteBase /quotesystem/app/
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

和 webroot .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
RewriteBase /quotesystem/app/webroot/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

现在我可以访问我的网站,但我收到了大量关于临时目录的警告:

警告 (2):SplFileInfo::openFile(/web/sites/_p/_e/_t/petersen-stainless.co.uk/public/www/quotesystem/app/tmp/cache/persistent/cake_core_cake_en-gb) [function.SplFileInfo-openFile]:打开流失败:没有这样的文件或目录[CORE/Cake/Cache/Engine/FileEngine.php,第295行]

你可以在这里看到它:http://www.petersen-stainless.co.uk/quotesystem

现在,我已将临时目录 CHMOD 更改为 777,所以每个人都应该有权限,但我仍然收到这些错误。

我已删除这些文件夹中的所有文件,以便清理临时目录。

当我使用我的 ftp 客户端 - 传输 - 查看所有者显示为 (?) 的文件权限时,如果我尝试更改它,我会收到错误消息: 无法更改“tmp”的所有者。服务器说:“SITE CHOWN”不理解

我在我工作的任何其他网站上都没有这个。

我不太了解发生了什么,这是权限问题还是 .htaccess 问题或两者兼而有之?还是服务器配置问题?

如果有人能帮助阐明这一点并帮助我理解,我将不胜感激。

更新: 我在服务器上的目录结构如下:

--公开

--- www

----- 报价系统

------- 库

------- 应用程序

--------- 配置

--------- 网络根

【问题讨论】:

    标签: .htaccess cakephp cakephp-2.0 file-permissions subdirectory


    【解决方案1】:

    根据我的经验,当 Cake 尝试读/写它没有访问权限的缓存时,会出现 SplFileInfo 警告。确保您的应用程序有权读取/写入 cache/tmp 文件夹(取决于您的 Cake 版本)。

    【讨论】:

    • 并且存在 tmp 文件夹结构(app tmp cache - 特别是在错误消息中给出“没有这样的文件或目录”)+1。
    【解决方案2】:

    这可能是一个 .htaccess 问题。对于webrootapp .htaccess,RewriteBase 应该相同。所以这两个文件中的行应该是:

    RewriteBase /quotesystem/
    

    我个人从不接触 Cake 根目录中的 .htaccess,因为似乎没有必要更改那里的任何内容。

    另外,/tmp/cache 及其子目录也应该是可写的。

    【讨论】:

    • 感谢您的回复,但这似乎并没有改变任何事情。我尝试了所有组合都没有运气。您所说的 webroot 是指子文件夹 cake 位于 (quotesystem) 还是 app>webroot 文件夹中?我通常也不会碰这个,因为我通常不需要!但是在此服务器上它是必需的...
    • 是的,我的意思是app/webroot。我认为您肯定遇到了 mod_rewrite 的问题,因为某些图像也无法加载。这个文件:http://www.petersen-stainless.co.uk/quotes/img/twitter_icon.png 存在于 app/webroot/img/ 中,对吧?
    • 嗯,似乎它们只是链接不正确,因为http://www.petersen-stainless.co.uk/quotesystem/img/twitter_icon.png 确实存在。此外,/tmp/cache/tmp/cache/persistent/tmp/cache/models 也应该是可写的。
    • 您好,您对图像的看法是正确的,在我的本地和测试安装 /img/twitter_icon.png 就足够了,但在此服务器上,它们需要预先添加子目录才能找到。这让我觉得这是一个 .htaccess 问题。所有临时子文件夹也可以用 777 写入。我尝试了一些不同的重写基础,但没有运气。如果我把重写基地拿出来,我只会得到一个 404,所以它一定是正确的?
    • 包含 quotesystem cake 文件夹的主站点根目录是否需要 .htaccesss 文件?
    猜你喜欢
    • 1970-01-01
    • 2016-09-23
    • 2010-12-10
    • 1970-01-01
    • 2019-03-22
    • 2012-01-06
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    相关资源
    最近更新 更多