Mediawiki не запускается в первый раз

Mediawiki не запускается в первый раз

Я пытаюсь установить Mediawiki 1.22.6 в подкаталог /wiki/корневого каталога документов Apache, который содержит некоторые другие каталоги. Когда я пытаюсь открытьhttp://example.com/wikiилиhttp://example.com/wiki/index.phpв самый первый раз для генерации LocalSettings.php скрипт не запускается; вместо этогочастьиз него напечатано:

bar() и т. д. и т. п.), которые вызывают ошибки синтаксического анализа в # PHP 4. Setup.php и ObjectCache.php имеют структуры, недопустимые в PHP 5.0 и # 5.1 соответственно. if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.3.2' ) < 0 ) { // Нам нужно использовать dirname(ФАЙЛ) здесь причинаДИРPHP5.3+ требует имя_каталога(ФАЙЛ) . '/includes/PHPVersionError.php'; wfPHPVersionError( 'index.php' ); } # Инициализируем общий код. Это дает нам доступ к GlobalFunctions, # AutoLoader и глобальным переменным $wgRequest, $wgOut, $wgUser, $wgLang и # $wgContLang, среди прочих; этонетзагрузка $wgTitle требуетсяДИР. '/includes/WebStart.php'; $mediaWiki = новый MediaWiki(); $mediaWiki->run();

Запуск скрипта php -f index.phpдает ожидаемый результат.

Нет никаких псевдонимов или правил перезаписи; mod_php, похоже, включен — Mediawiki работает, если установлен как document root. В текущей установке document root — это символическая ссылка.

Виртуальный хост настроен следующим образом:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/hell/public_html
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/hell/public_html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        IndexOptions +ShowForbidden
    </Directory>
    <Directory /home/hell/public_html/private>
        AuthType Basic
        AuthName "Restricted Access"
        AuthUserFile /home/hell/apasswords
        Require user satan
    </Directory>
#   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#   <Directory "/usr/lib/cgi-bin">
#       AllowOverride None
#       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
#       Order allow,deny
#       Allow from all
#   </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Поэтому для Mediawiki нет специальной конфигурации.

решение1

Минимальная версия PHP, необходимая для Mediawiki 1.22.6. 5.3.2Вы не показываете полный вывод в своем вопросе, но похоже, что сообщение, которое вы получаете, на самом деле является содержимым главного индексного файла Mediawiki. Самое простое объяснение — у вас нет обработчика Apache (например AddHandler) настроен на правильную обработку .phpфайлов, поэтому index.phpфайл обрабатывается как текст.

Даже если PHP включен (обычно с помощью директивы конфигурации, например, LoadModule php5_module libexec/apache2/libphp5.soв вашей основной папке httpd.conf, или включен каким-либо образом из отдельного файла или каталога), вам все равно может потребоваться включить его внутри вашего VirtualHostконтейнера с помощью директивы, например:

AddHandler application/x-httpd-php .php

Поскольку обслуживать файлы с помощью PHP безопаснее .php(мы не хотим, чтобы их содержимое было доступно для чтения, если оно включает информацию, которая не должна быть общедоступной), обработчик .phpфайлов должен быть включен для всего сервера. Если вы обслуживаете файлы PHP с помощью процесса CGIили , FCGIмогут потребоваться дополнительные шаги по настройке.

Более сложное объяснение

У вас может быть установлено несколько версий PHP. Возможно, ваша версия mod_phpбыла скомпилирована с использованием более старой версии библиотек PHP, тогда как версия командной строки (иногда устанавливаемая отдельно через пакет типа php-cli) связана с более новым набором библиотек и, таким образом, работает правильно.

Найдите библиотеки, связанные с mod_php (замените команды вашего инструмента управления пакетами соответствующим образом):

% pkg info -a | grep mod_php
mod_php5-5.4.28,1              PHP Scripting Language
% pkg info -l mod_php5-5.4.28,1
mod_php5-5.4.28,1:
    /usr/local/libexec/apache24/libphp5.so
    /usr/local/share/licenses/mod_php5-5.4.28,1/LICENSE
    /usr/local/share/licenses/mod_php5-5.4.28,1/PHP301
    /usr/local/share/licenses/mod_php5-5.4.28,1/catalog.mk

или

% locate libphp5.so
/usr/local/libexec/apache24/libphp5.so
% pkg which /usr/local/libexec/apache24/libphp5.so

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

решение2

Видимо, когда включен userdir, php отключается для /home/*/public_htmlкаталогов. Переименование public_htmlво что-то другое помогло.

Связанный контент