Una pregunta que me han hecho en repetidas oportunidades es cómo usar composer en un ambiente de hosting compartido.
Personalmente, siempre prefiero usar mis propios servidores tipo VPS, precisamente para evitar este tipo de problemas, pero… si no queda otra, veamos qué se puede hacer.
Cómo instalar dependencias si tenemos acceso ssh
Existen algunos hostings compartidos que permiten algún tipo de acceso vía ssh (o similar).
Si este es el caso, puede que hasta tengamos composer ya instalado… claro que la versión que podremos encontrar puede ser algo añeja y, como el servidor lo administra otro, tendremos que poner un ticket de soporte y rogar para que se actualice.
Si tenemos suerte, podremos ejecutar composer y actualizar nuestras dependencias directamente en el servidor como si estuviéramos en un ambiente controlado por nosotros mismos… si esto no funciona podemos intentar la sigueinte opción.
Cómo instalar dependencias en un hosting compartido si no tenemos acceso ssh
Este es ciertamente el caso más común: no hay posibilidad de hacer ssh al servidor.
Claro que, de alguna forma, nuestro código debe llegar al hosting… para eso lo contratamos a fin de cuentas, ¿cierto?
Pues en este escenario lo que podemos hacer es preparar lo que vamos a subir al servidor en un directorio especial y luego subirlo.
La idea de hacer esto en lugar de subir directamente lo que tenemos en nuestro directorio de trabajo es:
- Minimizar la transferencia (para disminuir el tiempo que insumirá la subida)
- Minimizar la cantidad de espacio que ocuparemos en nuestro espacio de hosting
- Evitar subir información sensible que sólo debería estar disponible en nuestro entorno de desarrolllo
Cómo preparar la subida
Idealmente nuestro código estará versionado (Usando git, svn o similar).
Si este es el caso, lo que podemos hacer es generar un nuevo directorio local mediante un clone o checkout (depende de cuál sea el controlador de versiones que usemos).
Una vez que tengamos el código descargado será tiempo de instalar las dependencias.
Lo ideal sería subir siempre una copia limpia de nuestro sistema. Si esto no es posible, al menos deberíamos eliminar los contenidos del directorio vendor de nuestra aplicación para no acumular dependencias que ya no sean necesarias.
Cómo actualizar las dependencias usando composer
Independientemente de cuál sea el lugar donde ejecutaremos composer, el comando que debemos ejecutar es:
composer install --no-dev -o
Con este comando sólo se instalar las dependencias necesarias en producción y se optimizará el autoloading (dando mejor performance a nuestra aplicación).
- Cómo enviarencabezados SOAP desde PHP - 09/12/2024
- Por qué PHP 8 no satisface el requisito ^7.3 de composer - 09/12/2024
- Cómo usar PHPUnit - 03/12/2024
Hola, no estoy entendiendo algo. Tengo un servidor compartido donde no puedo usar ssh y por ende, tampoco composer.
Necesito echar a andar el proyecto serp en mi servidor ( https://github.com/serp-spider ) pero en el útimo paso me pides usar composer. ¿Me puedes explicar con mayor detalle?
Saludos y gracias,
Luis
Hola Luis!
Gracias por tu pregunta. El último paso al que te refieres lo tienes que realizar en tu entorno local.
La idea en general es hacer un camino algo más largo pero igual de efectivo: en lugar de ejecutar el composer en el servidor (Lo que precisamente no puedes hacer), lo haces en tu local y luego subes por ftp la carpeta vendor como si se tratara de tu propio código.
En el caso particular de serp puede que te encuentres con limitaciones de tu servidor (si no te dan ssh es posible que te limiten también llamadas tipo cURL)…
De paso, si estás usando serp puede que te ayude este artículo: https://academy.leewayweb.com/como-automatizar-las-busquedas-en-google/