| @@ -1,198 +0,0 @@ | |||
| # matsen-tool-be | |||
| # Most needed commands | |||
| ddev exec bin/console make:migration | |||
| ddev exec bin/console doctrine:migration:migrate | |||
| ddev exec bin/console doctrine:fixtures:load | |||
| ddev exec php bin/console doctrine:fixtures:load --append (nur neue Datensaätz, nicht Datenbank löschen!) | |||
| ddev exec bin/console make:entity | |||
| ddev exec bin/console make:factory | |||
| ddev exec php bin/phpunit | |||
| ddev exec php bin/phpunit --filter=testPostToCreateNewUserPost | |||
| # Installation: | |||
| gehe ins root Verzeichnis des Projekts und für aus: ddev config | |||
| gehe den Installationsprozess durch (3x Enter drücken) | |||
| starte danach ddev mit: ddev start | |||
| projekt installieren: ddev composer install | |||
| # Troubleshooting: | |||
| Unable to listen on required ports, port 443 is already in use: | |||
| -> setze andere Ports in .ddev/config.yaml z.B. | |||
| router_http_port: 8080 | |||
| router_https_port: 8443 | |||
| - https://stackoverflow.com/questions/76507208/symfony-6-3-migration-causes-problems-with-stateless-authenticators-forcing-requ | |||
| Xdebug not working at all: | |||
| ddev logs -> xdebug problems? like: | |||
| "NOTICE: PHP message: Xdebug: [Step Debug] Could not connect to debugging client. Tried: 172.27.0.1:9003 (from HTTP_X_FORWARDED_FOR HTTP header), host.docker.internal:9003 (fallback through xdebug.client_host/xdebug.client_port)." | |||
| - https://stackoverflow.com/questions/31324981/how-to-access-host-port-from-docker-container/43541732#43541732 | |||
| -> create folder "php" in ".ddev"-folder, create a file "xdebug.ini" (here could be also a php.ini - settings made override ddev php.ini) and insert this line into xdebug.ini: xdebug.client_host=docker.for.mac.localhost | |||
| -> ddev restart afterwards | |||
| Xdebug: When one is not working, use the other. | |||
| xdebug.client_host=host.docker.internal | |||
| ;xdebug.client_host=docker.for.mac.localhost | |||
| telnet: Unable to connect to remote host: Connection refused | |||
| # PHPMyAdmin installieren: | |||
| ddev get ddev/ddev-phpmyadmin | |||
| ddev restart | |||
| # Symfony Konsolenbefehle mit Ddev ausführen, z.B.: | |||
| ddev exec php bin/console make:migration | |||
| # Ddev Commands: | |||
| ddev describe - zeigt Urls und installierte Komponenten | |||
| # Xdebug | |||
| ddev ssh -> export XDEBUG_CONFIG="idekey=PHPSTORM" | |||
| - Cli Skript xebug läuft nicht korrekt: | |||
| - ddev ssh | |||
| - in Terminal: PHP_IDE_CONFIG="serverName=matsen-tool-be.ddev.site" | |||
| - Servername ist hier konfiguriert:  | |||
| ------------------------- | |||
| # Symfony: | |||
| # User with Maker Bundle: | |||
| - https://symfonycasts.com/screencast/api-platform/user-entity | |||
| ddev composer require maker-bundle --dev | |||
| ddev exec bin/console make:user -> erstellt user entity und schreibt in die security.yaml | |||
| # Entity erzeugen oder erweitern: | |||
| ddev exec bin/console make:entity | |||
| # Foundry fixtures: | |||
| ddev exec composer require foundry orm-fixtures --dev | |||
| ddev exec bin/console make:factory | |||
| ddev exec bin/console doctrine:fixtures:load | |||
| # Doctrine: | |||
| ddev exec bin/console doctrine:database:drop --force | |||
| ddev exec bin/console doctrine:database:create | |||
| - Testdatenbank anlegen: | |||
| ddev exec bin/console doctrine:database:create --env=test | |||
| ddev exec bin/console doctrine:schema:create --env=test | |||
| - Migrations: | |||
| ddev exec bin/console make:migration | |||
| ddev exec bin/console doctrine:migration:migrate | |||
| # Profiler | |||
| ddev composer require debug | |||
| # Php Unit | |||
| - https://symfony.com/doc/current/testing.html#configuring-a-database-for-tests | |||
| Setup: | |||
| # .env.test.local -> "mysql://root:root@db:3306/db?serverVersion=10.4.30-MariaDB-1:10.4.30+maria~ubu2004-log - mariadb.org binary distribution" | |||
| -> this creates a db named db_test (it takes the name of the main database "db" and adds "_test" to its name) | |||
| # Create db and create schema | |||
| php bin/console --env=test doctrine:database:create | |||
| php bin/console --env=test doctrine:schema:create | |||
| - https://symfonycasts.com/screencast/api-platform-security/test-setup | |||
| ddev composer require test -> testpack incl. phpunit | |||
| ddev composer require zenstruck/browser --dev -> browser test package to imporve testing | |||
| -> add extension to phpunit.xml.dist | |||
| <extensions> | |||
| <extension class="Zenstruck\Browser\Test\BrowserExtension" /> | |||
| </extensions> | |||
| ddev exec php bin/phpunit --filter=testPostToCreateNewUserPost | |||
| ddev composer require --dev mtdowling/jmespath.php | |||
| # Api Platform | |||
| - https://api-platform.com/docs/core/dto/ | |||
| - https://api-platform.com/docs/distribution/ | |||
| - https://api-platform.com/docs/core/extending/ | |||
| Installation: ddev composer require api | |||
| Micro Mapper: ddev composer require symfonycasts/micro-mapper | |||
| Vich Uploader bundle: ddev composer require vich/uploader-bundle | |||
| Foundry: composer require --dev foundry orm-fixtures | |||
| Ausführen, um openApi.yaml und openApi.json zu generieren: | |||
| - cd export | |||
| - php exportApi.php | |||
| openApi.yaml und openApi.json in Frontend-Projekt (root) kopieren | |||
| # Lexik JWT | |||
| - https://symfony.com/bundles/LexikJWTAuthenticationBundle/current/index.html | |||
| - Nur bei NEU Installation: | |||
| - php bin/console lexik:jwt:generate-keypair | |||
| - Open Api export: | |||
| ddev exec bin/console api:openapi:export --yaml >> openapi.yaml | |||
| - File Uploading: | |||
| https://api-platform.com/docs/core/file-upload/ | |||
| https://github.com/dustin10/VichUploaderBundle/blob/master/docs/index.md | |||
| # List Routes and Service Tags | |||
| - ddev exec bin/console debug:router | |||
| - ddev exec bin/console debug:container | |||
| # Constraints | |||
| - https://symfony.com/doc/current/validation.html | |||
| # LIVE DEPLOYMENT | |||
| - URL is https://matsen.spawntree.de | |||
| - Clear DB: https://spawntree.de:8443 | |||
| - Run shell script in: /var/www/vhosts/spawntree.de/matsen-api.spawntree.de/httpdocs | |||
| - (If JWT PEM files don't exist in /config/jwt: bin/console lexik:jwt:generate-keypair) | |||
| - Frontend: ng build --configuration=development --aot | |||
| - Delete all files in /matsen.spawntree.de/matsen-tool/browser via FTP | |||
| - Copy content of /matsen-tool/dist/matsen-tool/browser into /matsen.spawntree.de/matsen-tool/browser | |||
| # Gecko Firefox driver | |||
| - WICHTIG: chmod +x .ddev/post-start.sh (die Datei muss ausführbar sein) | |||
| - beim live deployment muss der driver per Linux installiert werden | |||
| - manuell mit ddev ssh: | |||
| sudo apt-get install -y firefox-esr | |||
| wget -q https://github.com/mozilla/geckodriver/releases/download/v$GECKODRIVER_VERSION/geckodriver-v$GECKODRIVER_VERSION-linux64.tar.gz \ | |||
| && tar -xzf geckodriver-v$GECKODRIVER_VERSION-linux64.tar.gz -C /usr/local/bin \ | |||
| && rm geckodriver-v$GECKODRIVER_VERSION-linux64.tar.gz \ | |||
| && chmod +x /usr/local/bin/geckodriver | |||
| # Nord vpn | |||
| - https://support.nordvpn.com/hc/de/articles/20398283005457-Installation-und-Gebrauch-von-NordVPN-unter-RHEL-und-CentOS-Linux | |||
| # apache 403 beim sortieren nach "profile" | |||
| Ja, wenn Sie Plesk verwenden, gibt es tatsächlich Möglichkeiten, Whitelist-Regeln für ModSecurity einzurichten. Hier sind die Schritte, die Sie in Plesk unternehmen können: | |||
| Öffnen Sie das Plesk Control Panel. | |||
| Navigieren Sie zu "Websites & Domains" und wählen Sie die betroffene Domain aus. | |||
| Suchen Sie nach "Apache & nginx Settings" oder "Web-Server-Einstellungen" (je nach Ihrer Plesk-Version). | |||
| Scrollen Sie nach unten zum Abschnitt "Additional Apache directives" oder "Zusätzliche Apache-Direktiven". | |||
| Hier können Sie benutzerdefinierte Apache-Konfigurationen hinzufügen, einschließlich ModSecurity-Regeln. | |||
| Fügen Sie eine Whitelist-Regel wie folgt hinzu: | |||
| <IfModule mod_security2.c> | |||
| SecRule REQUEST_URI "^/api/game_accounts" \ | |||
| "id:1000,\ | |||
| phase:1,\ | |||
| pass,\ | |||
| nolog,\ | |||
| ctl:ruleRemoveById=210580" | |||
| </IfModule> | |||