logo-antoiba

Antonio Ibáñez Programming

Creando un proyecto Symfony en un subdirectorio web con hosting compartido

PHP Symfony Hosting compartido

Voy a realizar un artículo para las instrucciones que hay que seguir para crear un proyecto Symfony nuevo en un subdirectorio de un hosting compartido.

Para empezar debemos de crearlo en nuestro disco duro para poder subirlo, ya que no tenemos las opciones necesarios ni acceso a la consola de comandos para crear un nuevo proyecto Symfony.

Para ello nos vamos al directorio elegido y creamos el proyecto con el siguiente comando:



$ symfony new my_project_name

Se nos creará un proyecto Symfony con el nombre my_project_name y sin permisos. Abre la dirección donde la hayas instalado y si te da un error 500 es porque los permisos no están configurados de manera adecuada, para ello hay que visitar la página sobre como configurar los permisos en Symfony.

En Linux y macOS debes de eliminar unos archivos y luego ejecutar unos comandos. Está todo ahí pero es mejor paso a paso. Primero eliminamos los archivos de la cache y de logs.



rm -rf var/cache/*
rm -rf var/logs/*

Y después ejecutamos lo siguiente:



 HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`

 sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var
 sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var

Vale, a continuación nos vamos a nuestro FTP y en el directorio raíz, es decir, donde junto a nuestro directorio "public" o "public_html" creamos una carpeta llamada como queramos llamar a nuestro proyecto, en el ejemplo pondremos "symfony". Y dentro de nuestro directorio "public" crearemos una carpeta llamada también "symfony".



/
    /public
        /domain-example1.com
        /domain-example2.com

Nuestro directorio pasaría de eso a esto



/
    /symfony
    /public
        /domain-example1.com
        /domain-example2.com
        /symfony

Ahora dentro de /public/symfony pondremos todo el contenido del directorio "web" y dentro de /symfony pondremos el resto de archivos.

Ahora tenemos todos los archivos en nuestro FTP bien bonicos y bien puestecicos, así que vamos a hacer algunas guarredidas españolas con ellos.

Nos vamos a nuestra dirección junto al nombre de la carpeta y config.php. Si vuestro nombre de dominio se llamar prueba.com iríamos a www.prueba.com/symfony/config.php y tendríais un error como este: “This script is only accessible from localhost.”

Si lo véis vais por buen camino, no os preocupéis, ahora dentro de vuestro FTP váis al archivo en /web/config.php que estaría dentro de la carpeta de public/symfony.

Tenéis que clickar en el siguiente enlace: What Is My IP Address y añadís vuestra dirección IP a este archivo.

1 // web/config.php
2 if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
3 '127.0.0.1',
4 '::1',
5 // añade tu IP aquí!!!
6 ))) {
7 header('HTTP/1.0 403 Forbidden');
8 exit('This script is only accessible from localhost.');
9

}

Y además cambia la línea de

require_once dirname(__FILE__).'/../var/SymfonyRequirements.php';

por

require_once dirname(__FILE__).'/../../symfony/var/SymfonyRequirements.php';

Y ahora tienes que ser capaz de ver la configuración por fin.

A continuación si tratas de ir a www.tusitioweb.com/jquery/app.php verás un error, lo único es que como no ves los fallos, de nuevo tendrías que figurar cual es el error.

Pero todo esto ya hay gente más lista que se ha figurado el error y lo ha arreglado. Para arreglarlo deberías de irte al archivo de /public/symfony/app.php y cambiar las líneas de...



$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';

a



$loader = require_once __DIR__.'/../../symfony/app/bootstrap.php.cache';
require_once __DIR__.'/../../symfony/app/AppKernel.php';

Si quieres puedes cambiarlo también dentro de app-dev.php.

Por último y para terminar debes de cambiar el segundo argumento de $kernel = new AppKernel('prod', false) de false a true quedando como $kernel = new AppKernel('prod', true) y voilá, ya tenemos nuestro Symfony funcionando en nuestro proyecto hosting compartido.


Escribe un comentario

Anterior No permitir que el navegador Chrome se autorecargue

Está web utiliza cookies para asegurarse de una mejor experiencia de nuestra página webMás información sobre las cookies