¿Instalación de subcarpetas de Cake php, errores de carpetas temporales de htaccess o permisos de archivos?

Mi cliente ha pedido una aplicación php de pastel que he creado para que vayan a un subdirectorio en su servidor existente. Todo funciona perfectamente en mis instalaciones remotas y locales de prueba.

Inicialmente tuve un problema con htaccess y tuve que agregar RewriteBase /quotesystem/ a mis archivos htaccess para ver el sitio. Así que he cambiado mi htaccess de la siguiente manera:

torta raíz .htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /quotesystem/
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

aplicación .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
RewriteBase /quotesystem/app/
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

y webroot .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
RewriteBase /quotesystem/app/webroot/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

Ahora puedo acceder a mi sitio, pero recibo muchas advertencias sobre el directorio temporal:

Advertencia (2): SplFileInfo::openFile(/web/sites/_p/_e/_t/petersen-stainless.co.uk/public/www/quotesystem/app/tmp/cache/persistent/cake_core_cake_en-gb) [function. SplFileInfo-openFile]: no se pudo abrir la transmisión: no existe tal archivo o directorio [CORE/Cake/Cache/Engine/FileEngine.php, línea 295]

Puedes verlo aqui: http://www.petersen-stainless.co.uk/quotesystem

Ahora, tengo CHMOD el directorio temporal a 777, por lo que todos deberían tener permisos, pero sigo recibiendo estos errores.

Eliminé todos los archivos en estas carpetas para que los directorios temporales se hayan limpiado.

Cuando uso mi cliente ftp - transmitir - para ver los permisos del archivo, el propietario aparece como (?) y si trato de cambiarlo, aparece un error: No se pudo cambiar el propietario de "tmp". El servidor dijo: 'SITE CHOWN' no entendido

No entiendo esto con ningún otro sitio en el que trabajo.

No entiendo lo suficiente como para saber qué está pasando, ¿es un problema de permisos o un problema de .htaccess o ambos? ¿O es un problema de configuración del servidor?

Si alguien puede ayudar a arrojar algo de luz sobre esto y ayudar a mi comprensión, estaría muy agradecido.

ACTUALIZACIÓN: Mi estructura de directorios en el servidor es la siguiente:

-- público

--- www

----- sistema de cotizaciones

------- libre

------- aplicación

--------- configuración

--------- raíz web

preguntado el 03 de mayo de 12 a las 14:05

2 Respuestas

En mi experiencia, la advertencia de SplFileInfo aparece cuando Cake intenta leer/escribir caché a la que no tiene permiso de acceso. Asegúrate de que tu aplicación tenga permiso para leer/escribir la carpeta cache/tmp (dependiendo de tu versión de Cake).

Respondido 25 Abr '14, 22:04

y que la estructura de carpetas tmp existe (app tmp cache - especialmente dado "No existe tal archivo o directorio" en el mensaje de error) +1. - AD7seis

Probablemente sea un problema de .htaccess. El RewriteBase debe ser el mismo para ambos webroot y app .htaccess. Entonces la línea en ambos archivos debería ser:

RewriteBase /quotesystem/

Personalmente, nunca toco el .htaccess en el directorio raíz de Cake, ya que no parece ser necesario modificar nada allí.

Además, /tmp/cache y sus subdirectorios también deberían poder escribirse.

contestado el 03 de mayo de 12 a las 15:05

gracias por la respuesta pero eso no parece cambiar nada. Intenté todas las combinaciones sin suerte. Por webroot, ¿quiso decir que la subcarpeta cake está en (quotesystem) o la carpeta app>webroot? ¡Normalmente no toco esto tampoco porque normalmente no tengo que hacerlo! sin embargo, en este servidor se requiere... - Ralphonz

Si, quise decir app/webroot. Creo que definitivamente tienes problemas con mod_rewrite ya que algunas de las imágenes tampoco se cargan. Este archivo: http://www.petersen-stainless.co.uk/quotes/img/twitter_icon.png está presente en app/webroot/img/, ¿derecho? - mensch

Hmmm, parece que simplemente están vinculados incorrectamente, ya que http://www.petersen-stainless.co.uk/quotesystem/img/twitter_icon.png existe. También,/tmp/cache, /tmp/cache/persistent y /tmp/cache/models debe ser escribible también. - mensch

Hola, sí, tienes razón sobre las imágenes, en mis instalaciones locales y de prueba /img/twitter_icon.png es suficiente, pero en este servidor necesitan tener el subdirectorio antepuesto para poder encontrarlo. Esto me hace pensar que es un problema de .htaccess. Todas las subcarpetas temporales también se pueden escribir con 777. He intentado algunas bases de reescritura diferentes sin suerte. Si elimino la base de reescritura, solo obtengo un 404, ¿así que debe ser correcto? - Ralphonz

¿El directorio raíz del sitio principal que contiene la carpeta de pasteles del sistema de cotizaciones necesitaría un archivo .htaccesss? - Ralphonz

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.