Jo, also meine PHP Versionen sind nicht gleich, lokal nutze ich 7.3 und Live 7.2; Lokal habe ich Wampserver und Live eben einen echten Server. Ich geb nicht viel drauf ob alles gleich ist, ich weiß ja was ich mache. Daten die Live/Lokal tatsächlich unterschiedlich sind - wie Datenbankzugang - speicher ich in Environment-Variablen.
Wichtig ist bei Windows z.B. dringend die Groß/Kleinschreibung der Dateinamen korrekt einhalten.
Bei PHP dürfen nur Funktionen verwendet werden, die in beiden PHP-Versionen vorkommen. Wenn Bei 7.0 & 7.1 sollte das kein Ding sein, bei 5.6 und 7.x solltest du sehr dringend die 5.6 anheben auf 7.x. Auch aus Sicherheitsgründen, 5.6 bekommt keine kostenlosen PHP-Updates mehr.
Umzug würde ich genauso mit einem Rsync machen - benötigt SSH Zugang und evt. etwas Mut den Befehl auszuführen ;D
Jedenfalls kannst du mit Rsync alles auf den neuen Server pushen, wenn du so viel Arbeitsspeicher hast, musst du es auch nicht erst herunterladen um Composer auszuführen. Wichtig ist, Composer ist ein “PHP-Programm”, also im Grunde ein Projekt welches mit Phar in eine Art ausführbare Zip verwandelt wurde. Es könnte sein, dass du PHP mehr Arbeitsspeicher zuweisen musst, falls composer doch abschmiert.
Wenn du öfter Live pusht, dann würde ich dort eine Shell-Datei hochladen die einfach so gängige Arbeit erledigt wie tmp leeren, grunt/gulp/webpack oder was auch immer und composer ausführt. Könnte heißen “deploy.sh” und liegt im Root neben /vendor und /source
rm -Rf /source/tmp # see http://www.thinkplexx.com/learn/snippet/shell/one-liner/remove-all-but-exclude-particular-file-or-directory
# npm run build
composer update
php vendor/bin/ox.... # diverse oxid scripts
Git
Ich empfehle dir Sourcetree Das ist einfach und es ist nicht leicht etwas kaputt zu machen. Das nimmt dir viel Spannung, Gitlab z.B. bietet auch kostenlose private Repositories - auch gut geeignet um reinzukommen.
Composer.lock
Wenn du composer update ausführst, werden alle Webseiten die Composer in deinem Projekt bekannt sind nach den Paketen welche in der composer.json (und in der composer.json der Pakete ( und in der composer.json der Paket-Pakete…)). Das eine ist packagist.org und das andere ist die Paketseite von Oxid für PE und PP Versionen.
Alles gefundene wird in die composer.lock geschrieben, damit “composer install” einfach nur noch die Daten aus composer.lock nutzen kann, ohne rekursiv 10 ~ 10000 Pakete/Paketversionen durchsuchen zu müssen.
composer.json
Du kannst ja mal eine erstellen und schauen was passiert: composer init. Das hilft immer am Anfang. Du kannst ja mal Pakete auf packagist.org suchen und dir die JSON - Dateien dort anschauen, die ersten 10 composer.json Dateien werden vermutlich (Weil Copy&Paste) eh viel Unsinn enthalten ;D