Kategorien
PHP Server Administration

Windows 10 geplante Aufgabe für PHP Skript anlegen analog Crontab

Für wiederkehrende PHP Jobs kann man den Betriebsystem Scheduler verwenden, unter Linux ist das cron und unter Windows Aufgaben.

Um ein PHP Skript zu starten C:\foo\bar.php mittels der Aufgabenplanung jede Minute kann man unter Windows 10 und darunter wie folgt neue Aufgaben anlegen.

Unter Systemsteuerung -> Aufgabenplanung lassen sich neue Aufgaben verwalten:

Systemsteuerung -> Aufgabenplanung
Kategorien
Projekte

Webanwendung zur Vermittlung von IT-Kräften

Meine Bachelorarbeit zum Download:

Konzept und Entwicklung einer
Webanwendung zur Vermittlung von IT-Kräften

Daraus ist das Startup nerdle.de geworden, welches nach 2 Jahren aufgrund mangelnder Finanzierung eingestellt werden musste, aber mir sehr viel Spaß gemacht hat.

Download .pdf

Download .doc

Kategorien
Projekte

Behavioral Finance und Moving Averages

Meine Diplomarbeit zum Download

Behavioral Finance und Moving Averages – Anwendbarkeit/Simulation von Aktienmärkten
anhand des 200-Tage-Durchschnitts

Download .pdf

Download .doc

Download Excel Makro

Kategorien
PHP

PHP cURL verifizieren eines selbst-signierten FTPS Zertifikat

Leider kann man mit der PHP FTP Erweiterung keine SSL Zertifikate von FTPS Servern zu verifizieren, um Man-in-the-Middle Angriffe zu verhindern.

Es ist aber möglich über php-cURL das selbst signierte Zertifikat zu verifizieren:

public function checkFTPSCertificate(): bool
{
    $ftp_certificate = 'path/to/cert.crt'

    $ftp_server = 'ftp://foo.de/';
    $ftp_user = 'user';
    $ftp_password = 'password';

    $ch = curl_init();

    // curl_setopt($ch, CURLOPT_VERBOSE, '1');
    curl_setopt($ch, CURLOPT_URL, $ftp_server);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERPWD, $ftp_user . ':' . $ftp_password);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);


    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, '1'); // Überprüfung des Serverzertifikats
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, '2');
    curl_setopt($ch, CURLOPT_CAINFO , $ftp_certificate);
    curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);
    curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);

    $result = curl_exec($ch);
    $error_no = curl_errno($ch);
    $error_msg = curl_error($ch);
    curl_close ($ch);
    return $error_no == 0 && empty($error_msg);
}
Kategorien
Amazon AWS

Festplatte von EC2 t2 Instanz vergrößern

Um die Festplatte einer EC2 Instanz zu vergrößern muss man als erstes das Volume vergrößern über die Console und dann auf der Instanz folgende Befehle ausführen im Normalfall (AWS Dokumentation):

lsblk
sudo growpart /dev/xvda 1
sudo yum install xfsprogs
sudo xfs_growfs -d /
df -h
Kategorien
Server Administration

Linux grep mit Filepattern und Ausgabe von mehreren Zeilen bei Erfolg

grep -A4 --include \*pattern\*.xml searchText *
Kategorien
Server Administration

Linux unzip/entpacken aller Dateien in einen Unterordner

unzip \*.zip -d unzipDir
Kategorien
proftp

proftp log user traffic mit mod_sql

Um den User Traffic in proftp mitzuloggen in einer MySQL Datenbank, muss man nur in der User Tabelle eine Spalte „traffic“ hinzufügen vom Typ BIGINT, Default 0:

ALTER TABLE `ftpuser` ADD COLUMN `traffic` BIGINT NOT NULL DEFAULT '0';

Dann kan man einen SQLNamedQuery verwenden in der sql.conf, um die Menge des Traffics mitzuschneiden:

SQLLog RETR,STOR,APPE extendedlog
SQLNamedQuery extendedlog UPDATE "traffic= (traffic + %b) WHERE userid='%u'" ftpuser

Achtung, die Verwendung führt zu erhöhtem Traffic auf der Datenbank.

Kategorien
PHP 7

PHP: ftp_fget(): Entering Passive Mode (10,1,0,139,213,156).

Die Fehlermeldung:

 ftp_fget(): Entering Passive Mode (10,1,0,139,213,156)

bedeutet, dass der FTP Client eine neue passive Verbindung auf der IP 10.1.0.139 auf Port 213 * 256 + 156 = Port 54684 aufmachen soll.

Am einfachsten händelt man diese Situation, wenn man sich neu verbindet mit ftp_connect() und es nochmal versucht und eine passive Verbindung aufbaut mit ftp_pasv();

 

Kategorien
PHP Symfony

Gaufrette mit File Streams arbeiten

Um mit Gaufrette (Symfony Extension) auch Stream Operationen an Dateien durchführen zu können, kann man den etwas dürr dokumentierten Stream Wrapper verwenden.

Dazu konfiguriert man in der gaufrette.yaml:

knp_gaufrette:
    stream_wrapper: ~
    filesystems:
        backup1:
            adapter: backup

Und kann dann z.B. folgender Maßen eine csv. Datei schreiben:

$stream = fopen('gaufrette://backup1/datei.csv', 'w+');

fputcsv($stream, [1,2,3]);