2013-10-01 4 views
0

У меня есть php-скрипт, который действительно прост, но требует некоторых из wordpress. Я использовал код со своего веб-сайта для большей части его, но он не работает, когда я пытаюсь вызвать разделы require_once скриптов. здесь соответствующий код:require_once терпит неудачу на читаемом файле php wordpress site

$fn = dirname(__FILE__) . '/wp-admin/includes/media.php'; 
if(!file_exists($fn)) 
{ 
    echo 'No File'; 
} 
if(!is_readable($fn)) 
{ 
    echo 'File is unreadable'; 
} 
require_once $fn; 

достаточно Interstingly, только эхо, что я получаю, когда require_once это раскомментирована полный путь к документу. Файл является как существующим, так и читаемым. Однако, когда я раскомментирую код require_once, он возвращается с ошибкой 500.

На немного взаимосвязанной точке. Каков самый простой способ отладки php. Я не нашел ничего, что просто VS легко (или даже так легко отлаживать как Django !!)

ответ

0

PHP имеет различные настройки в php.ini для ведения журналов. Вы также можете установить их во время выполнения. Возможно, он где-то записывается в файл, а не показывает ошибку. Рассмотрим пытается:

error_reporting(E_ALL)

Для отладки приложения. Не оставляйте его, когда вы закончите работать с ним.

+0

Не делает ничего, и, к сожалению, у меня нет доступа к этой машине на php.ini (общий хост) –

+0

. Большинство из того, что вы можете установить в php.ini, также можно установить с помощью php_flag в .htaccess , В зависимости от вашего веб-узла у них может быть некоторый способ доступа к php error_log. –

+0

Кроме того, вы проверяете, является ли 'dirname (__ file__). '... media.php'' существует, тогда вы пытаетесь включить '$ _SERVER [' DOCUMENT_ROOT ']. »... media.php''. Рассмотрите возможность хранения файла, который вы ищете как переменную, прежде чем проверять эти вещи, чтобы убедиться, что вы не ошибаетесь в том, где находится файл. –

0

Вы должны разрабатывать и отлаживать код локально на своей рабочей станции, а не на общем сервере хостинга. На вашей локальной рабочей станции у вас есть доступ к журналу ошибок php.ini, Apache и журналу ошибок PHP. Вы также можете настроить параметры проекта для отладки с использованием файлов .htaccess. Например, вы можете настроить отдельные файлы журналов ошибок PHP для каждого другого проекта, над которым вы работаете.

Как отметил @Steve Howard, существует множество настроек, которые вы можете изменить в php.ini, чтобы получить более подробные отчеты об ошибках. Фактически, большинство пакетов LAMP устанавливают копию разработки php.ini, которая в основном представляет собой шаблон файла php.ini, который оптимизирован для подробного отчета об ошибках. Подробное сообщение об ошибках - это то, что вы хотите в своей локальной среде для отладки. Это НЕ что-то нужно в вашей производственной среде, где клиенты и потенциальные хакеры получат больше информации, чем должны!

Если вы не знаете, как настроить PHP на своей рабочей станции, взгляните на XAMPP, MAMP, Macports и т. Д. Существует много вариантов. Вам не нужно быть супертехническим, чтобы получить стек, установленный на вашем компьютере. После того как у вас есть хорошая настройка среды для разработчиков на вашем компьютере, вы можете закрепить журнал ошибок PHP и журнал Apache.

Одна вещь, которую я хотел бы сделать, это использовать функцию PHP error_log(). Это позволяет выводить пользовательские сообщения в журнал ошибок PHP. Например, если я отладки кода, и мне нужно знать, что значение $ Foo, я могу сделать что-то вроде этого:

<?php 
error_log("Foo is: " . print_r($foo, true)); 

Это намного лучше, чем с помощью var_dump() или эхо для печати отладки данные на экран, поскольку он не будет прерывать нормальное выполнение программы или отображение ее уровня просмотра.

+0

спасибо за ваш вклад. Я сделаю это, сопротивляюсь этому только маленькому сценарию (старайтесь держаться подальше от php, если я могу ;-)) Любые идеи по основному вопросу вообще? –

+0

Основываясь на том, что вы описали, это звучит так, будто любой файл, который вы включаете, бросает неперехваченное исключение, которое вызывает ошибку 500. Я бы просмотрел этот файл по строкам и искать синтаксические ошибки или любые другие проблемы, которые могут привести к фатальной ошибке. –

+0

Это один из стандартных файлов Wordpress. Неужели в этом нет ошибок? (Или я наивна?) –

Смежные вопросы