Установил на сайт 500 Internal Server Error
.
Помогла тема на
В файле "components/com_xmap/helpers/xmap.php" в строке 12 видим запись:require_once(JPATH_SITE .'/includes/application.php');
Если закомментировать эту строку то компонент заводится.
Но, давайте разберемся, что мы отключили данной записью, и за что отвечает конструкция require_once
?
require_once - конструкция однократных включений.
В больших PHP сценариях инструкции require применяются довольно часто. Поэтому становится довольно сложно контролировать, как бы случайно не включить один и тот же файл несколько раз, что чаще всего приводит к ошибке, которую сложно обнаружить.
В PHP предусмотрено решение данной проблемы. Используя конструкцию однократного включения require_once можно быть уверенным, что один файл не будет включен дважды. Работает конструкция однократного включения require_once так же, как и require. Разница в ее работе лишь в том, что перед включением файла интерпретатор проверяет, включен ли указанный файл ранее или нет. Если да, то файл не будет включен вновь.
Конструкция однократного включения require_once позволяет включать удаленные файлы, если такая возможность включена в конфигурационном файле PHP.
Включение удаленных файлов
PHP позволяет работать с объектами URL, как с обычными файлами. Упаковщики, доступные по умолчанию, служат для работы с удаленными файлами с использованием протокола ftp или http.
Если "URL fopen-оболочки" включены в PHP (как в конфигурации по умолчанию), вы можете специфицировать файл, подключаемый с использованием URL (через HTTP), вместо локального пути. Если целевой сервер интерпретирует целевой файл как PHP-код, переменные могут передаваться в подключаемый файл с использованием URL-строки запроса, как в HTTP GET. Строго говоря, это не то же самое, что подключение файла и наследование им области видимости переменных родительского файла; ведь скрипт работает на удалённом сервере, а результат затем подключается в локальный скрипт.
Для того, чтобы удаленное включение файлов было доступно, необходимо в конфигурационном файле (php.ini) установить allow_url_fopen=1.
Обратите внимание: Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.
Устанавливать ли настройку allow_url_fopen=1
, или просто закомментировать 12-ю строку в файле "components/com_xmap/helpers/xmap.php" - решать Вам. Я не стал экспериментировать с настройками PHP и убрал require_once(JPATH_SITE .'/includes/application.php');
из кода компонента.
В следующей статье я описал процесс создания пункта меню в виде шрифтовой иконки.
На этом сегодня все. Успехов Вам в разработке.