автозагрузка php не работает на версии 5.2.17

на моем локальном компьютере все работает, но когда я загружаю на сервер godaddy, функция автозагрузки не работает. Версия php Godaddys: 5.2.17. я получаю эту ошибку: Неустранимая ошибка: __autoload() [function.require]: Не удалось открыть требуемый '/home/content/b/r/e/me/html/classes/Shtigliz_Database.php' (include_path='.:/usr /local/php5/lib/php') в /home/content/b/r/e/me/html/config/bootstrap.php в строке 52

пути правильные, насколько я проверял. Служба поддержки godaddy говорит, что это мой код, но он работает на моей локальной машине.

это мой код:

function __autoload($class){


if(file_exists(APP_DIR . "/models/$class.php")){

    require APP_DIR . "/models/$class.php";
    }else{

        require APP_DIR . "/classes/$class.php";

    }

}

а константа APP_DIR устанавливается так:

define('APP_DIR', realpath('.'));

опять же, насколько я проверяю, пути правильные.

есть ли проблемы с автозагрузкой в ​​php версии 5.2.17?

наилучшие пожелания


person Ron    schedule 13.01.2013    source источник
comment
автозагрузка работает в 5.2. Однако вы должны быть предупреждены, что 5.2 не поддерживается уже два года и имеет известные недостатки безопасности, которые не были и не будут исправлены.   -  person Spudley    schedule 13.01.2013
comment
это версия php, которую мне дает Godaddy :)   -  person Ron    schedule 13.01.2013
comment
В самом деле?? Я удивлен, что хост размером с godaddy допускает такой риск в своих сетях. Любой здравомыслящий/компетентный сетевой оператор некоторое время назад обновился бы. Также я отмечаю эту страницу: support.godaddy.com/help /article/7804/updating-to-php-53 (я не богобоязненный клиент, поэтому я точно не знаю ситуацию, но эта страница, похоже, подразумевает, что они обновились до 5.3 в прошлом году. В любом случае стоит обратиться в поддержку для подтверждения).   -  person Spudley    schedule 13.01.2013


Ответы (1)


Проблема не в автозагрузке. Ваше сообщение об ошибке указывает на то, что PHP не может найти файл, который вы пытаетесь включить. Файла либо нет, либо у него проблема с правами доступа, и PHP-скрипт недоступен.

person Pekka    schedule 13.01.2013
comment
ну во-первых спасибо за ответ. файлы есть и пути хорошие и я сделал 777 разрешений. я пробовал все эти и те же сообщения. - person Ron; 13.01.2013
comment
Помните, что файловые системы серверов Linux/Unix различают строчные и заглавные буквы. Имена ваших файлов точно совпадают? - person Pekka; 13.01.2013
comment
да, я в отчаянии. Опять же, все работает на моем локальном компьютере. Могу ли я загрузить сюда свои локальные phpinfo и godaddys? может я что-то там упускаю? - person Ron; 13.01.2013
comment
@Ron Рон, твоя локальная машина - это машина с Windows? В Windows он примет, скажем, shtigliz_database.php, но на удаленной машине он должен точно соответствовать Shtigliz_Database.php. Вы на 10000% уверены, что /home/content/b/r/e/me/html/classes/Shtigliz_Database.php существует? Супер-пупер-тройка точно? Это почти невозможно, если имя правильное и разрешения правильные... Я не могу придумать причины, по которой это не сработает. Я думаю, все еще опечатка или что-то в этом роде. - person Pekka; 13.01.2013
comment
теперь я вижу, что в сообщении об ошибке говорится: База данных, а имя файла: databse. я должен изменить имя файла? - person Ron; 13.01.2013
comment
я изменил d на D, и теперь я получаю пустую страницу - person Ron; 13.01.2013
comment
@ Рон, скорее всего, это новая проблема, возможно, в Shtigliz_Database.php. Активируйте отчеты об ошибках, чтобы увидеть, что происходит. - person Pekka; 13.01.2013
comment
так что, может быть, мне следует изменить имена всех моих файлов, а после того, как все заработает, загрузить их снова? или, может быть, есть способ сказать серверу, чтобы он брал более низкие буквы? - person Ron; 13.01.2013
comment
Пустой экран вряд ли связан с проблемой автозагрузки. Это должно быть что-то еще, но что именно, сказать невозможно. Возможно, проблема с синтаксисом в файле PHP, который вы импортируете. (Но да, вам нужно убедиться, что все имена файлов точно совпадают на удаленном сервере, но переименования должно быть достаточно) Редактировать - нет, нет хорошего способа заставить нечувствительность к регистру на стороне сервера. Я бы переименовал файлы. - person Pekka; 13.01.2013
comment
извините, я должен был присутствовать в другом месте. я сделаю это сначала на моей локальной машине. имена папок тоже должны начинаться с заглавной буквы? и относится ли это ко всем именам файлов или только к именам с подчеркиванием? - person Ron; 13.01.2013
comment
@Ron, имена файлов просто должны точно совпадать с именем, которое вы пытаетесь открыть. т.е. если вы загружаете TestClass автоматически, вы не можете искать файл testclass. - person Pekka; 13.01.2013
comment
@Ron, где он запрашивает базу данных Shtigliz_database? - person Pekka; 14.01.2013
comment
привет, сначала извините, я не заметил ваш последний комментарий. после изменения первых букв на заглавные на моем локальном компьютере и все работает, я загрузил на удаленный сервер, и теперь он запросил строчную букву. я сумасшедший? это ошибка, которую я получаю: Неустранимая ошибка: __autoload() [function.require]: Не удалось открыть требуемый '/home/content/b/r/e/me/html/classes/Shtigliz_session.php' (include_path='.: /usr/local/php5/lib/php') в /home/content/b/r/e/me/html/config/bootstrap.php в строке 31. Теперь файл называется: Shtigliz_Session.php. пожалуйста, помогите еще раз - person Ron; 17.01.2013
comment
если я изменю имя файла на whqat, он спросит, что я получаю это: session_start() [function.session-start]: open(/var/chroot/home/content/b/r/e/me/html/bd4fbf5fde58e7f20593bb6a6241a63a/sess_435dudqef896rsoa8rje3i0q24, O_RDWR) не удалось: разрешение отклонено (13). но почему в разрешении отказано? Если я должен изменить разрешения на что именно? - person Ron; 17.01.2013
comment
@ Рон, это похоже на проблему с конфигурацией на вашем сервере, вам следует поговорить с администратором сервера. - person Pekka; 17.01.2013
comment
во-первых извините, что так долго не был доступен. я сделал файл php.ini и написал session.save_path, но без изменений. Я все еще думаю, что что-то не так с godaddy - person Ron; 28.01.2013
comment
это сумасшествие, я изменил некоторые разрешения, и теперь я снова получаю то же самое. - person Ron; 28.01.2013