hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...

Symfony Cache mit Datenbank

Die Symfony Cache Komponente besitzt eine große Zahl von möglichen Adaptern zum Cachen von Informationen.

Zum Cachen in der Datenbank kann man den folgenden PdoAdapter für Doctrine verwenden und folgender Maßen konfigurieren:

#config/packages/framework.yaml
framework:
    cache:
        pools:
            app:
                adapter: AppCache
#config/services.yaml
AppCache:
  class: Symfony\Component\Cache\Adapter\PdoAdapter
  arguments:
    - '@doctrine.dbal.default_connection'

Damit erzeugt Symfony eine Datenbank Tabelle innerhalb der default Datenbank Verbindung für die Cache Einträge.

Dies hat besonders Performancegewinne und ist übersichtlicher im Vergleich zu  der Default-Filesystem-Variante. Besonders ist dies für eine Docker Umgebung zu empfehlen, weil das langsame Dateisystem nicht verwnedet werden muss.

hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...

Symfony 5 Exception “The annotation was never imported.”

Ein Grund der Fehlermeldung kann sein, dass es tatsächlich eine Annotation ist, die ungültig ist, sich aber im vendor Code befindet. Dann sollte man diese ignorieren.

Fehlermeldung:

Doctrine\Common\Annotations\AnnotationException : [Semantical Error] The annotation "@suppress" in method Monolog\Formatter\LineFormatter::normalizeException() was never imported. Did you maybe forget to add a "use" statement for this annotation?

Sollte man die Annotation ignorieren mit dem statischen Aufruf von in der config/bootstrap.php:

AnnotationReader::addGlobalIgnoredName('suppress');

 

hard mistakes - please write a commentsome mistakesokgoodvery good 300 of 500 (1 Users)
Loading ... Loading ...

Protractor Konfiguration Headless Chrome und Firefox

Um Selenium Tests in Firefox und Chrome im Headless Modus auszuführen mit Protractor, kann man folgende Konfiguraton verwenden in der protractor.conf:

exports.config = {
....
  multiCapabilities: [
    {
      browserName: 'chrome',
      chromeOptions: {
        'args': ['--headless']
      },
    },
    {
      browserName: 'firefox',
      firefoxOptions: {
        args: ['--headless']
      },
      'moz:firefoxOptions': {
        args: ['--headless']
      }
    },
  ],
...
};
hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...

Jenkins mit selbst signiertem SSL Zertifikat absichern

Damit Jenkins unter Linux nur noch über HTTPS erreichbar ist, muss man sich zuerst ein SSL Zertifikat erzeugen am besten im Ordner:

mkdir /var/lib/jenkins/ssl_cert/
cd /var/lib/jenkins/ssl_cert/

openssl req -newkey rsa:2048 -x509 -keyout cakey.pem -out cacert.pem -days 3650

Dann kann man dieses Zertifikat umwandeln für den Java Key Store:

openssl pkcs12 -export -in cacert.pem -inkey cakey.pem -out identity.p12 -name jenkins
keytool -importkeystore -destkeystore identity.jks  -srckeystore identity.p12 -srcstoretype PKCS12

und in den Java Key Store importieren:

keytool -import -file cacert.pem -keystore trust.jks

Am Ende muss nur noch die Config angepasst werden:

sudo vi /etc/sysconfig/jenkins

mit den Werten:

JENKINS_PORT="-1"

JENKINS_HTTPS_PORT="8443"

JENKINS_HTTPS_KEYSTORE="/var/lib/jenkins/ssl_cert/identity.jks"

JENKINS_HTTPS_KEYSTORE_PASSWORD="YOUR_PASSWORD_HERE"

JENKINS_HTTPS_LISTEN_ADDRESS="0.0.0.0"

Und der Service neu gestartet werden:

chown -R jenkins: /var/lib/jenkins/ssl_cert/*
chmod 600 /var/lib/jenkins/ssl_cert/*

sudo systemctl restart jenkins
hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...
hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...

PHP eigene Metriken in AWS Cloudwatch erstellen

Um in CloudWatch eigene Metriken anzulegen, um z.B. Alarm auszulösen und Monitoring zu betreiben mit den Daten der Applikation, kann man mit dem aws-php-sdk den folgenden Code verwenden:

 $client = new CloudWatchClient([
        'region' => 'eu-central-1',
        'version' => '2010-08-01',
        'credentials' => [
            'key'    => 'xxx',
            'secret' => 'xxx
        ],
    ]);
}
$result = $this->client->putMetricData(array(

    'Namespace' => 'MyProject',
    'MetricData' => array(
        array(
            'MetricName' => 'MyMetric,
            'Timestamp' => time(),
            'Value' => 1,
            'Unit' => 'Count',
            'Dimensions' => array(
                array(
                    'Name' => 'Environment',
                    'Value' => 'test',
                ),
            ),
        )
    )
));
hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...
hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...

Docker Shell Alias verwenden unter Linux

Um auf der Linux Shell die gewohnten Aliase wie ll für ls -lh zu verwenden, muss man folgenden Trick verwenden:

Da das Login über sh keine Linux Login Shell ist, werden die Alias Definitionen in /etc/profile.d nicht geladen beim Login.

Lösung:

Es reicht, sich mit sh –login im Container anzumleden, dann stehen die Alias Definitionen zur Verfügung.

Veröffentlicht unter Docker
hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...

DockerFile PHP mit XDebug und Amazon Linux 2

Ein DockerFile für eine PHP 7.2. Umgebung mit XDebug für eine Symfony 4 Umgebung unter Amazon Linux 2:

FROM amazonlinux:2.0.20190823.1

RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# install php
RUN amazon-linux-extras install -y php7.2
RUN yum install -y php-devel.x86_64 php-xml.x86_64 php-pecl-zip.x86_64  php-intl.x86_64

#install xdebug
RUN yum install -y gcc make
RUN yum install -y php-pear.noarch
RUN pecl install xdebug
RUN echo 'zend_extension=/usr/lib64/php/modules/xdebug.so' >> /etc/php.ini
hard mistakes - please write a commentsome mistakesokgoodvery good
Loading ... Loading ...

Docker Xdebug remote_host setzen in Toolbox für PHPStorm

Um mit Xdebug und PHPStorm im Docker Container debuggen zu können, aber die Fehlermeldung bekommt:

Connection was not established. Probably 'xdebug.remote_host=docker.for.win.localhost' is incorrect

liegt das daran, dass Docker in der Toolbox Variante für Windows den Platzhalter docker.for.win.localhost nicht befüllt. Es muss also die IP des PHPStorm Rechners manuell gesetzt werden.

Dazu setzt man manuell den Wert von xdebug.remote_host auf 192.168.99.1 (die IP Docker für den Host setzt, kann varieren) bei den CLI Interpreter Optionen:

 

Veröffentlicht unter Docker