Hola qué tal?
Les comento rápidamente mi problema. Resulta que desarrollé un modulo de administración en Symfony, para una web existente, la cual se encuentra en: www.dominio.com
El problema o duda que tengo es que no me doy cuenta de como subir los archivos de mi proyecto en Symfony, para que todo siga funcionando bien.
Lo que hice fue crear un subdominio, que apunta a una carpeta dentro del directorio: public_hml/
, es decir en sínstesis la estructura que tengo es la siguente:
/ -> raíz. /dir_Joomla_1 /dir_Joomla_2 ... public_html public_html/sistema public_html/sistema/app public_html/sistema/bin public_html/sistema/src public_html/sistema/vendor public_html/sistema/web ....
Pero por ejemplo cuando quiero inegresar a: www.subdominio.dominio.com/sesion/login
el servidor me devuelve un error 404.
¿Hay algo acá que esté entendiendo mal? ¿Alguna idea de como puedo solucionar éste error? gracias!
Respuestas
Lo primero que hay que hacer en estos casos es consultar el archivo de "log" de Apache. Su localización depende de cómo hayas instalado Apache (en mi ordenador por ejemplo están en /var/log/apache2/...
pero en tu ordenador puede cambiar.
Tienes que mirar tanto el access_log
como el error_log
para ver si se incluye algún mensaje explicando un poco más la causa del problema que comentas.
@javiereguiluz
El problema es que estoy trabajando con un VPS, es decir no tengo acceso a esos archivos.
De todos modos, noté que mi problema estaba en que no estaba llegando correctamente a la carpeta web,
es decir si en la URL del navegador pongo: www.subdominio.dominio.com/web/sesion/login
obtengo el siguiente error:
Parse error: syntax error, unexpected '[' in /.../.../public_html/sistema/src/NameProject/ImportacionesBundle/Controller/ImportacionesController.php on line 244
En dicha linea tengo:
line 244 $arrayDatos = [ line 245 "valor1"=> $datos[0], line 246 "valor2"=> $datos[1], line 247 "valor3"=> $datos[8], line 248 ];
En mi composer.json tengo:
"require": { "php": ">=5.3.9",
Ésto quiere decir que usa la versión más reciente y estable de php no?
Porque viendo en el VPS está configurado con la versión: 5.3 de php
@MrXXX0323
Efectivamente, al margen del problema del subdominio, el problema realmente importante es el que muestras en tu segundo mensaje. La aplicación utiliza la notación corta de arrays PHP (es decir, $arrayDatos = [ ... ]
en vez de $arrayDatos = array( ... )
).
Esta notación corta está disponible desde PHP 5.4, por lo que debes actualizar tu Composer para que requiera al menos PHP 5.4.0
.
Por otra parte, comentas si PHP 5.3 es la versión más reciente y estable de PHP. En realidad, la versión 5.3 dejó de soportarse en agosto de 2014. Además, la versión 5.4 también está obsoleta desde septiembre de 2015. En esta página puedes ver las versiones de PHP "caducadas" y en esta otra página puedes ver las versiones que todavía tienen soporte activo.
@javiereguiluz
Muchas gracias javier, lo que en realidad quería preguntar con respecto a esto:
"require": { "php": ">=5.3.9",
es:
Al indicar en el archivo composer.json que requiera php > 5.3.9 Al ejecutar el comando: composer install sobre el proyecto, actualiza la versión de php a la más reciente y estable ?
Por otra parte cuando me decis: debes actualizar tu Composer para que requiera al menos PHP 5.4.0. No me doy cuenta de como hacer eso que dices! :S si puedes ser un poco más explicito estaré más que agradecido, sino por otro lado debo esperar que el usuario con más permisos de administrador que yo del VPS actualice la versión de php por una más reciente.
@MrXXX0323
Disculpa que no me haya explicado bien. Lo que tienes que usar en tu composer.json
es lo siguiente:
"require": { "php": ">=5.4.0", ..., }
@javiereguiluz
va avanzando la cosa, ya actualice las fuentes y ahora me sale éste error:
Fatal error: Class 'PDO' not found in /.../.../public_html/sistema/vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php on line 172
Alguna idea ? :/
@MrXXX0323
Si no encuentra la calse PDO
, lo más seguro es que la extensión pdo
de PHP no esté activada o incluso no esté instalada.
Si puedes ejecutar comandos de consola, ejecuta lo siguiente para ver si la extensión PDO está activada:
$ php --ri pdo
En mi caso si que veo la extensión PDO y todas las relacionadas para cada tipo de base de datos:
$ php --ri pdo PDO PDO support => enabled PDO drivers => mysql, sqlite, dblib, pgsql
Para activarla (suponiendo que esté instalada), abre el archivo de configuración php.ini
, descomenta la línea de la extensión php_pdo.so
y reinicia el servidor. Si no sabes cuál es el archivo php.ini
utilizado por tu PHP, puedes ejecutar lo siguiente:
$ php --ini
@javiereguiluz
Lamentablemente no pude continuar por éste camino, ya que seguir por el mismo significa tratar con la mesa de ayuda del VPS lo que conlleva a que lleve más tiempo poner en producción/funcionamiento el sitio. por lo que tuve que optar por subir el proyecto en otro VPS ya que mi cliente esta necesitandolo con mucha urgencia.
Pero desde ya, agradezco toda la ayuda!
@MrXXX0323