1

编辑:我现在知道是什么导致了问题,但仍然没有解决方案。基本上除非tmp目录是 777,否则 Cake 无法写入它,所以它失败了。如果tmp是 777,那么可能是因为一些奇怪的安全设置 PHP 不起作用。有什么想法,如果这是一种可能性,我该如何解决?

编辑 2:是否有可能由于字符编码,tmp 不是 777 它显示的?垃圾字符。

我刚刚将我的 CakePHP 应用程序迁移到了 Amazon AWS(使用 BitNami LAMPstack)。我收到 PHP 错误提示无法连接到 DB(这意味着 PHP 正在执行)。

当我修复数据库设置时,它现在正在打印内联 PHP。例如:

<title><?php echo $title_for_layout; ?></title>

显示在 HTML 中,因此文档标题是一段 PHP 代码!

请帮助我不知所措。我尝试过的事情:

  • 在 /opt/bitnami/apache2/conf/httpd.conf 部分中将 AllowOverride 更改为 All
  • 为 short_open_tag=On 编辑我的 php.ini 以防万一
  • 确保在 httpd.conf 中启用了 mod_rewrite,并且我的htdocsapp文件夹具有正确的.htaccess文件。

这是我的 .htaccess 文件以防万一:

htdocs/.htaccess

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

Options All -Indexes

htdocs/app/.htaccess

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

htdocs/app/webroot/.htaccess

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

1 回答 1

1

好吧,我只能说感谢上帝,我上学期在课堂上解释字符编码时引起了我的注意。

所以我打开了所有没有在 .ctp 中作为 PHP 执行的 .ctp 文件vim。我说:set encoding=utf-8然后(保持它对新手友好:set fileencoding=utf-8:x以防有人想要快速修复):)

它现在应该像现在一样工作。:)

于 2012-09-04T13:24:47.920 回答