Iloo

https://iloo.wordpress.com

Archivos por Etiqueta: CakePHP

CakePHP: usando phpfog

Muchos ya habrán usado heroku, un servicio de hosting un tanto particular, orientado a rails, con implementación desde Git, algo similar es phpfog pero orientado a PHP, y como las cosas deberían ser como sexo… si es gratis es mejor, phpfog tiene un plan gratuito con las siguientes características:

  • Espacio en disco 100MB.
  • Base de datos MySQL.
  • Tiempo ilimitado.
  • Capacidad de mantener 3 aplicaciones simultaneas.

Características suficientes para poder probar y jugar un rato, lo importante es el tipo de las aplicaciones, que pueden ser:

  • CMS: Drupal, WordPress, Joomla y muchos otros.
  • Framework: CakePHP, Zend Framework y CodeIgnitir entre algunos.
  • Y por supuesto aplicaciones donde se use puro código PHP.

La mayoría con versiones recientes con una fácil instalación y configuración.

El sitio de phpfog es http://phpfog.com

CakePHP: problemas con public_html

Si se trabaja con public_html en Apache, es decir se cuenta con /home/usuario/public_html activado para funcionar de servidor en http://localhost/~usuario y si se presentan los siguiente “sintomas”:

  • mod_userdir habilitado y configurado.
  • mod_rewrite habilitado y configurado.
  • La aplicación CakePHP no se muestra, o se muestra de manera incorrecta.

Una solución sería “indicar” a cakephp que funcione sin mod_rewrite siguiendo el siguiente enlace: https://iloo.wordpress.com/2009/07/30/cakephp-trabajar-sin-mod_rewrite/

La otra es configurar los archivos .htaccess de la aplicación, configurar los siguiente archivos:

  • /home/usuario/public_html/cakephp/.htaccess
  • /home/usuario/public_html/cakephp/app/webroot/.htaccess

Dejándolos de esta manera:

/home/usuario/public_html/cakephp/.htaccess

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

/home/usuario/public_html/cakephp/app/webroot/.htaccess

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

Cabe hacer notar que solamente se indico en ambos archivos el directorio donde el módulo rewrite debe actuar:

RewriteBase /~usuario/cakephp/

CakePHP: No carga el CSS

cake-logo

Otro error común es la carga del archivo CSS osea que la página de inicio se muestra pero sin estilo:

cake1

Y si el módulo de reescritura (mod_rewrite) ya está habilitado. Para hacerlo solo hay que seguir los pasos que están en:

https://iloo.wordpress.com/2009/07/27/habilitar-mod_rewrite-en-apache/

Si ya se verifico la carga del módulo y sigue sin funcionar, sigue hacer la prueba de trabajar sin mod_rewrite, para trabajar sin el módulo de reescritura:

https://iloo.wordpress.com/2009/07/30/cakephp-trabajar-sin-mod_rewrite/

Si en este caso vemos que funcionan los estilos entonces solo puede ser la configuración de apache de los sitios habilitados, (yo estoy usando GNU/Linux) entonces la solución es la siguiente:

Modificar como superusuario el siguiente archivo: /etc/apache2/sites-available/default, buscamos:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Y lo reemplazamos con:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Nótese que solo cambie el valor de  AllowOverride. Reiniciamos apache y listo.

cakephp2

CakePHP: Warning (512)

cake-logo

Hoy me decidí a probar la versión 1.2.5 de este framework. Y bueno que copio todo el contenido a /var/www/cake y la sorpresa que en el explorador me sale el siguiente mensaje:

Warning (512): /var/www/cake/app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 262]

Esta alerta nos indica que la carpeta donde se almacenan los datos temporales no tiene los permisos de escritura. Mediante el comando:

ls -l

Nos muestra este resultado:

drwxr-xr-x 6 root root 4096 2009-09-09 00:21 tmp

Hay varias maneras de solucionar este pequeño problema pero el más fácil es cambiar los permisos de la carpeta, de esta manera:

sudo chmod -R 777 /var/www/cache/app/tmp

Con eso estoy diciendo que se den permisos de lectura, escritura y ejecución, para el root, el grupo y los invitados, el parámetro -R significa que también se den permisos al contenido del directorio.

Y con eso se arregla esta alerta.

CakePHP: trabajar sin mod_rewrite

cake-logo

Muchas veces tropezamos que en el servidor por muchas razones no se permiten los archivos ocultos es decir los .htaccess (si, en GNU/Linux los archivos ocultos comienzan con el punto) lo que hace que no se pueda usar la reescritura de url’s, es decir que no se pueda usar el mod_rewrite (por ejemplo en el servicio de Yahoo).

La solución para CakePHP 1.1 y CakePHP 1.2:

  1. Borramos de nuestra aplicación todos los .htaccess (si subimos directamente al servidor la aplicación, estos archivos no se habrán cargado).
  2. En el archivo /app/config/core.php
  3. Descomentamos la linea (borramos los //) y tiene que quedar así:
  4. Configure::write(‘App.baseUrl’, env(‘SCRIPT_NAME’));

  5. En caso de no funcionar tenemos que cambiar esa linea y tiene que quedar así:
  6. Configure::write(‘App.baseUrl’, $_SERVER[‘SCRIPT_NAME’]);