Я пытаюсь установить 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 ( ФАЙЛ ) здесь причина DIR PHP5.3 + требуется имя каталога ( ФАЙЛ ). '/includes/PHPVersionError.php'; wfPHPVersionError ('index.php'); } # Инициализировать общий код. Это дает нам доступ к GlobalFunctions, # AutoLoader и глобальным переменным $ wgRequest, $ wgOut, $ wgUser, $ wgLang и # $ wgContLang, среди прочего; оно делает не load $ wgTitle требуется DIR . '/includes/WebStart.php'; $ mediaWiki = новый MediaWiki (); $ mediaWiki-> запустить ();
Запуск скрипта с php -f index.php
производит ожидаемый результат.
Нет никаких псевдонимов или правил перезаписи; Похоже, что mod_php включен - Mediawiki работает, если установлена как корень документа. В текущей установке корень документа является символической ссылкой.
Виртуальный хост настраивается следующим образом:
<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 нет специальной конфигурации.
Видимо, когда userdir включен, php отключен для /home/*/public_html
каталоги. Переименование public_html
еще кое-что помогло.
Минимальная версия 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 и файлов журнала.