How to deploy the local changes of a Git repository using FTP on windows command line

I’m working on a small project which makes it necessary to test everything online, so I can not use my local environment for testing. It’s a very annoying task to copy my changes to the online stage file by file. To make this easier I wrote a script which runs on the windows command line (cmd). The concept behind this script is creating a temporary FTP batch file which contains a put command for every file I have changed in my local Git repository. This file will be executed using the built-in FTP command line client of Windows.

 

:: Save the root path of the git repository to a variable
  1. for /f %%i in ('git rev-parse –show-toplevel') do set REPOPATH=%%i
  2.  
  3. :: Get all uncommitted changed files from git
  4. for /f %%i in ('git diff –name-only') do (
  5.  :: Add a ftp put command for the changed file to a temporary file
  6.  echo put %REPOPATH%/%%i %%i >> tmpfiles.ftp
  7. )
  8.  
  9. :: Merge login credentials and the temporary file into another temp file
  10. copy login.ftp+tmpfiles.ftp tmpcopy.ftp
  11.  
  12. :: Add a ftp quit command at the end of the temp file
  13. echo quit >> tmpcopy.ftp
  14.  
  15. :: Execute the ftp temp file
  16. ftp -n -s:tmpcopy.ftp *fill-in-your-ftp-host-here*
  17.  
  18. :: Delete all temp files
  19. del tmpfiles.ftp
  20. del tmpcopy.ftp
  21.  
  22. :: Done :-)
  23. pause

Please note: Before running this script you need to create a file called „login.ftp“ in the same folder which contains the following three lines:

user
  1. *your-ftp-user*
  2. *your-ftp-password*
Share

XAMPP/Apache Problem: AH00072: make_sock: could not bind to address

Nach zäher Suche möchte ich kurz die Lösung für ein Problem dokumentieren, das beim Betrieb einer XAMPP-Installation (Version 1.8.1) auf einem Windows 7 (64 Bit) System aufgetreten ist.

Obwohl der HTTP-Server eigentlich bereits reibungslos lief, meldete das XAMPP-Control Panel beim Start von Apache plötzlich folgendes:

23:04:53 [Apache] Problem festgestellt!
23:04:53 [Apache] Port 80 in Benutzung von "system"!
23:04:53 [Apache] Apache wird NICHT starten, wenn die konfigurierten Ports beleg
t sind!
23:04:53 [Apache] Die blockende Applikation muss deinstalliert/deaktiviert/rekon
figuriert werden
23:04:53 [Apache] oder konfiguriere Apache auf einen anderen Port zu lauschen

Ein weiterer Start-Versuch brachte dann plötzlich eine andere Fehlermeldung zu Tage:

23:05:35 [Apache] Fehler: Apache wurde unerwartet beendet.
23:05:35 [Apache] Ursache könnte ein geblockter Port, fehlende Abhängigkeiten,
23:05:35 [Apache] fehlende Berechtigungen, ein Absturz oder ein Abbruch einer an
deren Methode sein.
23:05:35 [Apache] Überprüfe die Datei "/xampp/apache/logs/error.log"
23:05:35 [Apache] und die Windows Ereignisanzeige für weitere Hinweise

Und ein Start-Versuch mittels „apache_start.bat“ lieferte dann Fehlermeldung Nummer Drei zum gleichen Problem:

Apache 2 is starting ...
(OS 10013)Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Socke
ts unzulõssig. : AH00072: make_sock: could not bind to address [::]:80
(OS 10013)Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Socke
ts unzulõssig. : AH00072: make_sock: could not bind to address 0.0.0.0:80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

Ok – drei verschiedene Fehlermeldungen, die aber alle auf die selbe Ursache hindeuten: Port 80 ist belegt.

netstat brachte leider keine Hinweise auf den Prozess, der eben jenen Port belegen könnte. Das XAMPP-eigene Script „portcheck.bat“ meldete sogar, dass Port 80 frei sei. Schlussendlich habe ich in den Tiefen dieses Threads die Lösung gefunden: Schuld ist der Dienst „Webbereitstellungs-Agent-Dienst“ von Microsoft. Sobald dieser Dienst in den Windows-Diensten deaktiviert wurde, startete Apache wieder tadellos.

Share

Erster Eintrag

Hiermit eröffne ich dieses Blog mit dem ersten obligatorischen Eintrag. :-)

Jeder, der gerne etwas über die Hintergründe dieses Blogs erfahren möchte, kann sich hier etwas belesen. ;-)

In diesem Sinne… bis zu meinem ersten richtigen Blog-Eintrag!

Share