Aparentemente, quando o userdir está ativado, o php é desativado para os diretórios /home/*/public_html
. Renomeando public_html
para outra coisa ajudada.
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.
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>
Tags php debian mediawiki apache-2.2