Zuletzt aktualisiert am 26.08.2021 um 05:08 Uhr
Wer auf einem Server zum Beispiel KeyHelp installiert hat und mittels SSH Composer nutzen möchte, stößt auf ein Hindernis. Composer verweigert die Installtion im www- bzw. files-Verzeichnis.
All settings correct for using Composer
Unable to create Composer home directory “/home/users/NAME/.config/composer”: mkdir(): Permission denied
Auch bringt vermutlich der Parameter --install-dir=bin
oder ähnliches nichts, aber mit einer kleinen Änderung im Script klappt es 🙂
Vorbereitungen
Die folgenden Sachen werden im Terminal via SSH vorgenommen.
In das gewünschte Verzeichnis wechseln
cd ~/files
Composer von Seite getcomposer.org/download/ herunterladen, dazu in der Box wo php steht, nach und nach ausführen.
Öffnen
nano composer-setup.php
Suchen
$home = getenv('COMPOSER_HOME');
Ersetzen
$home = getenv('COMPOSER_HOME').'/files';
Speichern & beenden
Die Anpassung kann mit Strg + O und Enter gespeichert werden und mit Strg + X beendet werden.
Ausführen
Damit nun die geänderte Variante getestet werden kann, einfach das Script
php composer-setup.php
ausführen und beobachten, dass keine Fehlermeldung erscheint.
Ergebnis
All settings correct for using Composer
Downloading...
Composer (version 1.10.13) successfully installed to: /home/users/USER/files/composer.phar
Use it: php composer.phar
Im Ordner befindet sich nun ein versteckter Ordner .config und die Datei composer.phar
Abschluss
Nach erfolgreichem Abschluss kann die Datei gelöscht werden
rm composer-setup.php
Das Script kann nun folgendermaßen gestartet werden
php composer.phar
Beispielausgabe
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.10.13 2020-09-09 11:46:34
Usage:
command [options] [arguments]
Options:
-h, –help Display this help message
-q, –quiet Do not output any message
-V, –version Display this application version
–ansi Force ANSI output
–no-ansi Disable ANSI output
-n, –no-interaction Do not ask any interactive question
–profile Display timing and memory usage information
–no-plugins Whether to disable plugins.
-d, –working-dir=WORKING-DIR If specified, use the given directory as working directory.
–no-cache Prevent use of the cache
-v|vv|vvv, –verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
about Shows the short information about Composer.
archive Creates an archive of this composer package.
browse Opens the package’s repository URL or homepage in your browser.
cc Clears composer’s internal package cache.
check-platform-reqs Check that platform requirements are satisfied.
clear-cache Clears composer’s internal package cache.
clearcache Clears composer’s internal package cache.
config Sets config options.
create-project Creates new project from a package into given directory.
depends Shows which packages cause the given package to be installed.
diagnose Diagnoses the system to identify common errors.
dump-autoload Dumps the autoloader.
dumpautoload Dumps the autoloader.
exec Executes a vendored binary/script.
fund Discover how to help fund the maintenance of your dependencies.
global Allows running commands in the global composer dir ($COMPOSER_HOME).
help Displays help for a command
home Opens the package’s repository URL or homepage in your browser.
i Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
info Shows information about packages.
init Creates a basic composer.json file in current directory.
install Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
licenses Shows information about licenses of dependencies.
list Lists commands
outdated Shows a list of installed packages that have updates available, including their latest version.
prohibits Shows which packages prevent the given package from being installed.
remove Removes a package from the require or require-dev.
require Adds required packages to your composer.json and installs them.
run Runs the scripts defined in composer.json.
run-script Runs the scripts defined in composer.json.
search Searches for packages.
self-update Updates composer.phar to the latest version.
selfupdate Updates composer.phar to the latest version.
show Shows information about packages.
status Shows a list of locally modified packages, for packages installed from source.
suggests Shows package suggestions.
u Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
update Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
upgrade Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
validate Validates a composer.json and composer.lock.
why Shows which packages cause the given package to be installed.
why-not Shows which packages prevent the given package from being installed.
Alle Angaben die hier genannten wurden, wurden selber getestet, dennoch übernehme ich keinerlei Haftung.