
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.php
produce 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.6
es 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.php
archivo se entrega como texto.
Incluso si PHP está habilitado (generalmente con una directiva de configuración como LoadModule php5_module libexec/apache2/libphp5.so
en su archivo principal httpd.conf
o incluido de alguna manera desde un archivo o directorio separado), es posible que aún necesite habilitarlo dentro de su VirtualHost
contenedor con una directiva como:
AddHandler application/x-httpd-php .php
Dado que es más seguro servir .php
archivos usando PHP (no queremos que su contenido sea legible si incluyen información que no debería ser pública), .php
se debe habilitar un controlador de archivos para todo el servidor. Si está entregando archivos PHP mediante un proceso CGI
o, FCGI
es 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_php
fue 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 .php
correctamente, 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_html
los directorios. Cambiar el nombre public_html
a otra cosa ayudó.