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.php
produz 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.php
arquivo seja veiculado como texto.
Mesmo que o PHP esteja habilitado (geralmente com uma diretiva de configuração como LoadModule php5_module libexec/apache2/libphp5.so
em seu main httpd.conf
ou incluída de alguma forma em um arquivo ou diretório separado), você ainda pode precisar habilitá-lo dentro de seu VirtualHost
contêiner com uma diretiva como:
AddHandler application/x-httpd-php .php
Como é mais seguro servir .php
arquivos 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 .php
arquivos deve ser habilitado para todo o servidor. Se você estiver servindo arquivos PHP usando um processo CGI
ou FCGI
etapas 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_php
tenha 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 .php
corretamente, 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_html
diretórios. Renomear public_html
para outra coisa ajudou.