Problemas de Apache después de actualizar a Yosemite

8

Mi servidor web Mac no funcionará después de actualizar a Yosemite. Cuando escribo apachectlen Terminal, obtengo esto:

httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _unixd_config\n  Referenced from: /usr/local/php5/libphp5.so\n  Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so

Si escribo, sudo apachectl [re]startno sucede nada, como si se iniciara y lo escribiera nuevamente, dice que ya se está ejecutando. Además, tengo instalado el panel de preferencias de uso compartido web ( http://clickontyler.com/web-sharing/ ) y cuando muevo el interruptor de Apagado a Encendido, todavía dice que está apagado, aunque el interruptor esté en la posición Encendido .

¿Qué archivos quieren / necesitan ver? Realmente necesito arreglar esto lo antes posible.

Tom Oakley
fuente

Respuestas:

6

Tenga en cuenta también que el instalador de Yosemite sobrescribe todo el archivo /private/etc/apache2/httpd.conf con el nuevo archivo de configuración predeterminado de Apache 2.4.

Por ejemplo, si Listense agregaron directivas, habrán desaparecido y deberán agregarse nuevamente. P.ej:

Listen 127.0.0.1:81

Encontré mi configuración anterior en el siguiente archivo, pero debido a las diferencias de 2.2, probablemente no debería copiarse directamente sobre el archivo http.conf:

/private/etc/apache2/httpd.conf~previous

Hay una guía de actualización en: http://httpd.apache.org/docs/2.4/upgrading.html

Asegúrese de que todos los archivos de configuración adicionales incluidos anteriormente todavía estén incluidos y luego pruebe la configuración con el comando:

sudo apachectl configtest
Otto G
fuente
¿Cómo responde eso a la pregunta? No debería tener que cambiar qué módulo php está cargando después de actualizar Apache ...
AlxVallejo
8

El problema ocurre porque Yosemite instala la última versión de Apache (2.4) mientras que las versiones anteriores de Mac OS X usaban Apache versión 2.2

Por el error, parece que no estaba utilizando la versión estándar de PHP proporcionada por Apple, sino una versión diferente provista por liip.ch. Al eliminar el signo # como lo sugiere Nuttyx arriba, se cargará la versión de Apple de php (5.5.14). Si desea continuar ejecutando la versión suministrada por liip, deberá reinstalarla para que se cargue correctamente en Apache 2.4. Vea una explicación detallada aquí: ( http://blog.liip.ch/archive/2014/06/11/php-osx-available-for-os-x-10-10-yosemite.html )

Nota: si está utilizando hosts virtuales, probablemente necesitará cambiar algo sus archivos de configuración. En particular, deberá cambiar lo siguiente:

2.2 configuración:

Order allow,deny
Allow from all

2.4 configuración:

Require all granted
John Dalton
fuente
4

Parece que se puede solucionar este problema mediante la eliminación de la #en el beggining de la línea siguiente en /etc/apache2/httpd.confel archivo:

LoadModule php5_module libexec/apache2/libphp5.so
NuTTyX
fuente
1
¡Esto lo hizo por mí!
Matthieu Riegler
1

Ejecutar 'sudo apachectl' sin argumentos muestra el problema en los archivos conf. En mi caso, la actualización de php lo solucionó.

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

Después de eso, Apache volvió a ejecutarse pero tuve que reconfigurar los vhosts.

Raoulsson
fuente
0

Si bien la pregunta anterior ha sido respondida, existe otra posibilidad del mismo error como:

/private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_XYZ.so into server: dlopen(/usr/libexec/apache2/mod_XYZ.so, 10): image not found

Esto podría suceder si ha creado un enlace simbólico al que se hace referencia en el nombre anterior y no se encuentra. Para resolver, cree un enlace simbólico que proporcione la ruta absoluta para el archivo real y lo mismo para el nombre del archivo de enlace simbólico que se proporciona.

Onik
fuente