Cakephp показывает ошибки при развертывании на сервере - PullRequest
1 голос
/ 27 февраля 2012

Когда я загружаю торт php на сервер, он выдает мне следующую ошибку:

  1. Перезапись URL не настроена должным образом на вашем сервере
  2. Класс 'PDO' не найден в /home/is306t3/public_html/lib/Cake/Model/Datasource/Database/Mysql.php в строке 177

Я включил файл htaccess в соответствии с рекомендациями cakephp:

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>

и, наконец, приложение / 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 ]

1 голос
/ 29 февраля 2012

Я не уверен насчет ошибки перезаписи, но у меня тоже была эта ошибка PDO. Мне пришлось добавить эти две строки в начало моего файла .htaccess.

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

Это для HostGator, хотя. Проблема заключалась в том, что они используют php 5.2 по умолчанию для совместимости, и вы должны добавить эти две строки, чтобы использовать 5.3 с PDO. Может быть, это будет работать там.

Я почти ничего не знаю о правилах .htaccess, но RewriteBase / нет ни в одном из моих файлов .htaccess для Cake.

1 голос
/ 28 февраля 2012

Похоже, проблема конфигурации Apache.Вы должны подтвердить, что mod_rewrite включен на Apache.Вот статья, в которой рассказывается о том, как включить ее:

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

Если у вас нет доступа к конфигурации Apache, вам необходимо связаться с вашим хостинг-провайдером.

ОБНОВЛЕНИЕ

О, я только что заметил.Попробуйте обновить ваш webroot / .htaccess:

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

Обратите внимание?в правиле?Это должно решить это.

...