Mediawiki não funciona pela primeira vez

Mediawiki não funciona pela primeira vez

Estou tentando instalar o Mediawiki 1.22.6 em um subdiretório /wiki/do diretório raiz do documento Apache, que contém alguns outros diretórios. Quando tento abrirhttp://example.com/wikiouhttp://example.com/wiki/index.phppela primeira vez para gerar LocalSettings.php, o script não é executado; em vez disso, umpapeldele está impresso:

bar(), etc etc) que geram erros de análise em # PHP 4. Setup.php e ObjectCache.php possuem estruturas inválidas em PHP 5.0 e # 5.1, respectivamente. if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.3.2' ) < 0 ) { // Precisamos usar dirname(ARQUIVO) aqui porqueDIRé PHP5.3+ requer dirname(ARQUIVO). '/inclui/PHPVersionError.php'; wfPHPVersionError('index.php'); } # Inicialize o código comum. Isso nos dá acesso ao GlobalFunctions, ao # AutoLoader e aos globais $wgRequest, $wgOut, $wgUser, $wgLang e # $wgContLang, entre outros; isso acontecenãocarregar $wgTitle exigirDIR. '/inclui/WebStart.php'; $mediaWiki = novo MediaWiki(); $mediaWiki->run();

A execução do script php -f index.phpproduz a saída esperada.

Não há aliases ou regras de reescrita; mod_php parece estar ativado — Mediawiki funciona se instalado como documento raiz. Na instalação atual, a raiz do documento é um link simbólico.

O host virtual é configurado da seguinte forma:

<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>

Portanto não há configuração especial para o Mediawiki.

Responder1

A versão mínima do PHP necessária Mediawiki 1.22.6é 5.3.2. Você não mostra a saída completa em sua pergunta, mas parece que a mensagem que você está recebendo é na verdade o conteúdo do arquivo de índice principal do Mediawiki. A explicação mais simples é que você não possui um manipulador Apache (por exemplo AddHandler.php) configurado para veicular arquivos corretamente , de forma que o index.phparquivo seja veiculado como texto.

Mesmo que o PHP esteja habilitado (geralmente com uma diretiva de configuração como LoadModule php5_module libexec/apache2/libphp5.soem seu main httpd.confou incluída de alguma forma em um arquivo ou diretório separado), você ainda pode precisar habilitá-lo dentro de seu VirtualHostcontêiner com uma diretiva como:

AddHandler application/x-httpd-php .php

Como é mais seguro servir .phparquivos usando PHP (não queremos que seu conteúdo seja legível se incluir informações que não deveriam ser públicas), um manipulador de .phparquivos deve ser habilitado para todo o servidor. Se você estiver servindo arquivos PHP usando um processo CGIou FCGIetapas de configuração adicionais, poderão ser necessárias.

Uma explicação mais complicada

Você pode ter várias versões do PHP instaladas. Talvez sua versão mod_phptenha sido compilada em uma versão mais antiga das bibliotecas PHP, enquanto a versão da linha de comando (às vezes instalada separadamente por meio de um pacote como php-cli) está vinculada a um conjunto de bibliotecas mais atualizado e, portanto, funciona corretamente.

Localize as bibliotecas associadas ao mod_php (substitua os comandos da ferramenta de gerenciamento de pacotes conforme apropriado):

% 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

ou

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

Se você tem certeza de que a versão do PHP instalada está correta e seu servidor está configurado para funcionar .phpcorretamente, mas você ainda está tendo problemas, então a depuração usando os níveis de depuração e arquivos de log do Apache é o próximo passo.

Responder2

Aparentemente, quando o userdir está habilitado, o php está desabilitado para /home/*/public_htmldiretórios. Renomear public_htmlpara outra coisa ajudou.

informação relacionada