Mediawiki não é executado pela primeira vez

2

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 abrir o link ou o link pela primeira vez para gerar LocalSettings.php, o script não é executado; em vez disso, uma parte dela é impressa:

bar(), etc etc) which throw parse errors in # PHP 4. Setup.php and ObjectCache.php have structures invalid in PHP 5.0 and # 5.1, respectively. if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.3.2' ) < 0 ) { // We need to use dirname( FILE ) here cause DIR is PHP5.3+ require dirname( FILE ) . '/includes/PHPVersionError.php'; wfPHPVersionError( 'index.php' ); } # Initialise common code. This gives us access to GlobalFunctions, the # AutoLoader, and the globals $wgRequest, $wgOut, $wgUser, $wgLang and # $wgContLang, amongst others; it does not load $wgTitle require DIR . '/includes/WebStart.php'; $mediaWiki = new MediaWiki(); $mediaWiki->run();

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

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

O host virtual é configurado da seguinte maneira:

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

    
por Michael Ivko 13.05.2014 / 10:17

2 respostas

0

Aparentemente, quando o userdir está ativado, o php é desativado para os diretórios /home/*/public_html . Renomeando public_html para outra coisa ajudada.

    
por 14.05.2014 / 12:44
0

A versão mínima do PHP requerida para 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 tem um manipulador do Apache ( por exemplo, AddHandler ) configurado para servir adequadamente os arquivos .php , então o arquivo index.php está sendo exibido como texto.

Mesmo se o PHP estiver ativado (geralmente com uma diretiva de configuração como LoadModule php5_module libexec/apache2/libphp5.so no seu principal httpd.conf ou incluído de alguma forma em um arquivo ou diretório separado), ainda será necessário ativá-lo no contêiner VirtualHost com uma diretiva como:

AddHandler application/x-httpd-php .php

Como é mais seguro veicular .php arquivos usando PHP (não queremos que seu conteúdo seja legível se incluir informações que não devem ser públicas), um manipulador para .php arquivos deve estar habilitado para o todo servidor. Se você estiver veiculando arquivos PHP usando um CGI ou FCGI , etapas adicionais de configuração poderão ser necessárias.

Uma explicação mais complicada

Você pode ter várias versões do PHP instaladas. Talvez sua versão de mod_php tenha sido compilada com uma versão mais antiga das bibliotecas PHP, enquanto a versão de linha de comando (às vezes instalada separadamente por meio de um pacote como php-cli ) está vinculada a um conjunto mais atualizado de bibliotecas e 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 tiver certeza de que a versão do PHP que você instalou está correta e seu servidor está configurado para manipular .php corretamente, mas você ainda está tendo problemas, a depuração usando os níveis de depuração e os arquivos de log do Apache é sua próxima etapa. / p>     

por 13.05.2014 / 15:48