Cakephp在服务器中部署时显示错误

时间:2012-02-27 18:19:53

标签: php cakephp-2.0

当我在服务器中上传cake php时,它会给我以下错误:

  1. 未在服务器上正确配置网址重写
  2. 在第177行的/home/is306t3/public_html/lib/Cake/Model/Datasource/Database/Mysql.php中找不到“PDO”类
  3. 我已经按照cakephp的建议包含了htaccess文件:

    root htaccess如下:

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

    app htaccess如下:

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

    最后app / webroot htaccess如下:

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

    我网站的目录结构是

            -app
             --webroot
                ---htaccess
                 --- test.php
              --htaccess
            -lib
            -htaccess
    

    希望有人可以提供帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

听起来像Apache配置问题。您需要确认在Apache上启用了mod_rewrite。这篇文章讨论了如何启用它:

http://www.lavluda.com/2007/07/15/how-to-enable-mod_rewrite-in-apache22-debian/

如果您无法访问Apache配置,则需要联系您的托管服务提供商。

<强>更新

哦,我刚才注意到了。尝试更新您的webroot / .htaccess:

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

注意?在规则?它应该解决它。

答案 1 :(得分:1)

我不确定重写错误,但我也有PDO错误。我不得不将这两行添加到.htaccess文件的顶部。

Action application/x-hg-php53 /cgi-sys/php53
AddHandler application/x-hg-php53 .php

这适用于HostGator。问题是他们使用php 5.2作为兼容性的默认值,你必须添加这两行以使用具有PDO的5.3。也许它会在那里工作。

我对.htaccess规则几乎一无所知,但RewriteBase /不在我的任何.htaccess文件中。