En nuestra oficina de Mac, tenemos un local de Apache servidor que ejecuta a través del software AMPPS. Antes de actualizar a Mojave, todo estaba funcionando correctamente. Ahora, después de la actualización, hay un problema con el uso de PHP include
o require
.
Nuestro sistema utiliza un objeto para almacenar la configuración, y uno de estos es el documento en el directorio root. Este valor generalmente es igual a $_SERVER['DOCUMENT_ROOT']
, sin embargo el uso de que no es una opción por varias razones.
Un ejemplo del problema que se está produciendo:
include settings::$documentRoot . '/fileToInclude.php';
Esto se resuelve con el camino de "/Applications/AMPPS/www/fileToInclude.php"
y fallará con el estándar de 'no encontrado' error:
Failed to open stream: No such file or directory
Sin embargo, si puedo cambiar el include
de la línea a la siguiente:
include $_SERVER['DOCUMENT_ROOT'] . '/fileToInclude.php';
que se resuelve en el camino de "/Applications/AMPPS/www/fileToInclude.php"
funcionará sin problema.
Como se puede ver, ambos include
declaraciones de resolver exactamente en la misma ruta, pero sólo uno de ellos funciona. He hecho pruebas para confirmar que ambos caminos coincidir exactamente con el uso de una estricta igualdad de verificación (===
).
¿Alguien tiene alguna idea de por qué esto iba a suceder en Mojave? Como ya he mencionado, que estaba trabajando perfectamente bien en la Alta Sierra, y funciona bien en todos nuestros equipos de Windows.
EDITAR:
Los registros de error del servidor de salida al siguiente cuando intenta utilizar el fallando include
.
PHP Warning: include(/Applications\xe2\x81\xa9/AMPPS\xe2\x81\xa9/www/fileToInclude.php): failed to open stream: No such file or directory in /Applications/AMPPS/www/index.php on line 14