unzip \*.zip -d unzipDir
Autor: Sebastian Viereck
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.
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();
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]);
Um bei Amazon SES Email verschicken zu können, muss man die E-Mail Adresse erst verifizieren. Dies ist ein Problem, wenn man zwar Zugriff auf die Domain hat, aber keinen Mail-Server eingerichtet hat.
Um das Problem zu umgehen, verifiziert man erst die Domain in SES und richtet dann unter Configure Email Receiving die zu verifierende E-Mail Adresse ein und verbindet diese mit einem SNS Topic. Danach kann man eine Subscription einrichten auf das SNS Topic via Email und sich so die Verifikations-Email weiterleiten lassen auf ein vorhandenes Postfach.
Wenn man gern in seiner Depnedency Injection Kofiguration (services.yml) die Service Injektionen dynamisch konfigurierbar machen will über die parameters.yml,
parameters: my_class: 'App\MyClass'
kann man dies mittels der Symfony Expression Language Komponente tun:
composer require symfony/expression-language
Dann kann man in der services.yml definieren:
services: App\Command\MyCommand: arguments: - '@=service(parameter("my_class"))'
Folgende Fehlermeldung hat mein Composer trotz unbegrenztem Speicher:
composer update Loading composer repositories with package information Updating dependencies (including require-dev) VirtualAlloc() failed: [0x00000008] Zur Verarbeitung dieses Befehls sind nicht gen VirtualAlloc() failed: [0x00000008] Zur Verarbeitung dieses Befehls sind nicht gen Fatal error: Out of memory (allocated 1260388352) (tried to allocate 201326600 bytes) in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/DependencyResolver/RuleSet.php on line 83
Wenn man unter Windows ein composer Update nicht mehr durchführen kann, obwohl man das Memory Limit auf unbegrenzt gesetzt hat, dann hat man ein Problem:
Das Windows-Xammp ist nur als 32 bit System erhältlich und kann nur 2GB Ram bereitstellen im Moment, eine weitere Erhöhung ist nicht möglich.
Die Lösung ist Composer mit einem 64bit PHP auf der Konsole auszuführen (dies hat dann bis zu 4GB Memory).
- Download von PHP x64 Version
- entpacken und php.ini anlegen (umbennnen der php.ini-development)
- memory Limit erhöhen in php.ini: memory_limit = -1
- auf der Konsole ausführen:
"C:\php-7.2.12-nts-Win32-VC15-x64\php" C:\ProgramData\ComposerSetup\bin\composer.phar update
Ich habe lange mit Yii und dem Symfony Framework gearbeitet und will versuchen im Folgenden die Unterschiede von beiden Frameworks aus Programmierer Sicht zu erläutern.
Konfiguration von Umgebungen
Beim Erstellen von Web-Anwendungen hat man typischer Weise mindestens 2 Umgebungen: Die Entwicklungsumgebung, auf der man Fehler sehen will und die Live Umgebung, wo dies nicht passieren soll. Dazu kommen Test-Umgebung zum Ausführen automatisierter Tests und vielleicht eine Staging Umgebung.
Symfony löst das sehr geschickt, mit .env Dateien und eigenen Ordnern innerhalb des Konfigurations-Ordners.
Bei Yii muss der Programmierer selber hand anlegen, um die richtige Konfiguration zu laden, es sind von Hause aus nur 3 (dev, prod, test) Umgebungen vorgsehen, danach wird es unübersichtlich.
Um auch Umlaute in ein Bit darzustellen, kann man den erweiterten ASCII Zeichensatz verwenden mit 255 Zeichen, der auch Umlaute enthält wie ä, ö, ü und ß.
Um dieses zu nutzen, kann man die folgende Funktion nutzen:
/** * @param string $string * @return string */ protected function asciiEncodeString(string $string): string { $sourceEncoding = mb_detect_encoding($string); $destinationEncoding = 'CP437'; // Extended ASCII - Codepage 437 $string = iconv($sourceEncoding, $destinationEncoding, $string); return $string; }
Adobe hat netter Weise die CS2 Versionen seiner Creative Suite online gestelllt.
Allerdings ist es nicht einfach daran zu kommen. Unter Windows 10 hatte ich keine Probleme mit den Programmen bis jetzt.
Download des Installers
Die Dateien können hier gedownloaded werden, die Keys stehen jeweils neben dem Downloader.