Mediawiki no se ejecuta por primera vez

Mediawiki no se ejecuta por primera vez

Estoy intentando instalar Mediawiki 1.22.6 en un subdirectorio /wiki/del directorio raíz de documentos de Apache, que contiene algunos otros directorios. Cuando intento abrirhttp://ejemplo.com/wikiohttp://ejemplo.com/wiki/index.phppor primera vez al generar LocalSettings.php, el script no se ejecuta; en cambio, unpartede él está impreso:

bar(), etc, etc) que arrojan errores de análisis en # PHP 4. Setup.php y ObjectCache.php tienen estructuras no válidas en PHP 5.0 y # 5.1, respectivamente. if (!function_exists( 'version_compare' ) || version_compare( phpversion(), '5.3.2' ) < 0 ) { // Necesitamos usar dirname(ARCHIVO) aquí porquedirecciónes PHP5.3+ requiere nombre de directorio (ARCHIVO). '/incluye/PHPVersionError.php'; wfPHPVersionError('index.php'); } # Inicializar código común. Esto nos da acceso a GlobalFunctions, el #AutoLoader, y los globales $wgRequest, $wgOut, $wgUser, $wgLang y # $wgContLang, entre otros; lo hacenocargar $wgTitle requieredirección. '/incluye/WebStart.php'; $mediaWiki = nueva MediaWiki(); $mediaWiki->ejecutar();

La ejecución del script php -f index.phpproduce el resultado esperado.

No hay alias ni reglas de reescritura; mod_php parece estar habilitado: Mediawiki funciona si se instala como raíz del documento. En la instalación actual, la raíz del documento es un enlace simbólico.

El host virtual se configura de la siguiente manera:

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

Por tanto, no existe una configuración especial para Mediawiki.

Respuesta1

La versión mínima de PHP requerida Mediawiki 1.22.6es 5.3.2. No muestra el resultado completo en su pregunta, pero parece que el mensaje que recibe es en realidad el contenido del archivo de índice principal de Mediawiki. La explicación más simple es que no tienes un controlador Apache (p.ej AddHandler.php) configurado para servir archivos correctamente , por lo que el index.phparchivo se entrega como texto.

Incluso si PHP está habilitado (generalmente con una directiva de configuración como LoadModule php5_module libexec/apache2/libphp5.soen su archivo principal httpd.confo incluido de alguna manera desde un archivo o directorio separado), es posible que aún necesite habilitarlo dentro de su VirtualHostcontenedor con una directiva como:

AddHandler application/x-httpd-php .php

Dado que es más seguro servir .phparchivos usando PHP (no queremos que su contenido sea legible si incluyen información que no debería ser pública), .phpse debe habilitar un controlador de archivos para todo el servidor. Si está entregando archivos PHP mediante un proceso CGIo, FCGIes posible que se requieran pasos de configuración adicionales.

Una explicación más complicada

Es posible que tenga varias versiones de PHP instaladas. Quizás su versión de mod_phpfue compilada con una versión anterior de las bibliotecas PHP, mientras que la versión de línea de comandos (a veces instalada por separado a través de un paquete como php-cli) está vinculada con un conjunto de bibliotecas más actualizado y, por lo tanto, funciona correctamente.

Localice las bibliotecas asociadas con mod_php (sustituya los comandos de su herramienta de administración de paquetes según corresponda):

% 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

o

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

Si está seguro de que la versión de PHP que ha instalado es correcta y su servidor está configurado para funcionar .phpcorrectamente, pero aún tiene problemas, el siguiente paso es depurar utilizando los niveles de depuración y archivos de registro de Apache.

Respuesta2

Aparentemente, cuando el directorio de usuario está habilitado, php está deshabilitado para /home/*/public_htmllos directorios. Cambiar el nombre public_htmla otra cosa ayudó.

información relacionada