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.

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

¿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

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

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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.