2010-07-30 32 views
16

en el servidor tengo php 5.3.2 y cakephp 1.3.Zona horaria y más problemas con Cakephp 1.3 y PHP 5.3.2

cuando ejecuto la aplicación cakephp, me da errores siguientes:

Warning (2): strtotime() [ http://php.net/function.strtotime] : It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead [ROOT/cakephp/cake/libs/cache.php, line 570]

Además, me estoy haciendo algunos encontrar otros errores:

Notice: Trying to get property of non-object in /htdocs/cakephp/cake/libs/cache/file.php on line 248 Fatal error: Call to a member function cd() on a non-object in /htdocs/cakephp/cake/libs/cache/file.php on line 248

Zona horaria en php.ini se define como Europa/Londres

Siempre obtengo ese error, a pesar de que defino o no date_default_timezone_set('UTC'), o Europa/Londres, o lo que sea ...

muy frustrante ......... por favor ayuda ...

ACTUALIZACIÓN: algo está mal con mi instalación de PHP ... Si me quedo

<?php echo date('Y'); ?> 

... es me da pantalla en blanco sin resultado ...

¿hay algún problema?

+0

¿Has probado a declarar la zona horaria en tu código? ¿Quizás en el control anterior de su app_controller()? –

+0

parece que tengo algún problema con la instalación de php ... por favor, eche un vistazo a la parte actualizada de mi pregunta. – user198003

+0

*** Nota: *** El archivo 'php.ini' de' php-cli' es diferente del archivo 'php.ini' de' apache2'. Sugiero un enlace simbólico entre ellos para mantenerlos sincronizados y evitar confusiones. –

Respuesta

26

Para manejar la primera advertencia, debe descomentar la línea date_default_timezone_set('UTC'); en /app/config/core.php. Puede reemplazar UTC con su zona horaria, como sugirió Leo.

+0

desafortunadamente, lo hice antes de publicar esta pregunta ... también probé varias zonas horarias diferentes y obtuve el mismo error cada vez. también, verifique la parte ACTUALIZADA de mi pregunta ... por algún motivo, no puedo ejecutar la fecha de la función php simple. Creo que puede haber un problema, algo que no haya habilitado, o instalado, o ...? – user198003

+0

Cambie su archivo a ' '. – bancer

+0

configuré error_reporting (E_ALL) y los errores que obtengo son: Advertencia: date(): No es seguro confiar en la configuración de la zona horaria del sistema. * Se requiere * que use la configuración de fecha.tiempo o la función date_default_timezone_set(). En caso de que haya utilizado alguno de esos métodos y aún reciba esta advertencia, es probable que haya escrito mal el identificador de zona horaria. Seleccionamos 'Europa/Berlín' para 'CEST/2.0/DST' en lugar de /htdocs/index.php en la línea 9 Error fatal: fecha(): La base de datos de la zona horaria está corrupta, ¡esto * nunca * debería suceder! en /htdocs/index.php en la línea 9 – user198003

4

Tuve exactamente el mismo problema y Google me llevó a esta publicación.

He arreglado el problema agregando la línea date_default_timezone_set("America/Anchorage"); a la parte superior de [directorio base pastel] /libs/cache.php

Es posible que desee reemplazar America/Anchorage con su zona horaria.

+0

+1 esto funcionó para mí –

7

Como Leo Said, es un problema con PHP 5.3. La mejor solución es modificar su php.ini del servidor web y establecer

[Date] 
; Defines the default timezone used by the date functions 
; http://php.net/date.timezone 
date.timezone = "Europe/Rome" 

O si no se puede modificar php.ini servidor web puede añadir esta opción para erradicar archivo .htaccess en su sitio:

php_flag date.timezone = "Europe/Rome" 
+3

Más zonas horarias compatibles aquí: http://php.net/manual/en/timezones.php – geon

2

Tuve este error por un tiempo desde el co de alojamiento. actualizado a 5.3 también

En el /app/config/config.php, alrededor de la línea 244, hay una nota sobre un-comentando la línea siguiente cuando se ejecuta en 5,3

acabo de cambiar a la siguiente línea:

date_default_timezone_set('America/Toronto'); // your favourite time-zone here - and don't get me started about why Toronto is U.S. city (joking) 

se puede poner esa línea en Bootstrap.php, pero es posible obtener este error sigue, config.php se carga por primera

0

me encontré con esto cuando utilice cakeshell ejecutar secuencias de comandos de línea de comandos cron. Después de mucha molestia, descubrí que, además de la solución anterior de bancer, necesitaba un núcleo de importación.PHP en mis shell scripts PHP como por ejemplo:

function main() { 
    App::import('Controller', 'Core'); 

    //run controllers and actions that cause error here 

} 

Adición 'Core' a App :: import() resuelto por mí.

Cuestiones relacionadas