Niemand wird leugnen, dass Composer ein recht praktisches Tool ist und dass es kostenlose oder billige Hosting-Anbieter gibt, die keine Konsole oder kein integriertes Tool für die Arbeit mit Composer bereitstellen. Dies ist genau die Art von Stapel, auf die ich gestoßen bin. Nun, wie die Jedi hinterlassen haben, wird der
Anbieter sofort zu
.gitignore hinzugefügt, um das Repository nicht zu
überladen und die Bibliotheken nicht hin und her zu fahren.
Das erste, was mir in den Sinn kam, war, ein Skript über das Web zugänglich zu machen, das zum richtigen Zeitpunkt abgerufen werden kann und die Abhängigkeiten aktualisiert oder installiert.
Dazu müssen wir einige Manipulationen durchführen.
1. Um den Composer lokal zu installieren,
müssen Sie composer.phar herunterladen .
2. Erstellen Sie einen Ordner, in den es entpackt wird (lassen Sie es
var sein ).
3. Erstellen Sie
composer.json (nun, ich denke, Sie wissen bereits, ob Sie mit Composer gearbeitet haben).
4. Erstellen Sie das Skript selbst, um mit dem Komponisten aus dem Web zu arbeiten (lassen Sie
composer.php sein).
Wir haben also die Struktur unserer zukünftigen Site:
Composer.phar selbst lautet wie folgt:
<?php use Composer\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\StreamOutput;
Und wenn Sie ein glücklicher Kerl sind. Nach dem Aufrufen des Skripts wird der
Herstellerordner erweitert.
Aber ich bin nicht so gekommen.) Das erste, was meine Pläne gebrochen hat, war,
phar.readonly = On in
php.ini zu setzen . Wie Sie vielleicht beim kostenlosen Hosting vermutet haben, können Sie es normalerweise nicht bearbeiten. Dann suchte ich nach Problemumgehungen.
Das erste, was ich versuchte, war,
user.ini zu erstellen, die die Einstellungen in
php.ini überschreibt . Es funktionierte auf dem lokalen Computer. Aber auf dem Hosting wurde diese Funktionalität erstochen.
Dann habe ich noch einen Trick versucht. Benennen Sie
composer.phar in nur
composer um . Das Ergebnis ist dasselbe. Es funktionierte im LAN, aber nicht beim Hosting.
Trotzdem musste ich die Dateien anstelle eines Skripts lokal in
var entpacken
und auf den Server hochladen.
Es lohnt sich auch, das Skript mit einer Autorisierung zu schließen, damit es nicht von allen möglichen Personen aufgerufen wird. Auch in der endgültigen Version des Skripts habe ich die Auswahl des Befehls über die Parameter hinzugefügt.
<?php use Composer\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\OutputInterface;
Es schadet auch nicht,
.htaccess eine Regel für die Weiterleitung des Autorisierungsheaders (im Fall von CGI) und eine Weiterleitung an HTTPS hinzuzufügen, da die Autorisierung frei bleibt.
RewriteEngine On # CGI, , RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # HTTPS, RewriteCond %{HTTPS} off RewriteCond %{HTTP:SSL} !=1 [NC] RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]