Generalidades
Composer es una herramienta de gestión de dependencias para proyectos PHP. Te permite declarar las bibliotecas que tu proyecto requiere y las instala/actualiza por ti.
Está implementado como un archivo PHAR (PHP Archive). Phar está habilitado de manera predeterminada en tu servidor de DreamHost. Lo puedes confirmar al ejecutar el siguiente comando por SSH:
[server]$ php -m | grep Phar Phar
Algunos proyectos PHP sugieren que se use Composer para administrar bibliotecas externas durante la instalación. MediaWiki es uno de esos ejemplos, al indicarlo en sus instrucciones de instalación:
Cambiar el CLI de PHP predeterminada que usa tu shell
Si deseas que tus comandos se ejecuten usando una versión específica de PHP, mira el siguiente artículo:
Sitio oficial de instalación de Composer
Haz clic en el siguiente enlace para encontrar más detalles:
Instalación Local
Instalar Composer a nivel local es buena idea si sólo tienes que mantener un proyecto.
- Inicia sesión por SSH en tu servidor.
- Navega al directorio de tu proyecto.
[server]$ cd ~/<path-to-your-project>
- Reemplaza <path-to-your-project> con la ruta a tu proyecto. Si el directorio del proyecto se llama proyecto y está en el dominio example.com, la ruta sería example.com/proyecto.
- Ejecuta el instalador de Composer.
[server]$ curl -sS https://getcomposer.org/installer | php
- Si eso no funciona, entonces intenta lo siguiente:
[server]$ php -r "readfile('https://getcomposer.org/installer');" | php
- Si funciona, verás el siguiente mensaje:
#!/usr/bin/env php All settings correct for using Composer Downloading... Composer successfully installed to: /home/username/example.com/project/composer.phar Use it: php composer.phar
Esto descarga el archivo composer.phar.
Instalación Global
- Inicia sesión por SSH en tu servidor.
- Navega al directorio de usuario.
[server]$ cd ~
- Crea un directorio para la instalación. Puedes escoger cualquier nombre que sea válido, en las siguientes instrucciones le llamaremos ~/.php/composer.
[server]$ mkdir -p ~/.php/composer
- Navega al directorio de la instalación.
[server]$ cd ~/.php/composer
- Ejecuta el instalador de Composer.
[server]$ curl -sS https://getcomposer.org/installer | php
Si eso no funciona, entonces intenta lo siguiente:
[server]$ php -r "readfile('https://getcomposer.org/installer');" | php
- Revisa el artículo crear y editar un archivo por SSH para que encuentres instrucciones sobre cómo editar tu archivo existente .bash_profile ubicado en el directorio home de tu usuario. Agrega lo siguiente al archivo composer.phar.
export PATH=/home/username/.php/composer:$PATH
- Reemplaza username con tu usuario shell.
- Guarda el archivo y ciérralo.
- Ejecuta el siguiente comando para actualizar el archivo .bash_profile:
[server]$ . ~/.bash_profile
- Renombra el archivo de composer para que sea más fácil de manejarlo.
[server]$ mv ~/.php/composer/composer.phar ~/.php/composer/composer
Usar Composer
Si instalaste Composer a nivel local, entonces, mientras estás en el directorio del proyecto invocarás a Composer de esta manera:
[server]$ php composer.phar <composer-command>
Si instalaste Composer a nivel global, deberías invocar a Composer de esta manera:
[server]$ composer <composer-command>
En cualquier caso, reemplaza <composer-command> con el comando de composer que quieras ejecutar. Puedes encontrar una lista de los comandos de Composer aquí en la documentación de Composer.
Solución de problemas
Al ejecutar composer, puede que encuentres el siguiente error:
PHP Fatal error: Uncaught Error: Class 'Phar' not found
Phar ya está habilitado de manera predeterminada, por lo que este error generalmente significa que hay líneas en tu archivo phprc que hacen referencia a Phar que deben eliminarse. Primero, verifica qué versión de PHP está usando tu Shell.
[server]$ php -v
A continuación, revisa el archivo phprc correspondiente a esa versión. Por ejemplo, si tu shell usa PHP 8.1, corre el siguiente comando:
[server]$ cat ~/.php/8.1/phprc
Si ves que en alguna de las líneas se menciona a Phar, elimínalas, y luego elimina los procesos para actualizar el archivo.