From 599bdb3d8dcce85f603b951a43f98c36063cf747 Mon Sep 17 00:00:00 2001 From: Ryszard <212223@users.noreply.github.com> Date: Mon, 21 Mar 2022 14:26:29 +0100 Subject: [PATCH 01/23] Conversion to docker-compose --- README.md | 1523 ++++++++++++- .../.elasticsearch-http-requests}/Check.http | 0 .../Document/Create_or_Update.http | 0 .../Index/Bulk.http | 0 .../Index/Count.http | 0 .../Index/Create.http | 0 .../Index/Delete.http | 0 .../Index/Mappings.http | 0 .../Search/All_structure.http | 0 .../Search/Functions.http | 0 .../Search/Functions_colors.http | 0 .../Search/Phrase.http | 0 .../.elasticsearch-http-requests/init.sh | 12 + .../.elasticsearch-http-requests/request.sh | 84 + src/Controller/.gitignore => app/default/.env | 0 .gitignore => app/default/.gitignore | 0 app/default/LICENSE | 21 + {bin => app/default/bin}/console | 0 composer.json => app/default/composer.json | 3 +- composer.lock => app/default/composer.lock | 241 +-- {config => app/default/config}/bundles.php | 0 .../default/config}/packages/cache.yaml | 0 .../default/config}/packages/framework.yaml | 0 .../default/config}/packages/routing.yaml | 0 .../packages/sensio_framework_extra.yaml | 0 .../default/config}/packages/twig.yaml | 0 {config => app/default/config}/preload.php | 0 {config => app/default/config}/routes.yaml | 0 .../default/config}/routes/annotations.yaml | 0 .../default/config}/routes/framework.yaml | 0 {config => app/default/config}/services.yaml | 0 insomnia.json => app/default/insomnia.json | 0 .../default/public}/bootstrap.bundle.min.js | 0 .../default/public}/bootstrap.min.css | 0 {public => app/default/public}/favicon.ico | Bin {public => app/default/public}/favicon.png | Bin .../images/cars/aston-martin-db7-gt.jpg | Bin .../images/cars/aston-martin-db7-vantage.jpg | Bin .../images/cars/aston-martin-db7-zagato.jpg | Bin .../images/cars/bmw-i8-roadster-2019.jpg | Bin .../public}/images/cars/bmw-i8-roadster.jpg | Bin .../public}/images/cars/dodge-challenger.jpg | Bin .../public}/images/cars/dodge-viper-gts.jpg | Bin .../cars/dodge-viper-srt10-roadster.jpg | Bin .../images/cars/ferrari-250-gt-california.jpg | Bin .../public}/images/cars/ferrari-296-gtb.jpg | Bin .../images/cars/ferrari-550-maranello.jpg | Bin .../public}/images/cars/ferrari-f8-spider.jpg | Bin .../public}/images/cars/ferrari-roma.jpg | Bin .../public}/images/cars/ferrari-sf90.jpg | Bin .../images/cars/ferrari-testarossa.jpg | Bin .../default/public}/images/cars/ford-gt.jpg | Bin .../images/cars/ford-mustang-boss-302.jpg | Bin .../public}/images/cars/ford-mustang-rtr.jpg | Bin .../images/cars/lamborghini-aventador.jpg | Bin .../images/cars/lamborghini-countach.jpg | Bin .../images/cars/lamborghini-diablo.jpg | Bin .../images/cars/lamborghini-huracan.jpg | Bin .../cars/lamborghini-murcielago-lp670.jpg | Bin .../public}/images/cars/lamborghini-sc20.jpg | Bin .../public}/images/cars/mazda-mx5-miata.jpg | Bin .../public}/images/cars/mazda-mx5-z-sport.jpg | Bin .../cars/mazda-rx-vision-gt3-concept.jpg | Bin .../public}/images/cars/mclaren-570s.jpg | Bin .../public}/images/cars/mclaren-720s.jpg | Bin .../public}/images/cars/mclaren-f1.jpg | Bin .../cars/mercedes-benz-amg-gt-coupe.jpg | Bin .../public}/images/cars/mercedes-benz-gt.jpg | Bin .../cars/mercedes-benz-sls-amg-coupe.jpg | Bin ...mercedes-mclaren-slr-722-stirling-moss.jpg | Bin .../images/cars/mitsubishi-lancer-evo-x.jpg | Bin .../public}/images/cars/porshe-911-gts.jpg | Bin .../public}/images/cars/porshe-911-swb.jpg | Bin .../images/cars/porshe-911-turbo-s.jpg | Bin .../public}/images/cars/porshe-macan.jpg | Bin {public => app/default/public}/index.php | 0 {public => app/default/public}/jquery.min.js | 0 {public => app/default/public}/main.css | 0 .../default/public}/select2.min.css | 0 {public => app/default/public}/select2.min.js | 0 app/default/src/Controller/.gitignore | 0 .../src}/Controller/DefaultController.php | 9 + .../ParamConverter/AbstractParamConverter.php | 0 .../ParamConverter/CriteriaParamConverter.php | 0 .../ParamConverter/PageParamConverter.php | 2 +- .../Elasticsearch/Hydrator/CarHydrator.php | 0 .../Hydrator/CarHydratorInterface.php | 0 .../Elasticsearch/Hydrator/CarsHydrator.php | 0 .../Hydrator/CarsHydratorInterface.php | 0 .../Repository/CarRepository.php | 12 +- .../src}/Elasticsearch/Service/ApiClient.php | 5 +- .../Service/ApiClientInterface.php | 0 .../ValueObject/Criteria/ColorsFilter.php | 0 .../ValueObject/Criteria/Criteria.php | 5 + .../ValueObject/Criteria/Criterion.php | 0 .../ValueObject/Criteria/PhraseFilter.php | 0 .../ValueObject/Criteria/ServicesFilter.php | 0 .../Factor/ColorRelevanceFactor.php | 0 .../ValueObject/Factor/DodgePromoFactor.php | 0 .../ValueObject/Factor/FactorInterface.php | 0 .../ValueObject/Factor/Factors.php | 0 .../ValueObject/Factor/RawScoreFactor.php | 0 .../ValueObject/Factor/Weight.php | 0 .../ValueObject/Factor/WeightFactor.php | 0 .../src}/Elasticsearch/ValueObject/Query.php | 0 .../Elasticsearch/ValueObject/Response.php | 0 .../src}/Elasticsearch/ValueObject/Result.php | 0 .../Elasticsearch/ValueObject/Results.php | 0 .../ValueObject/Sorter/DefaultSorter.php | 0 .../Sorter/FactorSorterInterface.php | 0 .../ValueObject/Sorter/RecommendedSorter.php | 0 .../ValueObject/Sorter/SorterInterface.php | 0 .../default/src}/Enum/AbstractEnum.php | 0 {src => app/default/src}/Enum/Color.php | 0 {src => app/default/src}/Enum/Index.php | 0 .../PaginationEventSubscriber.php | 0 {src => app/default/src}/Kernel.php | 0 .../AdditionalServiceRepositoryInterface.php | 0 .../Repository/CarRepositoryInterface.php | 0 .../InMemoryAdditionalServiceRepository.php | 0 .../src}/Twig/Extension/AppExtension.php | 0 .../src}/ValueObject/AdditionalService.php | 0 .../src}/ValueObject/AdditionalServices.php | 0 {src => app/default/src}/ValueObject/Car.php | 0 {src => app/default/src}/ValueObject/Cars.php | 0 .../default/src}/ValueObject/Colors.php | 0 .../src}/ValueObject/CriteriaInterface.php | 0 .../src}/ValueObject/CriterionInterface.php | 0 {src => app/default/src}/ValueObject/Id.php | 0 .../default/src}/ValueObject/Model.php | 0 {src => app/default/src}/ValueObject/Name.php | 0 {src => app/default/src}/ValueObject/Page.php | 0 .../default/src}/ValueObject/PagesTotal.php | 4 +- .../ValueObject/PagesTotalAwareInterface.php | 0 .../default/src}/ValueObject/Pagination.php | 0 .../default/src}/ValueObject/Phrase.php | 0 .../default/src}/ValueObject/Picture.php | 0 .../default/src}/ValueObject/Producer.php | 0 .../src}/ValueObject/ProductionYear.php | 0 .../src}/ValueObject/ResultsPerPage.php | 0 .../ValueObject/SearchResponseInterface.php | 0 .../ValueObject/SearchResultsInterface.php | 0 symfony.lock => app/default/symfony.lock | 0 .../default/templates}/base.html.twig | 0 .../templates}/search/_includes/car.html.twig | 0 .../search/_includes/filters.html.twig | 0 .../search/_includes/pagination.html.twig | 0 .../search/_includes/services.html.twig | 0 .../templates}/search/emptyList.html.twig | 0 .../default/templates}/search/list.html.twig | 0 docker/service/.env | 20 + docker/service/.gitignore | 1 + docker/service/README.md | 335 +++ docker/service/_limit-memory.yaml | 7 + docker/service/_network.yaml | 52 + docker/service/_profiles.yaml | 52 + docker/service/_restart-policy.yaml | 16 + docker/service/_service-dependency.yaml | 21 + docker/service/dirlist.txt | 107 + docker/service/docker-compose.yaml | 9 + docker/service/elasticsearch-v7.yaml | 111 + .../elasticsearch-v7/image/.dockerignore | 2 + .../service/elasticsearch-v7/image/.env.dev | 10 + .../service/elasticsearch-v7/image/Dockerfile | 14 + .../config/elasticsearch-plugins.example.yml | 27 + .../config/elasticsearch.keystore | Bin 0 -> 199 bytes .../elasticsearch/config/elasticsearch.yml | 2 + .../share/elasticsearch/config/jvm.options | 96 + .../config/log4j2.file.properties | 282 +++ .../elasticsearch/config/log4j2.properties | 159 ++ .../elasticsearch/config/role_mapping.yml | 14 + .../usr/share/elasticsearch/config/roles.yml | 3 + .../usr/share/elasticsearch/config/users | 0 .../share/elasticsearch/config/users_roles | 0 docker/service/nginx-v1.yaml | 117 + docker/service/nginx-v1/image/.dockerignore | 2 + docker/service/nginx-v1/image/.env.dev | 0 docker/service/nginx-v1/image/.gitignore | 2 + docker/service/nginx-v1/image/Dockerfile | 16 + .../image/files/etc/nginx/conf.d/default.conf | 35 + .../image/files/etc/nginx/fastcgi_params | 25 + .../nginx-v1/image/files/etc/nginx/koi-utf | 109 + .../nginx-v1/image/files/etc/nginx/koi-win | 103 + .../nginx-v1/image/files/etc/nginx/mime.types | 97 + .../nginx-v1/image/files/etc/nginx/modules | 1 + .../nginx-v1/image/files/etc/nginx/nginx.conf | 36 + .../image/files/etc/nginx/scgi_params | 17 + .../image/files/etc/nginx/uwsgi_params | 17 + .../nginx-v1/image/files/etc/nginx/win-utf | 126 ++ docker/service/nginx-v1/image/files/site.conf | 7 + docker/service/php-composer-v2.yaml | 47 + docker/service/php-composer-v2/.env.dev | 0 .../service/php-composer-v2/image/Dockerfile | 21 + docker/service/php-fpm-v8.yaml | 29 + docker/service/php-fpm-v8/image/.dockerignore | 2 + docker/service/php-fpm-v8/image/.env.dev | 2 + docker/service/php-fpm-v8/image/Dockerfile | 2 + .../etc/php/conf.d/docker-php-ext-bcmath.ini | 1 + .../php/conf.d/docker-php-ext-calendar.ini | 1 + .../etc/php/conf.d/docker-php-ext-dba.ini | 1 + .../etc/php/conf.d/docker-php-ext-exif.ini | 1 + .../etc/php/conf.d/docker-php-ext-gd.ini | 1 + .../etc/php/conf.d/docker-php-ext-gettext.ini | 1 + .../etc/php/conf.d/docker-php-ext-imagick.ini | 1 + .../etc/php/conf.d/docker-php-ext-mongodb.ini | 1 + .../etc/php/conf.d/docker-php-ext-mysqli.ini | 1 + .../etc/php/conf.d/docker-php-ext-opcache.ini | 1 + .../etc/php/conf.d/docker-php-ext-pcntl.ini | 1 + .../php/conf.d/docker-php-ext-pdo_mysql.ini | 1 + .../php/conf.d/docker-php-ext-pdo_pgsql.ini | 1 + .../etc/php/conf.d/docker-php-ext-pgsql.ini | 1 + .../etc/php/conf.d/docker-php-ext-pspell.ini | 1 + .../etc/php/conf.d/docker-php-ext-shmop.ini | 1 + .../etc/php/conf.d/docker-php-ext-soap.ini | 1 + .../etc/php/conf.d/docker-php-ext-sockets.ini | 1 + .../etc/php/conf.d/docker-php-ext-sodium.ini | 1 + .../etc/php/conf.d/docker-php-ext-svm.ini | 1 + .../etc/php/conf.d/docker-php-ext-sysvmsg.ini | 1 + .../etc/php/conf.d/docker-php-ext-sysvsem.ini | 1 + .../etc/php/conf.d/docker-php-ext-sysvshm.ini | 1 + .../etc/php/conf.d/docker-php-ext-tidy.ini | 1 + .../etc/php/conf.d/docker-php-ext-trader.ini | 1 + .../etc/php/conf.d/docker-php-ext-wddx.ini | 1 + .../etc/php/conf.d/docker-php-ext-xmlrpc.ini | 1 + .../etc/php/conf.d/docker-php-ext-xsl.ini | 1 + .../etc/php/conf.d/docker-php-ext-zip.ini | 1 + .../files/usr/local/etc/php/conf.d/php.ini | 3 + .../usr/local/etc/php/php.ini-development | 1916 ++++++++++++++++ .../usr/local/etc/php/php.ini-production | 1923 +++++++++++++++++ docker/service/setup.sh | 90 + 230 files changed, 7892 insertions(+), 143 deletions(-) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Check.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Document/Create_or_Update.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Index/Bulk.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Index/Count.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Index/Create.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Index/Delete.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Index/Mappings.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Search/All_structure.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Search/Functions.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Search/Functions_colors.http (100%) rename {.elasticsearch-http-requests => app/default/.elasticsearch-http-requests}/Search/Phrase.http (100%) create mode 100755 app/default/.elasticsearch-http-requests/init.sh create mode 100755 app/default/.elasticsearch-http-requests/request.sh rename src/Controller/.gitignore => app/default/.env (100%) rename .gitignore => app/default/.gitignore (100%) create mode 100644 app/default/LICENSE rename {bin => app/default/bin}/console (100%) mode change 100755 => 100644 rename composer.json => app/default/composer.json (96%) rename composer.lock => app/default/composer.lock (96%) rename {config => app/default/config}/bundles.php (100%) rename {config => app/default/config}/packages/cache.yaml (100%) rename {config => app/default/config}/packages/framework.yaml (100%) rename {config => app/default/config}/packages/routing.yaml (100%) rename {config => app/default/config}/packages/sensio_framework_extra.yaml (100%) rename {config => app/default/config}/packages/twig.yaml (100%) rename {config => app/default/config}/preload.php (100%) rename {config => app/default/config}/routes.yaml (100%) rename {config => app/default/config}/routes/annotations.yaml (100%) rename {config => app/default/config}/routes/framework.yaml (100%) rename {config => app/default/config}/services.yaml (100%) rename insomnia.json => app/default/insomnia.json (100%) rename {public => app/default/public}/bootstrap.bundle.min.js (100%) rename {public => app/default/public}/bootstrap.min.css (100%) rename {public => app/default/public}/favicon.ico (100%) rename {public => app/default/public}/favicon.png (100%) rename {public => app/default/public}/images/cars/aston-martin-db7-gt.jpg (100%) rename {public => app/default/public}/images/cars/aston-martin-db7-vantage.jpg (100%) rename {public => app/default/public}/images/cars/aston-martin-db7-zagato.jpg (100%) rename {public => app/default/public}/images/cars/bmw-i8-roadster-2019.jpg (100%) rename {public => app/default/public}/images/cars/bmw-i8-roadster.jpg (100%) rename {public => app/default/public}/images/cars/dodge-challenger.jpg (100%) rename {public => app/default/public}/images/cars/dodge-viper-gts.jpg (100%) rename {public => app/default/public}/images/cars/dodge-viper-srt10-roadster.jpg (100%) rename {public => app/default/public}/images/cars/ferrari-250-gt-california.jpg (100%) rename {public => app/default/public}/images/cars/ferrari-296-gtb.jpg (100%) rename {public => app/default/public}/images/cars/ferrari-550-maranello.jpg (100%) rename {public => app/default/public}/images/cars/ferrari-f8-spider.jpg (100%) rename {public => app/default/public}/images/cars/ferrari-roma.jpg (100%) rename {public => app/default/public}/images/cars/ferrari-sf90.jpg (100%) rename {public => app/default/public}/images/cars/ferrari-testarossa.jpg (100%) rename {public => app/default/public}/images/cars/ford-gt.jpg (100%) rename {public => app/default/public}/images/cars/ford-mustang-boss-302.jpg (100%) rename {public => app/default/public}/images/cars/ford-mustang-rtr.jpg (100%) rename {public => app/default/public}/images/cars/lamborghini-aventador.jpg (100%) rename {public => app/default/public}/images/cars/lamborghini-countach.jpg (100%) rename {public => app/default/public}/images/cars/lamborghini-diablo.jpg (100%) rename {public => app/default/public}/images/cars/lamborghini-huracan.jpg (100%) rename {public => app/default/public}/images/cars/lamborghini-murcielago-lp670.jpg (100%) rename {public => app/default/public}/images/cars/lamborghini-sc20.jpg (100%) rename {public => app/default/public}/images/cars/mazda-mx5-miata.jpg (100%) rename {public => app/default/public}/images/cars/mazda-mx5-z-sport.jpg (100%) rename {public => app/default/public}/images/cars/mazda-rx-vision-gt3-concept.jpg (100%) rename {public => app/default/public}/images/cars/mclaren-570s.jpg (100%) rename {public => app/default/public}/images/cars/mclaren-720s.jpg (100%) rename {public => app/default/public}/images/cars/mclaren-f1.jpg (100%) rename {public => app/default/public}/images/cars/mercedes-benz-amg-gt-coupe.jpg (100%) rename {public => app/default/public}/images/cars/mercedes-benz-gt.jpg (100%) rename {public => app/default/public}/images/cars/mercedes-benz-sls-amg-coupe.jpg (100%) rename {public => app/default/public}/images/cars/mercedes-mclaren-slr-722-stirling-moss.jpg (100%) rename {public => app/default/public}/images/cars/mitsubishi-lancer-evo-x.jpg (100%) rename {public => app/default/public}/images/cars/porshe-911-gts.jpg (100%) rename {public => app/default/public}/images/cars/porshe-911-swb.jpg (100%) rename {public => app/default/public}/images/cars/porshe-911-turbo-s.jpg (100%) rename {public => app/default/public}/images/cars/porshe-macan.jpg (100%) rename {public => app/default/public}/index.php (100%) rename {public => app/default/public}/jquery.min.js (100%) rename {public => app/default/public}/main.css (100%) rename {public => app/default/public}/select2.min.css (100%) rename {public => app/default/public}/select2.min.js (100%) create mode 100644 app/default/src/Controller/.gitignore rename {src => app/default/src}/Controller/DefaultController.php (92%) rename {src => app/default/src}/Controller/ParamConverter/AbstractParamConverter.php (100%) rename {src => app/default/src}/Controller/ParamConverter/CriteriaParamConverter.php (100%) rename {src => app/default/src}/Controller/ParamConverter/PageParamConverter.php (95%) rename {src => app/default/src}/Elasticsearch/Hydrator/CarHydrator.php (100%) rename {src => app/default/src}/Elasticsearch/Hydrator/CarHydratorInterface.php (100%) rename {src => app/default/src}/Elasticsearch/Hydrator/CarsHydrator.php (100%) rename {src => app/default/src}/Elasticsearch/Hydrator/CarsHydratorInterface.php (100%) rename {src => app/default/src}/Elasticsearch/Repository/CarRepository.php (73%) rename {src => app/default/src}/Elasticsearch/Service/ApiClient.php (86%) rename {src => app/default/src}/Elasticsearch/Service/ApiClientInterface.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Criteria/ColorsFilter.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Criteria/Criteria.php (91%) rename {src => app/default/src}/Elasticsearch/ValueObject/Criteria/Criterion.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Criteria/PhraseFilter.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Criteria/ServicesFilter.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Factor/ColorRelevanceFactor.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Factor/DodgePromoFactor.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Factor/FactorInterface.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Factor/Factors.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Factor/RawScoreFactor.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Factor/Weight.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Factor/WeightFactor.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Query.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Response.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Result.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Results.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Sorter/DefaultSorter.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Sorter/FactorSorterInterface.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Sorter/RecommendedSorter.php (100%) rename {src => app/default/src}/Elasticsearch/ValueObject/Sorter/SorterInterface.php (100%) rename {src => app/default/src}/Enum/AbstractEnum.php (100%) rename {src => app/default/src}/Enum/Color.php (100%) rename {src => app/default/src}/Enum/Index.php (100%) rename {src => app/default/src}/EventSubscriber/PaginationEventSubscriber.php (100%) rename {src => app/default/src}/Kernel.php (100%) rename {src => app/default/src}/Repository/AdditionalServiceRepositoryInterface.php (100%) rename {src => app/default/src}/Repository/CarRepositoryInterface.php (100%) rename {src => app/default/src}/Repository/InMemoryAdditionalServiceRepository.php (100%) rename {src => app/default/src}/Twig/Extension/AppExtension.php (100%) rename {src => app/default/src}/ValueObject/AdditionalService.php (100%) rename {src => app/default/src}/ValueObject/AdditionalServices.php (100%) rename {src => app/default/src}/ValueObject/Car.php (100%) rename {src => app/default/src}/ValueObject/Cars.php (100%) rename {src => app/default/src}/ValueObject/Colors.php (100%) rename {src => app/default/src}/ValueObject/CriteriaInterface.php (100%) rename {src => app/default/src}/ValueObject/CriterionInterface.php (100%) rename {src => app/default/src}/ValueObject/Id.php (100%) rename {src => app/default/src}/ValueObject/Model.php (100%) rename {src => app/default/src}/ValueObject/Name.php (100%) rename {src => app/default/src}/ValueObject/Page.php (100%) rename {src => app/default/src}/ValueObject/PagesTotal.php (89%) rename {src => app/default/src}/ValueObject/PagesTotalAwareInterface.php (100%) rename {src => app/default/src}/ValueObject/Pagination.php (100%) rename {src => app/default/src}/ValueObject/Phrase.php (100%) rename {src => app/default/src}/ValueObject/Picture.php (100%) rename {src => app/default/src}/ValueObject/Producer.php (100%) rename {src => app/default/src}/ValueObject/ProductionYear.php (100%) rename {src => app/default/src}/ValueObject/ResultsPerPage.php (100%) rename {src => app/default/src}/ValueObject/SearchResponseInterface.php (100%) rename {src => app/default/src}/ValueObject/SearchResultsInterface.php (100%) rename symfony.lock => app/default/symfony.lock (100%) rename {templates => app/default/templates}/base.html.twig (100%) rename {templates => app/default/templates}/search/_includes/car.html.twig (100%) rename {templates => app/default/templates}/search/_includes/filters.html.twig (100%) rename {templates => app/default/templates}/search/_includes/pagination.html.twig (100%) rename {templates => app/default/templates}/search/_includes/services.html.twig (100%) rename {templates => app/default/templates}/search/emptyList.html.twig (100%) rename {templates => app/default/templates}/search/list.html.twig (100%) create mode 100644 docker/service/.env create mode 100644 docker/service/.gitignore create mode 100644 docker/service/README.md create mode 100644 docker/service/_limit-memory.yaml create mode 100644 docker/service/_network.yaml create mode 100644 docker/service/_profiles.yaml create mode 100644 docker/service/_restart-policy.yaml create mode 100644 docker/service/_service-dependency.yaml create mode 100644 docker/service/dirlist.txt create mode 100644 docker/service/docker-compose.yaml create mode 100644 docker/service/elasticsearch-v7.yaml create mode 100644 docker/service/elasticsearch-v7/image/.dockerignore create mode 100644 docker/service/elasticsearch-v7/image/.env.dev create mode 100644 docker/service/elasticsearch-v7/image/Dockerfile create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.keystore create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.yml create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/jvm.options create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/log4j2.file.properties create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/log4j2.properties create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/role_mapping.yml create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/roles.yml create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/users create mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/users_roles create mode 100644 docker/service/nginx-v1.yaml create mode 100644 docker/service/nginx-v1/image/.dockerignore create mode 100644 docker/service/nginx-v1/image/.env.dev create mode 100644 docker/service/nginx-v1/image/.gitignore create mode 100644 docker/service/nginx-v1/image/Dockerfile create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/conf.d/default.conf create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/fastcgi_params create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/koi-utf create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/koi-win create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/mime.types create mode 120000 docker/service/nginx-v1/image/files/etc/nginx/modules create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/nginx.conf create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/scgi_params create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params create mode 100644 docker/service/nginx-v1/image/files/etc/nginx/win-utf create mode 100644 docker/service/nginx-v1/image/files/site.conf create mode 100644 docker/service/php-composer-v2.yaml create mode 100644 docker/service/php-composer-v2/.env.dev create mode 100644 docker/service/php-composer-v2/image/Dockerfile create mode 100644 docker/service/php-fpm-v8.yaml create mode 100644 docker/service/php-fpm-v8/image/.dockerignore create mode 100644 docker/service/php-fpm-v8/image/.env.dev create mode 100644 docker/service/php-fpm-v8/image/Dockerfile create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development create mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production create mode 100755 docker/service/setup.sh diff --git a/README.md b/README.md index a81888c..6e3cf73 100644 --- a/README.md +++ b/README.md @@ -9,30 +9,1509 @@ This is the simple educational project prepared to support my recent presentatio | :---: | :---: | :---: | :---: | | ![image](https://user-images.githubusercontent.com/36886649/135843518-9d4b2ec1-32dc-4226-a63c-b173d9b0706e.png) | ![image](https://user-images.githubusercontent.com/36886649/135534953-338af09d-d2c6-43ee-9407-137253cc4e13.png) | image | image +### Table of contents +- [Requirements](#Requirements) +- [Docker and Docker Compose upgrade](#Docker and Docker Compose upgrade) +- [Project setup](#Project setup) + - [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)) + - [Step by step setup](#Step by step setup) + - [Clone repository and create directories](#Clone repository and create directories) + - [Introduction to docker and docker-compose](#Introduction to docker and docker-compose) + - [Docker cleanup (optional)](#Docker cleanup (optional)) + - [Containers cleanup](#Containers cleanup) + - [Networks cleanup](#Networks cleanup) + - [Volumes cleanup](#Volumes cleanup) + - [Development time cleanup](#Development time cleanup) + - [Docker compose project setup](#Docker compose project setup) + - [Start services](#Start services) + - [Install composer dependencies](#Install composer dependencies) + - [Elasticsearch index creation and population](#Elasticsearch index creation and population) + - [Make scripts executable](#Make scripts executable) + - [Quick setup with init.sh](#Quick setup with init.sh) + - [Step by step setup with request.sh](#Step by step setup with request.sh) + - [Create index](#Create index) + - [Populate index with data](#Populate index with data) + - [Get count of items](#Get count of items) + - [Search](#Search) + - [Delete index](#Delete index) + - [Step by step other methods](#Step by step other methods) +- [How to play with it?](#How to play with it?) + - [Docker](#Docker) + - [Run all services](#Run all services) + - [Release the shell lock](#Release the shell lock) + - [Run all services without shell locking](#Run all services without shell locking) + - [Run a specific profile](#Run a specific profile) + - [Stop services](#Stop services) + - [Remove service containers](#Remove service containers) + - [Stop & remove service containers with their network](#Stop & remove service containers with their network) + - [Run, Stop, Remove](#Run, Stop, Remove) + - [Build images](#Build images) + - [Composer](#Composer) + - [Monitoring](#Monitoring) + - [Reinstallation](#Reinstallation) + - [Elasticsearch](#Elasticsearch) + - [Reinitialize](#Reinitialize) + - [Elasticsearch code](#Elasticsearch code) +- [Uninstallation](#Uninstallation) +- [Credits](#Credits) +- [Copyrights](#Copyrights) + [^TOC^](#Table of contents) ## Requirements -- PHP 8.0.9 -- Symfony CLI (https://symfony.com/download) -- Elasticsearch 7.16.0 running on `localhost:9200` -If you need to change the Elasticsearch host the application uses, [it's defined in the `ApiClient` class as a constant](https://github.com/lrynek/phpers-2021/blob/b4a8431ffd73c7417b00d6428ef491c91b45960f/src/Elasticsearch/Service/ApiClient.php#L14) (normally worth passing it from `.env` params file 😉 ) +- docker (tested on v20.10.13) +- docker-compose (tested on v2.3.3) +- linux (tested on Ubuntu 18.04) -In order to run the project, it is advisable to install an instance of latest stable version of Elasticsearch (it's 7.16.0 version at the moment of the presentation https://www.elastic.co/guide/en/elasticsearch/reference/7.16/index.html) + [^TOC^](#Table of contents) -## Setup -1. Create `cars` index in Elasticsearch ([`Index/Create` HTTP request](https://github.com/lrynek/phpers-2021/blob/main/.elasticsearch-http-requests/Index/Create.http)*) -2. Populate the index with sample cars data ([`Index/Bulk` HTTP request](https://github.com/lrynek/phpers-2021/blob/main/.elasticsearch-http-requests/Index/Bulk.http)*) -3. Go to project's root directory in the terminal -4. Start Symfony server `symfony server:start --no-tls` -5. Go to http://127.0.0.1:8000/ +## Docker and Docker Compose upgrade ->(*) - all HTTP requests can be executed either: ->- from within [PhpStorm's built-in REST HTTP client](https://www.jetbrains.com/help/phpstorm/http-client-in-product-code-editor.html) (samples in [.elasticsearch-http-requests directory](https://github.com/lrynek/phpers-2021/blob/main/.elasticsearch-http-requests)) ->- in [Insomnia REST HTTP client](https://insomnia.rest/) (import [insomnia.json file](https://github.com/lrynek/phpers-2021/blob/main/insomnia.json) with all the samples) +If you use the `docker` and/or `docker-compose` provided by your system vendor - you installed it on Ubuntu for eg. by `apt-get install docker` or `apt-get install docker-compose` then probably at least your installation of the `docker-compose` has to low version to run this application. + +You may need to also to update the version of the `docker` but for the Ubuntu it can be done by its GUI [Software Updater](https://en.wikipedia.org/wiki/Ubuntu_Software_Updater). + + + +You may check your current version of the `docker-compose` by running: + +```sh +docker-compose --version +``` + +If it is `1.x` then you need to upgrade it. + + + +**Ubuntu `docker-compose` most recent version installation**: + +Get info about available version to download: + +```sh +VERSION="$(curl --silent 'https://api.github.com/repos/docker/compose/releases/latest' | grep -Po '"tag_name": "\K.*\d')" && echo "Available version: $VERSION" +``` + +example terminal output: + +```sh +Available version: v2.3.3 +``` + +if you don't see any version here discontinue and do not follow other steps but try on your own to upgrade the `docker-compose`. + + + +Check if you have `docker-compose` installed and where, run: + +```sh +DESTINATION="$(find / -iname 'docker-compose' -type f -executable 2> /dev/null || true)" && +{ [ -z ${DESTINATION:-} ] && echo "DESTINATION must be set manually"; } || echo "DESTINATION is set to: $DESTINATION" +``` + +example terminal output: + +``` +/usr/bin/docker-compose +``` + +or "DESTINATION must be set manually" if you haven't installed `docker-compose`, then variable `DESTINATION` must be later set by you manually (continue with the steps as below). + + + +Uninstall current version only if DESTINATION is set: + +```sh +if [ -z "${DESTINATION:-}" ]; then + echo "No need for uninstalling, docker-compose not found" +else + echo "Uninstalling docker-compose" + sudo apt-get remove docker-compose +fi +``` + + + +in case you have seen: + +> DESTINATION must be set manually + +now is the time to set the destination to the path you wish, for example run: + +```sh +DESTINATION=/usr/bin/docker-compose +``` + + + +Download the `docker-compose` file and make it executable: + +```sh +echo "Downloading file to: ${DESTINATION:?}" +sudo curl -L "https://github.com/docker/compose/releases/download/${VERSION:?}/docker-compose-$(uname -s)-$(uname -m)" -o "${DESTINATION:?}" + +echo "Changing permissions to rx" +sudo chmod a=rx "${DESTINATION:?}" +``` + + + +Now you should be able to run `docker-compose` and check its new version, run: + +``` +docker-compose --version +``` + +example terminal output: + +``` +Docker Compose version v2.3.3 +``` + + + +If by this time you don't have installed new version of the `docker-compose` then you may install again the previous version of the `docker-compose` by running: + +```sh +sudo apt-get install docker-compose +``` + +from the official repository or search for some alternative methods of installing more recent version than the one you currently have. + + + +## Project setup + +This process is available in two flavors: + +1. Quick setup (if you can't wait to play) +2. Step by step approach (has additional explanations) + +Either way the end result that can be checked by the command: + +```sh +docker ps -a --format '{{.Image}} {{.Status}} {{.Ports}}' +``` + + should be: + +| IMAGE | STATUS | PORTS | +| ------------------------------ | ---------------------- | --------------------------------------------------- | +| carrental_nginx:1.17.8 | Up 9 minutes (healthy) | 0.0.0.0:9090->80/tcp, :::9090->80/tcp | +| carrental_composer:2.2.7 | Up 9 minutes | | +| carrental_php:8.1.3-fpm-buster | Up 9 minutes | 9000/tcp | +| carrental_elasticsearch:7.17.1 | Up 9 minutes (healthy) | 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp | + + [^TOC^](#Table of contents) + +## Quick setup (without Docker cleanup) + +1. Clone this repository: + + ```sh + git clone 'https://github.com/lrynek/painless-car-rental.git' + ``` + +3. Change directory: + + ```sh + cd painless-car-rental/docker/service + ``` + +3. Make `setup.sh` script executable && run `script.sh`: + + ```sh + sudo chmod ug+x ./setup.sh && ./setup.sh + ``` + + `./setup.sh` may ask you for the sudo password because it is required for changing permissions to the directories it creates. + + Feel free to check `./setup.sh` content if you are wary, run: + + ```sh + cat ./setup.sh + ``` + + + + **Do not** run `./setup.sh` as a sudo user. Wrong, do **not** do this: + + ```sh + sudo ./setup.sh + ``` + + because it needs to run as your regular user in order to use your user id and group id and make correct ownership of directories. + + + + If you see an error like this: + + > Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "...": dial unix /var/run/docker.sock: connect: permission denied + + This means that your user don't have permissions to run docker. + + Add your user to the `docker` group, run: + + ```sh + sudo usermod -a -G docker $USER + ``` + + Reload docker: + + ```sh + sudo systemctl restart docker + ``` + + Relog your user: + + ```sh + su - $USER + ``` + + Check if your user is added to the `docker` group, run: + + ```sh + groups + ``` + + example terminal output: + + ``` + test sudo docker + ``` + + Once you see `docker` group then run setup script again (without sudo): + + ```sh + ./setup.sh + ``` + + + + If you see an error: + + > * error listing credentials - err: exit status 1, out: `Error from list function in secretservice_linux.c likely due to error in secretservice library` + + Install these packages: + + ```sh + sudo apt-get install -y pass gnupg2 + ``` + + + +4. Open your browser and go to: + http://localhost:9090 + +4. Read the section [How to play with it?](#How to play with it?) + +5. Read about the project structure in [./docker/service/README.md](./docker/service/README.md) + + [^TOC^](#Table of contents) + +## Step by step setup + + + +#### Clone repository and create directories + +Clone this repository && change dir to it: + +```sh +git clone 'https://github.com/lrynek/painless-car-rental' && cd painless-car-rental/docker/service +``` + + + +Export your current shell user id and its group id, run: + +```sh +export uid=$(id -u) +export gid=$(id -g) +``` + +to have all `docker-compose` commands run as your current user and own files. + +If not then they will be run as user:group = 1000:1000 or 1000:0 for Elasticsearch. + + + +Own all directories and files: + +```sh +sudo chown -R $uid:$gid ../../ +``` + + + +Add execution for the current user and its group to init scripts + +```sh +sudo chmod -v ug+x,o-wx \ +../../app/default/.elasticsearch-http-requests/request.sh \ +../../app/default/.elasticsearch-http-requests/init.sh +``` + + + +If the docker attempts to mount at HOST a directory that does not exists it will be created by the docker demon. + +The problem is that directory will be created by docker that runs as a root therefore it will be owned by the user id = 0. + +That directory will be not accessible for all of the processes that run within containers with different user id. + +This application runs all containers with the same user id and group id as the user who started them. + +Because of that it is possible to freely use PHP composer for example without any sudo as well deleting all files without any sudo. + +Running containers as a regular user also enhances security and makes possible to use file access permissions different for user, group and others (which makes no difference if the user is root). + +In order to have access permissions from within containers that run processes as a regular user all of the directories that are used as host's mounting points must be created upfront and have desired permissions before running the docker commands. + + + +Create directory for Nginx: + +```sh +mkdir -p \ +./nginx-v1/image/files/var/log/nginx \ +./nginx-v1/image/files/usr/share/nginx/html/default && \ +\ +sudo chown -R $uid:$gid \ +./nginx-v1/image/files/var/log/nginx \ +./nginx-v1/image/files/usr/share/nginx/html/default && \ +\ +sudo chmod -v -R ug=rwX,o=rX \ +./nginx-v1/image/files/var/log/nginx \ +./nginx-v1/image/files/usr/share/nginx/html/default +``` + + + +Create directory for Elasticsearch + +```sh +mkdir -p \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/config \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/data \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/logs \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/plugins && \ +\ +sudo chown -R $uid:0 \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/config \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/data \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/logs \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/plugins && \ +\ +sudo chmod -v -R ug=rwX,o=rX \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/config \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/data \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/logs \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/plugins +``` + + + [^TOC^](#Table of contents) + +## Introduction to docker and docker-compose + +Feel free to use `--help` option before running any `docker` or `docker-compose` command to know what you are doing. + +run: + +```sh +docker --help +``` + +or: + +```sh +docker-compose --help +``` + +to get information about `docker` or `docker-compose` commands. + + + +You may get also use `--help` for the info related to a specific sub-command: + +```sh +docker ps --help +``` + +or: + +```sh +docker-compose ps --help +``` + + + +The command `docker` should work without any problem anywhere. + +However using `docker-compose` commands usually requires your shell to be inside the directory where the `docker-compose.yaml` file is ([./docker/service](./docker/service) for this project). + + + +Note that if you use sub commands then command-line options switches are available (and potentially different) for both commands for eg. `docker-compose` and its subcommand `up` + +```sh +docker-compose --help +``` + +will display different option switches than + +```sh +docker-compose up --help +``` + +keep that in mind and place option switches right after the command they relate to. for example: + +wrong: + +```sh +docker-compose up --build --profile dev +``` + +terminal output: + +> unknown flag: --profile + +subcommand `up` of the `docker-compose` doesn't have the `--profile` switch therefore `--build` option must be placed right after the `docker-compose` command. + +correct: + +```sh +docker-compose --profile dev up --build +``` + + [^TOC^](#Table of contents) + +## Docker cleanup (optional) + +Before running this application you may want to do the Docker cleanup and remove all of the containers and networks. + +Make sure you that you do not have any: + +- container +- docker network +- dandling images +- dandling build cache + +that is important (ie a container(s) handling an incoming traffic or saving a backup data) before proceeding with the steps as described in this section. + +**Running** the **Docker cleanup** section commands **is optional** but should give you a clean starting point and lack of confusion by having only the containers and networks that are related to this project. + + [^TOC^](#Table of contents) + +#### Containers cleanup + +To see if you have any containers created run: + +```sh +docker ps -a +``` + +During the development time you may stop all containers, run: + +```sh +docker-compose stop +``` + +Then you may remove all of them, run: + +```sh +docker-compose down +``` + +But then still some containers may be presented by `docker ps -a` command. If you want to remove all of the containers, even those that are not related to this application project then run: + +```sh +docker rm $(docker ps -aq) +``` + +In case of any complains from docker you may add flag `--force` but read and understand what the docker is complaining on and decide if you really want to force docker to remove all of the containers: + +```sh +docker rm --force $(docker ps -aq) +``` + +to see effect run again: + +```sh +docker ps -a +``` + +terminal output: + +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +``` + +should show no containers (despite their state: created, stopped, running, exited etc.) + + [^TOC^](#Table of contents) + +#### Networks cleanup + +You may also remove all of the docker networks that you don't need any longer including networks used by the docker containers you've just removed. + +to list all of the networks run: + +```sh +docker network ls +``` + +to remove all of the user networks: + +```sh +docker network rm $(docker network ls -q --filter 'type=custom') +``` + +run: + +```sh +docker network ls +``` + +terminal output: + +``` +NETWORK ID NAME DRIVER SCOPE +5d5de2f7ccd4 bridge bridge local +b75e841984e3 host host local +efff0416acdb none null local +``` + +should show that there are no other networks than the default ones. + + [^TOC^](#Table of contents) + +#### Volumes cleanup + +This application does not make any use of volumes (besides the ones that are defined by the images' Dockerfiles). Therefore it is not needed nor recommended to do a cleanup of them for the purpose of running this application. + + [^TOC^](#Table of contents) + +#### Development time cleanup + +At first time of application run it is not necessary to follow this instruction - you may skip it. + +Once you start working with this application and modify it, stop, remove, build and run again you may find that you have some containers or networks that are not used but still present when you issue the `docker ps -a` or `docker network ls` command. + +In such case, you may find useful + +Following steps from [Run, Stop, Remove](#Run, Stop, Remove) to run and do all cleanup after shutting the application down. + +or using this command: + +```sh +docker system prune +``` + +that outputs in the terminal: + +``` +WARNING! This will remove: + - all stopped containers + - all networks not used by at least one container + - all dangling images + - all dangling build cache + +Are you sure you want to continue? [y/N] +``` + +The terminal output is pretty self explanatory however if you would like to check the documentation: + +- [docker system prune](https://docs.docker.com/engine/reference/commandline/system_prune/) +- [docker container prune](https://docs.docker.com/engine/reference/commandline/container_prune/) +- [docker network prune](https://docs.docker.com/engine/reference/commandline/network_prune/) + + [^TOC^](#Table of contents) + +## Docker compose project setup + +#### Start services + +Do not run any of the commands with `sudo` unless it is clearly used. + +If you run these commands with `sudo` then the user id will be 0 as well as the group id. That will affect all of the containers that are built and used with the same user id and group id as the user that issued the commands to built and run them. + +You will have no benefit of running the commands with `sudo` but only will degrade security and make setting access permissions for user, group and others pointless. + +If you have any problems running docker commands without `sudo` then you need to add your user to the docker group, read about that in the [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)) section. + +run: + +```sh +docker-compose --profile dev up --detach --build --force-recreate +``` + +to get the `dev` profile running and wait approx 40 sec to finish. + +Once done and shell is accepting new commands, terminal output: + +``` +[+] Running 4/4 + ⠿ Container carrental-php-composer-v2-1 Started 2.2s + ⠿ Container carrental-elasticsearch-v7-1 Healthy 27.1s + ⠿ Container carrental-php-fpm-v8-1 Started 3.0s + ⠿ Container carrental-nginx-v1-1 Started 28.0s +``` + + + +run: + +```sh +docker ps -a --format '{{.Image}}\t{{.Status}}\t{{.Names}}' +``` + +to see all containers created, terminal output: + +``` +carrental_nginx:1.17.8 Up 7 seconds (healthy) carrental-nginx-v1-1 +carrental_php:2.2.7-composer Up 31 seconds carrental-php-composer-v2-1 +carrental_php:8.1.3-fpm-buster Up 30 seconds carrental-php-fpm-v8-1 +carrental_elasticsearch:7.17.1 Up 29 seconds (healthy) carrental-elasticsearch-v7-1 +``` + +with both `carrental-nginx-v1-1` and `carrental-elasticsearch-v7-1` status **(healthy)** + +for the full info you may run: + +```sh +docker ps -a +``` + + + +or open a new terminal window and run: + +```sh +docker stats +``` + +that should show containers and their resources usage. + +If you have opened the second terminal window, go back to the first terminal window and continue with instructions: + + [^TOC^](#Table of contents) + +#### Install composer dependencies + +```sh +docker-compose exec php-composer-v2 composer install +``` + +terminal output: + +``` +Generating optimized autoload files +38 packages you are using are looking for funding. +Use the `composer fund` command to find out more! + +Run composer recipes at any time to see the status of your Symfony recipes. + +Executing script cache:clear [OK] +Executing script assets:install public [OK] +``` + +At this moment the PHP application is set but there is still missing: + + [^TOC^](#Table of contents) + +## Elasticsearch index creation and population + +#### Make scripts executable + +**Make `request.sh` script executable** + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "chmod -cv ug+x /app/default/.elasticsearch-http-requests/request.sh" +``` + +terminal output: + +``` +... 0754 (rwxr-xr--) +``` + +so your user and his group are able to execute that script. + + [^TOC^](#Table of contents) + +**Make `init.sh` script executable** + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "chmod -cv ug+x /app/default/.elasticsearch-http-requests/init.sh" +``` + +terminal output: + +``` +... 0754 (rwxr-xr--) +``` + +so your user and his group are able to execute that script. + + [^TOC^](#Table of contents) + +**There are at least three ways to create Elasticsearch's index and populate it** + +- Quick setup with `init.sh` - just gets you the DB set. +- Step by step with `request.sh` - provides more fun. +- Step by step other methods (require manual edit of file(s)) + + [^TOC^](#Table of contents) + +#### Quick setup with init.sh + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/init.sh" +``` + +Terminal output: + +``` +... + +Performing cURL request: +curl -sSL -X GET 'http://elasticsearch-v7:9200/cars/_count' +{"count":39,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}} +Success. +Done! +``` + +That's it. Open your bowser and visit http://localhost:9090/ + + [^TOC^](#Table of contents) + +#### Step by step setup with request.sh + +##### Create index + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/request.sh /app/default/.elasticsearch-http-requests/Index/Create.http" +``` + +terminal output: + +``` +Performing cURL request: +... +{"acknowledged":true,"shards_acknowledged":true,"index":"cars"} +Success. +``` + + [^TOC^](#Table of contents) + +##### Populate index with data + +``` +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/request.sh /app/default/.elasticsearch-http-requests/Index/Bulk.http" +``` + +terminal output: + +``` +Performing cURL request: +curl -sSL -X POST -H 'Content-Type: application/x-ndjson' --data-raw \ +'{"update":{"_index":"cars","_type":"_doc","_id":"1"}} +{"doc":{"producer":"Ferrari","model":"SF90","picture":"ferrari-sf90.jpg","production_year":2021,"colors":["red"],"service_ids":[2,4,6,8]},"doc_as_upsert":true} + +... + +{"update":{"_index":"cars","_type":"_doc","_id":"39","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":38,"_primary_term":1,"status":201}}]} +Success. +``` + + [^TOC^](#Table of contents) + +##### Get count of items + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/request.sh /app/default/.elasticsearch-http-requests/Index/Count.http" +``` + +terminal output: + +``` +Performing cURL request: +curl -sSL -X GET 'http://elasticsearch-v7:9200/cars/_count' +{"count":39,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}} +Success. +``` + + [^TOC^](#Table of contents) + +##### Search + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/request.sh /app/default/.elasticsearch-http-requests/Search/Phrase.http" +``` + +terminal output: + +``` +Performing cURL request: +curl -sSL -X POST -H 'Content-Type: application/json' --data-raw \ +'{ + "_source": true, + "explain": false, + +... + +{"producer":"McLaren","model":"720S","picture":"mclaren-720s.jpg","production_year":2018,"colors":["blue","orange","black"],"service_ids":[7,2,1,3]}}]}} +Success. +``` + +That's it. Open your bowser and visit http://localhost:9090/ and + +Read the section [How to play with it?](#How to play with it?). + + [^TOC^](#Table of contents) + +##### Delete index + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/request.sh /app/default/.elasticsearch-http-requests/Index/Delete.http" +``` + +terminal output: + +``` +Performing cURL request: +curl -sSL -X DELETE 'http://elasticsearch-v7:9200/cars' +{"acknowledged":true} +Success. +``` + +Terminal may print `FAIL!` in case there was no index to delete (you deleted it before, or did not create). + + [^TOC^](#Table of contents) + +#### Step by step other methods + +All HTTP requests can be executed either: +- from within [PhpStorm's built-in REST HTTP client](https://www.jetbrains.com/help/phpstorm/http-client-in-product-code-editor.html) (samples in [.elasticsearch-http-requests directory](https://github.com/lrynek/phpers-2021/blob/main/.elasticsearch-http-requests)) +- in [Insomnia REST HTTP client](https://insomnia.rest/) (import [insomnia.json file](https://github.com/lrynek/phpers-2021/blob/main/insomnia.json) with all the samples) + +You may receive an error from Elastisearch that complains about nested document. If so then add this query + +``` +?include_type_name=true +``` + +to your `PUT` request like to this one: `app/default/.elasticsearch-http-requests/Index/Create.http` + +first line: + +```http +PUT http://localhost:9200/cars +``` + +should become: + +```http +PUT http://localhost:9200/cars?include_type_name=true +``` + +Keep in mind that using `localhost` as a request's host name is only valid if you make that request from your machine (not from the composer docker container). + +Therefore if you want to do them manually but from a docker container you have two choices: + +- Make requests from within the Elasticsearch container because there the `localhost` points to the Elasticsearch's service internal [loopback](https://en.wikipedia.org/wiki/Loopback). +- Change the `localhost` in the request to `elasticsearch-v7` or to the Elasticsearch container name available under `docker ps` or Elasticsearch service network alias that is available by using the command: `docker inspect elasticsearch-container-name` + + + +Open your bowser and visit http://localhost:9090/ + + [^TOC^](#Table of contents) ## How to play with it? + +Read about the project structure in [./docker/service/README.md](./docker/service/README.md) + +or continue with the content as below: + + [^TOC^](#Table of contents) + +## Docker + + [^TOC^](#Table of contents) + + + +Before doing any commands from this section make sure that your terminal's current directory is [./docker/service](./docker/service) + + + +#### Run all services + +To run this application you need to specify explicitly the profile you want to run. + +Profile `dev` runs all of the available services. To run the `dev` profile type: + +```sh +docker-compose --profile dev up +``` + +Note `--profile` option comes after the `docker-compose` command, not after the `up` subcommand. + +Your terminal shell will be locked and you will not be able to type into it but shell will print logs from any service container instead: + +``` +carrental-php-fpm-v8-1 | [17-Mar-2022 15:08:41] NOTICE: fpm is running, pid 1 +carrental-php-fpm-v8-1 | [17-Mar-2022 15:08:41] NOTICE: ready to handle connections +carrental-elasticsearch-v7-1 | {"type": "server", "timestamp": "2022-03-17T15:08:42,246Z" +``` + + [^TOC^](#Table of contents) + +##### Release the shell lock + +Use the keyboard combination of Ctrl+c. + +The Ctrl+c stops all of the containers created by `docker-compose` `up` + +``` +[+] Running 4/4 +⠿ Container carrental-nginx-v1-1 Stopped +⠿ Container carrental-elasticsearch-v7-1 Stopped +⠿ Container carrental-php-composer-v2-1 Stopped +⠿ Container carrental-php-fpm-v8-1 Stopped +``` + +and gives the shell control back to you. + + [^TOC^](#Table of contents) + +#### Run all services without shell locking + +If you don't want `docker-compose` `up` to hold your shell you may use `--detach` or `-d` flag. + +```sh +docker-compose --profile dev up --detach +``` + +after starting all of the services: + +``` +[+] Running 6/6 + ⠿ Network carrental_backend Created 0.1s + ⠿ Network carrental_frontend Created 0.1s + ⠿ Container carrental-php-fpm-v8-1 Started 1.9s + ⠿ Container carrental-php-composer-v2-1 Started 2.9s + ⠿ Container carrental-elasticsearch-v7-1 Healthy 24.4s + ⠿ Container carrental-nginx-v1-1 Started 25.6s +``` + +the shell will be released and waiting for your input. + +However the downside is that you will not have the terminal output view with information coming from the services like it was printed without using the `--detach` flag. + +To solve that issue you run this command preferably in a new terminal window: + +```sh +docker-compose logs +``` + +that will provide you the same output as running the `docker-compose` `up` that locks the shell. + +When running `docker-compose` `up` with `--detach` key combination Ctrl+c will not stop and remove containers with their networks. + +To address that issue check commands from sections as below: + +- [Stop services](#Stop services) (equivalent of Ctrl+c) +- [Remove service containers](#Remove service containers) +- [Stop & remove service containers with their network](#Stop & remove service containers with their network) + + [^TOC^](#Table of contents) + +#### Run a specific profile + +Services and profiles that they are assigned to are listed in [./docker/service/_profiles.yaml](./docker/service/_profiles.yaml) + + + +This section assumes you have created containers by steps from [Run all services](#Run all services) and stopped them as described in: [Release the shell lock](#Release the shell lock). + +If you want to run a specific profile you know that you need to specify `--profile` option followed by the profile name. + +Let's run `cli` profile that has only the `php-composer-v2` service assigned to it, run: + +```sh +docker-compose up --profile cli +``` + +terminal output: + +``` +[+] Running 1/0 + ⠿ Container carrental-php-composer-v2-1 Created 0.0s +Attaching to carrental-elasticsearch-v7-1, carrental-nginx-v1-1, carrental-php-composer-v2-1, carrental-php-fpm-v8-1 + +... +``` + +Did you notice something strange? + +If not then open a new terminal window Ctrl+Alt+t and run: + +```sh +docker ps -a +``` + +Check how many containers are running, it should be there just one: `carrental-php-com +poser-v2-1` because that's the only service the profile `cli` has. + +It looks that by running `docker-compose --profile cli` command we end up having all of the containers running from the `dev` profile. Why is that? + +Notice terminal output of the `docker-compose --profile cli`, especially the line at the beginning: + +> [+] Running 1/0 +> ⠿ Container carrental-php-composer-v2-1 Created 0.0s + +That looks as expected, we wanted to create just one service that the `cli` profile consist of but besides that also something else has happened: + +> Attaching to carrental-elasticsearch-v7-1, carrental-nginx-v1-1, carrental-php-composer-v2-1, carrental-php-fpm-v8-1 + +Use the keyboard combination of Ctrl+c to stop all of the containers. + +Terminal output: + +``` +[+] Running 4/4 +⠿ Container carrental-nginx-v1-1 Stopped +⠿ Container carrental-elasticsearch-v7-1 Stopped +⠿ Container carrental-php-composer-v2-1 Stopped +⠿ Container carrental-php-fpm-v8-1 Stopped +``` + +In order to have running only `carrental-php-composer-v2-1` [Remove service containers](#Remove service containers) + +and run profile `cli` again: + +```sh +docker-compose up --profile cli +``` + +Terminal output: + +``` +[+] Running 2/2 + ⠿ Network carrental_backend Created 0.1s + ⠿ Container carrental-php-composer-v2-1 Created 0.1s +Attaching to carrental-php-composer-v2-1 +``` + +As you can see there is only one container created and attaching is done to it. No other containers were attached because they did not exist (they were removed). + + + +If you want always to run a specific profile then edit the [.env](./docker/service/.env) file and put there: + +``` +COMPOSE_PROFILES=dev +``` + +so you should be able to issue only the: + +```sh +docker-compose up +``` + +command to run the `dev` profile. + +All profiles that you may choose from are defined in the [_profiles.yaml](./docker/service/_profiles.yaml) file in the same directory where the docker-compose.yaml file is [./docker/service](./docker/service) + +Documentation: [Using profiles with Compose](https://docs.docker.com/compose/profiles/) + + [^TOC^](#Table of contents) + +#### Stop services + +It makes sense to use it only if you plan to restart these containers later. + +If your intention is to remove services then use command provided in [Remove service containers](#Remove service containers) that may stop containers as well before removing them or use [Stop & remove service containers with their network](#Stop & remove service containers with their network) that is able to do the same plus networks removal. + +If you want to only stop docker containers that were started by + +```sh +docker-compose up +``` + +without `--deatach` flag then you need to press in that terminal Ctrl+c. + +If the process of stopping containers takes too long then you may press Ctrl+c again to kill containers. Keep in mind that may result in the data loss. + +if you started containers with the`--deatach` flag then you need to issue a command + +```sh +docker-compose stop +``` + +Example terminal output: + +``` +[+] Running 4/4 +⠿ Container carrental-nginx-v1-1 Stopped +⠿ Container carrental-elasticsearch-v7-1 Stopped +⠿ Container carrental-php-composer-v2-1 Stopped +⠿ Container carrental-php-fpm-v8-1 Stopped +``` + + [^TOC^](#Table of contents) + +#### Remove service containers + +You may remove service containers that are already stopped or even running containers if `--force` flag added: + +```sh +docker-compose rm --force --stop +``` + +options: + +- `-f`, `--force` Don't ask to confirm removal +- `-s`, `--stop` Stop the containers, if required, before removing + +example terminal output: + +``` +[+] Running 4/4 + ⠿ Container carrental-php-composer-v2-1 Stopped 10.4s + ⠿ Container carrental-nginx-v1-1 Stopped 0.6s + ⠿ Container carrental-php-fpm-v8-1 Stopped 0.3s + ⠿ Container carrental-elasticsearch-v7-1 Stopped 0.8s + +Going to remove carrental-nginx-v1-1, carrental-elasticsearch-v7-1, carrental-php-fpm-v8-1, carrental-php-composer-v2-1 + +[+] Running 4/0 + ⠿ Container carrental-php-composer-v2-1 Removed 0.0s + ⠿ Container carrental-nginx-v1-1 Removed 0.0s + ⠿ Container carrental-elasticsearch-v7-1 Removed 0.0s + ⠿ Container carrental-php-fpm-v8-1 Removed 0.0s +``` + +If you want to remove also networks then look at: [Stop & remove service containers with their network](#Stop & remove service containers with their network) + + [^TOC^](#Table of contents) + +#### Stop & remove service containers with their network + +[Remove service containers](#Remove service containers) only removes containers but what if you need to get rid of all of the containers with their networks for eg. you reconfigured network and want to do `docker-compose` `up` with the new network configuration? + +You may use for that `docker-compose` `down` that is the opposite command to the `docker-compose` `up`, run: + +```sh +docker-compose down --remove-orphans +``` + +Options: + +- `--remove-orphans` Remove containers for services not defined in the Compose file. + +example terminal output: + +``` +[+] Running 6/6 + ⠿ Container carrental-php-composer-v2-1 Removed 10.5s + ⠿ Container carrental-elasticsearch-v7-1 Removed 1.0s + ⠿ Container carrental-php-fpm-v8-1 Removed 0.5s + ⠿ Container carrental-nginx-v1-1 Removed 1.0s + ⠿ Network carrental_backend Removed 0.3s + ⠿ Network carrental_frontend Removed 0.2s +``` + +Note that networks: + +``` + ⠿ Network carrental_backend Removed 0.3s + ⠿ Network carrental_frontend Removed 0.2s +``` + +were also removed in contrary to the [Remove service containers](#Remove service containers) that removes only services. + + [^TOC^](#Table of contents) + +#### Run, Stop, Remove + +Make sure you that you do not have any: + +- container +- docker network + +that is important (ie a container(s) handling an incoming traffic or saving a backup data) before proceeding with the steps as described in this section. + + + +When developing an application it is very often need to do a repetitive cycle of docker commands: + +1. Run all or just selected services +2. Shut everything down +3. Clean any leftovers +4. Build the images again +5. Repeat point 1 with updated configuration + + + +Below is a one-liner that covers **points 1~4** for the `dev` profile (all services). + +Run and cleanup this project: + +```sh +docker-compose --profile dev up --build --force-recreate; \ +docker-compose down --remove-orphans; +``` + +See description of commands below. + +Run and cleanup every project: + +```sh +docker-compose --profile dev up --build --force-recreate; \ +docker-compose down --remove-orphans; \ +containers="$(docker ps -aq)"; [ -z "$containters" ] || docker rm -f $containers; \ +networks="$(docker network ls -q --filter 'type=custom')"; [ -z "$networks" ] || docker network rm $networks; +``` + +Explanation: + +- `docker-compose --profile dev up --build --force-recreate` runs the `dev` profile (`--profile`) and builds (`--build`) all images always (`--force-recreate`). Blocks the terminal input (lack of `--deatch`) till a user presses Ctrl+c. + +- `docker-compose down --remove-orphans` shuts all containers down and removes them with their networks. + +- `containers="$(docker ps -aq)"; [ -z "$containters" ] || docker rm -f $containers;` removes all of the containers even these ones that are not related to the project. + +- `networks="$(docker network ls -q --filter 'type=custom')"; [ -z "$networks" ] || docker network rm $networks` removes all of the user created networks even these that are not related to this project. + + + +**Point 5**: To repeat that command use Ctrl+Up Arrow. Once it is displayed press Enter. + + [^TOC^](#Table of contents) + +#### Build images + +If you make any changes to the Dockerfiles you should use `--build` flag so the `docker-compose` `up` rebuilds your images before running them again. + +example: + +```sh +docker-compose --profile dev up --build +``` + +Sometimes even you have made changes to the Dockerfile or a service `.yaml` file of an image docker will use its old version, therefore `--force-recreate` is useful during the development phase: + +```sh +docker-compose --profile dev up --build --force-recreate +``` + + + +If you run your `docker-compose` `up` command with newly build images but still see that the old image is used check with the command: + +```sh +docker ps -a +``` + +name of the containers under the column `IMAGE`. + +If the column has a hash value like: `26d6a19a43ba` instead of a container name for eg: `carrental_composer:2.2.7` then something went wrong and the docker has not started with the newly created image but with an old one. + +In such case you may need to: + +- Check if a new Dockerfile has any errors and if it was successfully build and tagged +- Follow steps from [Run, Stop, Remove](#Run, Stop, Remove) +- Follow steps from [Development time cleanup](#Development time cleanup) + + [^TOC^](#Table of contents) + +#### Composer + +If you want to run any PHP composer command then you have two options: + +exec command: + +```sh +docker-compose exec php-composer-v2 composer install +``` + +or attach to the container: + +```sh +docker attach carrental-php-composer-v2-1 +``` + +then you will be logged into the `carrental-php-composer-v2-1` shell (`/bin/bash`) and inside the project directory so you will be able to type: + +```sh +composer install +``` + +Note that example of attaching above used `docker` command instead of `docker-compose` therefore a full name of the container was used (`carrental-php-composer-v2-1`) instead of the service name (`php-composer-v2`) + +To exit from the attached container just run: + +```sh +exit +``` + +that will exit the container but since its restart policy is: + +```yaml + php-composer-v2: + restart: unless-stopped +``` + +then it will be restarted, allowing you to attach to it again. + + [^TOC^](#Table of contents) + +#### Monitoring + +For monitoring is good to open a new terminal window and run: + +```sh +watch -t -n 2 "docker ps -a" +``` + +then open another window and type: + +```sh +docker stats -a +``` + +`docker stats` has issue that after some time there are lot of "dead" entries that are meaningless. In order to get rid of them you need to terminate that command with Ctrl+c and run it again. + +To see logs (in case you run `docker-compose` `up` with the `-d` or `--detach` flag): + +```sh +docker-compose logs +``` + +To list images releated to this project run: + +```sh +docker image ls 'carrental_*' +``` + + [^TOC^](#Table of contents) + +#### Reinstallation + +At any point of time you may run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)). + +You may do that for example to change the project's files and directories ownership to a different user. If you want to do that just switch to the user that should own that project and perform the `./setup.sh` again. + + [^TOC^](#Table of contents) + +## Uninstallation + +Stop and remove all of the containers: + +```sh +docker-compose down --remove-orphans +``` + + + +list all of the containers' images: + +```sh +docker image ls 'carrental_*' +``` + +If listed images are the one you expect you may remove them by running: + +```sh +docker image rm -f $(docker image ls -q 'carrental_*') +``` + + + +if you see: + +> Error response from daemon: conflict: unable to delete 8a9b37ed9ecc (cannot be forced) - image has dependent child images + + + +remove dandling images: + +```sh +docker rmi $(docker images --filter "dangling=true" -q --no-trunc) +``` + +and repeat command: + +```sh +docker image rm -f $(docker image ls -q 'carrental_*') +``` + +again. + +If you still can't remove an image, try by using its name:tag for eg.: + +```sh +docker image rm -f carrental_php:8.1.3-fpm-buster +``` + + + +Remove the project directory with its files (you should not need `sudo` for this) + + [^TOC^](#Table of contents) + +## Elasticsearch + +**References:** + +[Elasticsearch 7.17 Guide](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/index.html) + +[Elasticsearch 7.17 Guide - Docker](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docker.html) + + + +#### Reinitialize + +At any time when you messed up the example cars index you may re-create it and populate with a single command (your shell needs to be in the [./docker/service](./docker/service) dir): + +```sh +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/init.sh" +``` + +It deletes index, creates it, and populates with the example data. + +terminal output: + +``` +... + +Performing cURL request: +curl -sSL -X GET 'http://elasticsearch-v7:9200/cars/_count' +{"count":39,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}} +Success. +Done! +``` + +or you may do it step by step: + +- [Delete index](#Delete index) +- [Create index](#Create index) +- [Populate index with data](#Populate index with data) + +An alternative way is to run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)) + +You may use also: [Step by step other methods](#Step by step other methods) + + [^TOC^](#Table of contents) + +#### Elasticsearch code + All Elasticsearch implementation related code is placed in `src/Elasticsearch` directory. The core ranking logic is built [from specific `Factors` classes](https://github.com/lrynek/phpers-2021/tree/main/src/Elasticsearch/ValueObject/Factor): @@ -71,5 +1550,21 @@ final class RecommendedSorter implements FactorSorterInterface 💡 In order to get rid of customly ranked results on the listing you can switch to `DefaultSorter` that sorts all results ascending by their `id`. + [^TOC^](#Table of contents) + +## Credits + +[Ryszard](https://stackoverflow.com/users/1174405?tab=profile) + +- Application conversion to docker-compose +- Setup and initialization scripts +- Docker and docker-compose related manuals + + [^TOC^](#Table of contents) + ## Copyrights + Apart from [the project's LICENSE](https://github.com/lrynek/phpers-2021/blob/main/LICENSE), [all car photo samples](https://github.com/lrynek/phpers-2021/tree/main/public/images/cars) used in the project are taken from Google search results and all copyrights applies to their respective authors and shouldn't be used further than private/educational use without their explicit consent. + + [^TOC^](#Table of contents) + diff --git a/.elasticsearch-http-requests/Check.http b/app/default/.elasticsearch-http-requests/Check.http similarity index 100% rename from .elasticsearch-http-requests/Check.http rename to app/default/.elasticsearch-http-requests/Check.http diff --git a/.elasticsearch-http-requests/Document/Create_or_Update.http b/app/default/.elasticsearch-http-requests/Document/Create_or_Update.http similarity index 100% rename from .elasticsearch-http-requests/Document/Create_or_Update.http rename to app/default/.elasticsearch-http-requests/Document/Create_or_Update.http diff --git a/.elasticsearch-http-requests/Index/Bulk.http b/app/default/.elasticsearch-http-requests/Index/Bulk.http similarity index 100% rename from .elasticsearch-http-requests/Index/Bulk.http rename to app/default/.elasticsearch-http-requests/Index/Bulk.http diff --git a/.elasticsearch-http-requests/Index/Count.http b/app/default/.elasticsearch-http-requests/Index/Count.http similarity index 100% rename from .elasticsearch-http-requests/Index/Count.http rename to app/default/.elasticsearch-http-requests/Index/Count.http diff --git a/.elasticsearch-http-requests/Index/Create.http b/app/default/.elasticsearch-http-requests/Index/Create.http similarity index 100% rename from .elasticsearch-http-requests/Index/Create.http rename to app/default/.elasticsearch-http-requests/Index/Create.http diff --git a/.elasticsearch-http-requests/Index/Delete.http b/app/default/.elasticsearch-http-requests/Index/Delete.http similarity index 100% rename from .elasticsearch-http-requests/Index/Delete.http rename to app/default/.elasticsearch-http-requests/Index/Delete.http diff --git a/.elasticsearch-http-requests/Index/Mappings.http b/app/default/.elasticsearch-http-requests/Index/Mappings.http similarity index 100% rename from .elasticsearch-http-requests/Index/Mappings.http rename to app/default/.elasticsearch-http-requests/Index/Mappings.http diff --git a/.elasticsearch-http-requests/Search/All_structure.http b/app/default/.elasticsearch-http-requests/Search/All_structure.http similarity index 100% rename from .elasticsearch-http-requests/Search/All_structure.http rename to app/default/.elasticsearch-http-requests/Search/All_structure.http diff --git a/.elasticsearch-http-requests/Search/Functions.http b/app/default/.elasticsearch-http-requests/Search/Functions.http similarity index 100% rename from .elasticsearch-http-requests/Search/Functions.http rename to app/default/.elasticsearch-http-requests/Search/Functions.http diff --git a/.elasticsearch-http-requests/Search/Functions_colors.http b/app/default/.elasticsearch-http-requests/Search/Functions_colors.http similarity index 100% rename from .elasticsearch-http-requests/Search/Functions_colors.http rename to app/default/.elasticsearch-http-requests/Search/Functions_colors.http diff --git a/.elasticsearch-http-requests/Search/Phrase.http b/app/default/.elasticsearch-http-requests/Search/Phrase.http similarity index 100% rename from .elasticsearch-http-requests/Search/Phrase.http rename to app/default/.elasticsearch-http-requests/Search/Phrase.http diff --git a/app/default/.elasticsearch-http-requests/init.sh b/app/default/.elasticsearch-http-requests/init.sh new file mode 100755 index 0000000..0e7dead --- /dev/null +++ b/app/default/.elasticsearch-http-requests/init.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +set -eu + +SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"; + +"$SCRIPTPATH/request.sh" "$SCRIPTPATH/Index/Delete.http" || true +"$SCRIPTPATH/request.sh" "$SCRIPTPATH/Index/Create.http" && \ +"$SCRIPTPATH/request.sh" "$SCRIPTPATH/Index/Bulk.http" && sleep 1 && \ +"$SCRIPTPATH/request.sh" "$SCRIPTPATH/Index/Count.http" + +printf "Done!\n" \ No newline at end of file diff --git a/app/default/.elasticsearch-http-requests/request.sh b/app/default/.elasticsearch-http-requests/request.sh new file mode 100755 index 0000000..ad6be8f --- /dev/null +++ b/app/default/.elasticsearch-http-requests/request.sh @@ -0,0 +1,84 @@ +#!/bin/sh + +# Example usage: +# ./request.sh ./Index/Create.http +# ./request.sh /app/default/.elasticsearch-http-requests/Index/Delete.http + +set -eu + +http_request_path="${1:-}" + +[ -n "$http_request_path" ] || \ + { printf "Usage: $1 \n" && exit 1; } + +[ -n "${DOCKER_ELASTICSEARCH_HOST:-}" ] || \ + { printf "Set ENV varialbe DOCKER_ELASTICSEARCH_HOST first\n" && exit 1 ;} + +RED='\033[31;5;7m' +GREEN='\033[1;0;42m' +NC='\033[0m' # No Color + +SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"; + +# if request path is not absolute make it relative to the script +[ ! "$http_request_path" = "${http_request_path#/}" ] || \ + http_request_path="$SCRIPTPATH/$http_request_path" + +[ -f $http_request_path ] || \ + { printf "Path does not point to a file, path: $1\n" && exit 1; } + +[ -r "$http_request_path" ] || \ + { printf "File is not readable, check permissions, path: $1\n" && exit 1; } + +# read content of a file +content="$(cat "$http_request_path" || { 1>&2 printf "Could not read the file: $http_request_path\n" && exit 1; })" + +# dissasemble request to its part +request="$(printf "$content" | head -n1)" +method="$(printf "$request" | grep -oE '^\w+')" +url=$(printf "$request" | sed 's/^\w* //') +header="$(printf "$content\n" | awk '/http/,/^$/' | tail -n+2 | sed '$d')" +body="$(printf "$content" | tail -n+"$(printf "$content\n" | awk '/http/,/^$/' | wc -l)" | tail -n+2)" + +# convert localhost to elasticsearch service host +find='http://localhost:9200' +replace="$DOCKER_ELASTICSEARCH_HOST" +url="$(printf "$url\n" | awk -v r="$replace" -v f="$find" '{ gsub(f,r); print $0 }')" + +# create header options for curl +curl_header='' +newline="$(printf "\nx")" && newline="${newline%x}" +IFS="$newline" +for head in $header; do + curl_header="${curl_header} -H '$head'" +done + +option_data='' +[ -z "$body" ] || option_data=" --data-raw \\${newline}'$body${newline}'" + +# escape body's single quote ' +body="$(printf "$body" | sed "s/'/\\\'/g")" + +from_newline='' +[ -z "$option_data" ] || from_newline="\\${newline}" + +#Bugfix for: elasticsearch 7 deprec. use of _doc: '{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true."}],"type":"illegal_argument_exception","reason":"The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true."},"status":400}' +[ ! "$method" = 'PUT' ] || url="${url}?include_type_name=true" + +command_request="curl -sSL -X ${method:-GET}${curl_header}${option_data} ${from_newline}'$url'" +printf "Performing cURL request:\n${command_request}\n" + +# example success responses +# expected_pattern='\{"count":0,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}}' +# expected_pattern='^\{"acknowledged":true' # Delete, + +# check for error response +expected_pattern='^\s*\{\s*"error"' # Delete, +response="$(printf "$command_request\n" | sh || ec=$? )" + +# validate response +printf "$response" | grep -vE "$expected_pattern" > /dev/null || \ + { printf "${RED}FAIL${NC}\nThere was an error with cURL exit code: ${ec:-0}, and response: $response\n" && exit ${ec:-1}; } + +printf "$response\n" +printf "${GREEN}Success.${NC}\n" \ No newline at end of file diff --git a/src/Controller/.gitignore b/app/default/.env similarity index 100% rename from src/Controller/.gitignore rename to app/default/.env diff --git a/.gitignore b/app/default/.gitignore similarity index 100% rename from .gitignore rename to app/default/.gitignore diff --git a/app/default/LICENSE b/app/default/LICENSE new file mode 100644 index 0000000..1c9cbe2 --- /dev/null +++ b/app/default/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Łukasz Rynek + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/bin/console b/app/default/bin/console old mode 100755 new mode 100644 similarity index 100% rename from bin/console rename to app/default/bin/console diff --git a/composer.json b/app/default/composer.json similarity index 96% rename from composer.json rename to app/default/composer.json index 4ffdb38..4397419 100644 --- a/composer.json +++ b/app/default/composer.json @@ -16,8 +16,7 @@ "symfony/runtime": "5.4.*", "symfony/twig-bundle": "5.4.*", "symfony/yaml": "5.4.*", - "twig/extra-bundle": "^3.0", - "twig/twig": "^3.0" + "twig/extra-bundle": "^3.0" }, "require-dev": { }, diff --git a/composer.lock b/app/default/composer.lock similarity index 96% rename from composer.lock rename to app/default/composer.lock index 80fb3f2..0613fbf 100644 --- a/composer.lock +++ b/app/default/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "48aa5afe50d1f6a83a78669c39530ede", + "content-hash": "e86fee6de8c9cc2005f15cfe0befa5b3", "packages": [ { "name": "doctrine/annotations", @@ -80,16 +80,16 @@ }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { @@ -97,7 +97,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -136,7 +136,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -152,7 +152,7 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "guzzlehttp/guzzle", @@ -198,12 +198,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -305,12 +305,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -958,16 +958,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825" + "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", - "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", + "url": "https://api.github.com/repos/symfony/cache/zipball/c0718d0e01ac14251a45cc9c8b93716ec41ae64b", + "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b", "shasum": "" }, "require": { @@ -1035,7 +1035,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.3" + "source": "https://github.com/symfony/cache/tree/v5.4.6" }, "funding": [ { @@ -1051,7 +1051,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-03-02T12:56:28+00:00" }, { "name": "symfony/cache-contracts", @@ -1213,16 +1213,16 @@ }, { "name": "symfony/console", - "version": "v5.4.3", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad", + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad", "shasum": "" }, "require": { @@ -1292,7 +1292,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.3" + "source": "https://github.com/symfony/console/tree/v5.4.5" }, "funding": [ { @@ -1308,20 +1308,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-02-24T12:45:35+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "974580fd67f14d65b045c11b09eb149cd4b13df5" + "reference": "0828fa3e6e436243dbb3dc85abe6b698b3876b89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/974580fd67f14d65b045c11b09eb149cd4b13df5", - "reference": "974580fd67f14d65b045c11b09eb149cd4b13df5", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0828fa3e6e436243dbb3dc85abe6b698b3876b89", + "reference": "0828fa3e6e436243dbb3dc85abe6b698b3876b89", "shasum": "" }, "require": { @@ -1337,7 +1337,7 @@ "symfony/config": "<5.3", "symfony/finder": "<4.4", "symfony/proxy-manager-bridge": "<4.4", - "symfony/yaml": "<4.4" + "symfony/yaml": "<4.4.26" }, "provide": { "psr/container-implementation": "1.0", @@ -1346,7 +1346,7 @@ "require-dev": { "symfony/config": "^5.3|^6.0", "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/yaml": "^4.4.26|^5.0|^6.0" }, "suggest": { "symfony/config": "", @@ -1381,7 +1381,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.3" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.6" }, "funding": [ { @@ -1397,7 +1397,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-03-02T12:42:23+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1468,16 +1468,16 @@ }, { "name": "symfony/dotenv", - "version": "v5.4.3", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "84d1af2d39dd81b48eb1cd3af3f107eea7a275bb" + "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/84d1af2d39dd81b48eb1cd3af3f107eea7a275bb", - "reference": "84d1af2d39dd81b48eb1cd3af3f107eea7a275bb", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", + "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", "shasum": "" }, "require": { @@ -1519,7 +1519,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.4.3" + "source": "https://github.com/symfony/dotenv/tree/v5.4.5" }, "funding": [ { @@ -1535,7 +1535,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:19:10+00:00" + "time": "2022-02-15T17:04:12+00:00" }, { "name": "symfony/error-handler", @@ -1774,16 +1774,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b" + "reference": "d53a45039974952af7f7ebc461ccdd4295e29440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f0c4bf1840420f4aef3f32044a9dbb24682731b", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d53a45039974952af7f7ebc461ccdd4295e29440", + "reference": "d53a45039974952af7f7ebc461ccdd4295e29440", "shasum": "" }, "require": { @@ -1818,7 +1818,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.3" + "source": "https://github.com/symfony/filesystem/tree/v5.4.6" }, "funding": [ { @@ -1834,7 +1834,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-03-02T12:42:23+00:00" }, { "name": "symfony/finder", @@ -1901,16 +1901,16 @@ }, { "name": "symfony/flex", - "version": "v2.1.4", + "version": "v2.1.6", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "110e8928b6e719e9b9f146c8fd92c41a4b74a3ac" + "reference": "dd7dafe3bfebf8441e167b76d8a18974585467f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/110e8928b6e719e9b9f146c8fd92c41a4b74a3ac", - "reference": "110e8928b6e719e9b9f146c8fd92c41a4b74a3ac", + "url": "https://api.github.com/repos/symfony/flex/zipball/dd7dafe3bfebf8441e167b76d8a18974585467f3", + "reference": "dd7dafe3bfebf8441e167b76d8a18974585467f3", "shasum": "" }, "require": { @@ -1946,7 +1946,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.1.4" + "source": "https://github.com/symfony/flex/tree/v2.1.6" }, "funding": [ { @@ -1962,20 +1962,20 @@ "type": "tidelift" } ], - "time": "2022-01-27T10:25:12+00:00" + "time": "2022-02-16T17:31:43+00:00" }, { "name": "symfony/framework-bundle", - "version": "v5.4.4", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "d848b8ca3d87d0fcc9d0ccbc88cf8e128db0d4c7" + "reference": "76ea755f30924924ea37a28e098df61679efcb63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/d848b8ca3d87d0fcc9d0ccbc88cf8e128db0d4c7", - "reference": "d848b8ca3d87d0fcc9d0ccbc88cf8e128db0d4c7", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/76ea755f30924924ea37a28e098df61679efcb63", + "reference": "76ea755f30924924ea37a28e098df61679efcb63", "shasum": "" }, "require": { @@ -1983,7 +1983,7 @@ "php": ">=7.2.5", "symfony/cache": "^5.2|^6.0", "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dependency-injection": "^5.4.5|^6.0.5", "symfony/deprecation-contracts": "^2.1|^3", "symfony/error-handler": "^4.4.1|^5.0.1|^6.0", "symfony/event-dispatcher": "^5.1|^6.0", @@ -2030,7 +2030,6 @@ "doctrine/annotations": "^1.13.1", "doctrine/cache": "^1.11|^2.0", "doctrine/persistence": "^1.3|^2.0", - "paragonie/sodium_compat": "^1.8", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/asset": "^5.3|^6.0", "symfony/browser-kit": "^5.4|^6.0", @@ -2099,7 +2098,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.4.4" + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.6" }, "funding": [ { @@ -2115,20 +2114,20 @@ "type": "tidelift" } ], - "time": "2022-01-29T17:49:40+00:00" + "time": "2022-03-04T14:13:35+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ef409ff341a565a3663157d4324536746d49a0c7" + "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ef409ff341a565a3663157d4324536746d49a0c7", - "reference": "ef409ff341a565a3663157d4324536746d49a0c7", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/34e89bc147633c0f9dd6caaaf56da3b806a21465", + "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465", "shasum": "" }, "require": { @@ -2172,7 +2171,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.3" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.6" }, "funding": [ { @@ -2188,20 +2187,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-03-05T21:03:43+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.4", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "49f40347228c773688a0488feea0175aa7f4d268" + "reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/49f40347228c773688a0488feea0175aa7f4d268", - "reference": "49f40347228c773688a0488feea0175aa7f4d268", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d41f29ae9af1b5f40c7ebcddf09082953229411d", + "reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d", "shasum": "" }, "require": { @@ -2284,7 +2283,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.4" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.6" }, "funding": [ { @@ -2300,11 +2299,11 @@ "type": "tidelift" } ], - "time": "2022-01-29T18:08:07+00:00" + "time": "2022-03-05T21:14:51+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -2365,7 +2364,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -2385,7 +2384,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2449,7 +2448,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -2469,7 +2468,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -2501,12 +2500,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2532,7 +2531,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -2552,7 +2551,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -2611,7 +2610,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" }, "funding": [ { @@ -2631,16 +2630,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -2694,7 +2693,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -2710,11 +2709,11 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -2773,7 +2772,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -2883,16 +2882,16 @@ }, { "name": "symfony/runtime", - "version": "v5.4.3", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "354ce8493868594339cafe17ef67aba874c12158" + "reference": "06fdd940ebf240ed7d9c9832cd97bf3133847316" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/354ce8493868594339cafe17ef67aba874c12158", - "reference": "354ce8493868594339cafe17ef67aba874c12158", + "url": "https://api.github.com/repos/symfony/runtime/zipball/06fdd940ebf240ed7d9c9832cd97bf3133847316", + "reference": "06fdd940ebf240ed7d9c9832cd97bf3133847316", "shasum": "" }, "require": { @@ -2940,7 +2939,7 @@ "description": "Enables decoupling PHP applications from global state", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/runtime/tree/v5.4.3" + "source": "https://github.com/symfony/runtime/tree/v5.4.5" }, "funding": [ { @@ -2956,7 +2955,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T17:32:52+00:00" + "time": "2022-02-15T13:38:03+00:00" }, { "name": "symfony/service-contracts", @@ -3073,12 +3072,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -3206,16 +3205,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v5.4.3", + "version": "v5.4.5", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "925719b20832e3dabd399fd9ebf85ed0eabf9999" + "reference": "648c8694a9470ae4aaf64cbce1b640f5941fd7c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/925719b20832e3dabd399fd9ebf85ed0eabf9999", - "reference": "925719b20832e3dabd399fd9ebf85ed0eabf9999", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/648c8694a9470ae4aaf64cbce1b640f5941fd7c9", + "reference": "648c8694a9470ae4aaf64cbce1b640f5941fd7c9", "shasum": "" }, "require": { @@ -3307,7 +3306,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v5.4.3" + "source": "https://github.com/symfony/twig-bridge/tree/v5.4.5" }, "funding": [ { @@ -3323,7 +3322,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-02-09T08:59:58+00:00" }, { "name": "symfony/twig-bundle", @@ -3416,16 +3415,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "970a01f208bf895c5f327ba40b72288da43adec4" + "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/970a01f208bf895c5f327ba40b72288da43adec4", - "reference": "970a01f208bf895c5f327ba40b72288da43adec4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/294e9da6e2e0dd404e983daa5aa74253d92c05d0", + "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0", "shasum": "" }, "require": { @@ -3485,7 +3484,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.3" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.6" }, "funding": [ { @@ -3501,20 +3500,20 @@ "type": "tidelift" } ], - "time": "2022-01-17T16:30:37+00:00" + "time": "2022-03-02T12:42:23+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.3", + "version": "v5.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "b199936b7365be36663532e547812d3abb10234a" + "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b199936b7365be36663532e547812d3abb10234a", - "reference": "b199936b7365be36663532e547812d3abb10234a", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/49e2355fe6f59ea30c18ebb68edf13b7e20582e5", + "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5", "shasum": "" }, "require": { @@ -3558,7 +3557,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.3" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.6" }, "funding": [ { @@ -3574,7 +3573,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-03-02T12:42:23+00:00" }, { "name": "symfony/yaml", diff --git a/config/bundles.php b/app/default/config/bundles.php similarity index 100% rename from config/bundles.php rename to app/default/config/bundles.php diff --git a/config/packages/cache.yaml b/app/default/config/packages/cache.yaml similarity index 100% rename from config/packages/cache.yaml rename to app/default/config/packages/cache.yaml diff --git a/config/packages/framework.yaml b/app/default/config/packages/framework.yaml similarity index 100% rename from config/packages/framework.yaml rename to app/default/config/packages/framework.yaml diff --git a/config/packages/routing.yaml b/app/default/config/packages/routing.yaml similarity index 100% rename from config/packages/routing.yaml rename to app/default/config/packages/routing.yaml diff --git a/config/packages/sensio_framework_extra.yaml b/app/default/config/packages/sensio_framework_extra.yaml similarity index 100% rename from config/packages/sensio_framework_extra.yaml rename to app/default/config/packages/sensio_framework_extra.yaml diff --git a/config/packages/twig.yaml b/app/default/config/packages/twig.yaml similarity index 100% rename from config/packages/twig.yaml rename to app/default/config/packages/twig.yaml diff --git a/config/preload.php b/app/default/config/preload.php similarity index 100% rename from config/preload.php rename to app/default/config/preload.php diff --git a/config/routes.yaml b/app/default/config/routes.yaml similarity index 100% rename from config/routes.yaml rename to app/default/config/routes.yaml diff --git a/config/routes/annotations.yaml b/app/default/config/routes/annotations.yaml similarity index 100% rename from config/routes/annotations.yaml rename to app/default/config/routes/annotations.yaml diff --git a/config/routes/framework.yaml b/app/default/config/routes/framework.yaml similarity index 100% rename from config/routes/framework.yaml rename to app/default/config/routes/framework.yaml diff --git a/config/services.yaml b/app/default/config/services.yaml similarity index 100% rename from config/services.yaml rename to app/default/config/services.yaml diff --git a/insomnia.json b/app/default/insomnia.json similarity index 100% rename from insomnia.json rename to app/default/insomnia.json diff --git a/public/bootstrap.bundle.min.js b/app/default/public/bootstrap.bundle.min.js similarity index 100% rename from public/bootstrap.bundle.min.js rename to app/default/public/bootstrap.bundle.min.js diff --git a/public/bootstrap.min.css b/app/default/public/bootstrap.min.css similarity index 100% rename from public/bootstrap.min.css rename to app/default/public/bootstrap.min.css diff --git a/public/favicon.ico b/app/default/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to app/default/public/favicon.ico diff --git a/public/favicon.png b/app/default/public/favicon.png similarity index 100% rename from public/favicon.png rename to app/default/public/favicon.png diff --git a/public/images/cars/aston-martin-db7-gt.jpg b/app/default/public/images/cars/aston-martin-db7-gt.jpg similarity index 100% rename from public/images/cars/aston-martin-db7-gt.jpg rename to app/default/public/images/cars/aston-martin-db7-gt.jpg diff --git a/public/images/cars/aston-martin-db7-vantage.jpg b/app/default/public/images/cars/aston-martin-db7-vantage.jpg similarity index 100% rename from public/images/cars/aston-martin-db7-vantage.jpg rename to app/default/public/images/cars/aston-martin-db7-vantage.jpg diff --git a/public/images/cars/aston-martin-db7-zagato.jpg b/app/default/public/images/cars/aston-martin-db7-zagato.jpg similarity index 100% rename from public/images/cars/aston-martin-db7-zagato.jpg rename to app/default/public/images/cars/aston-martin-db7-zagato.jpg diff --git a/public/images/cars/bmw-i8-roadster-2019.jpg b/app/default/public/images/cars/bmw-i8-roadster-2019.jpg similarity index 100% rename from public/images/cars/bmw-i8-roadster-2019.jpg rename to app/default/public/images/cars/bmw-i8-roadster-2019.jpg diff --git a/public/images/cars/bmw-i8-roadster.jpg b/app/default/public/images/cars/bmw-i8-roadster.jpg similarity index 100% rename from public/images/cars/bmw-i8-roadster.jpg rename to app/default/public/images/cars/bmw-i8-roadster.jpg diff --git a/public/images/cars/dodge-challenger.jpg b/app/default/public/images/cars/dodge-challenger.jpg similarity index 100% rename from public/images/cars/dodge-challenger.jpg rename to app/default/public/images/cars/dodge-challenger.jpg diff --git a/public/images/cars/dodge-viper-gts.jpg b/app/default/public/images/cars/dodge-viper-gts.jpg similarity index 100% rename from public/images/cars/dodge-viper-gts.jpg rename to app/default/public/images/cars/dodge-viper-gts.jpg diff --git a/public/images/cars/dodge-viper-srt10-roadster.jpg b/app/default/public/images/cars/dodge-viper-srt10-roadster.jpg similarity index 100% rename from public/images/cars/dodge-viper-srt10-roadster.jpg rename to app/default/public/images/cars/dodge-viper-srt10-roadster.jpg diff --git a/public/images/cars/ferrari-250-gt-california.jpg b/app/default/public/images/cars/ferrari-250-gt-california.jpg similarity index 100% rename from public/images/cars/ferrari-250-gt-california.jpg rename to app/default/public/images/cars/ferrari-250-gt-california.jpg diff --git a/public/images/cars/ferrari-296-gtb.jpg b/app/default/public/images/cars/ferrari-296-gtb.jpg similarity index 100% rename from public/images/cars/ferrari-296-gtb.jpg rename to app/default/public/images/cars/ferrari-296-gtb.jpg diff --git a/public/images/cars/ferrari-550-maranello.jpg b/app/default/public/images/cars/ferrari-550-maranello.jpg similarity index 100% rename from public/images/cars/ferrari-550-maranello.jpg rename to app/default/public/images/cars/ferrari-550-maranello.jpg diff --git a/public/images/cars/ferrari-f8-spider.jpg b/app/default/public/images/cars/ferrari-f8-spider.jpg similarity index 100% rename from public/images/cars/ferrari-f8-spider.jpg rename to app/default/public/images/cars/ferrari-f8-spider.jpg diff --git a/public/images/cars/ferrari-roma.jpg b/app/default/public/images/cars/ferrari-roma.jpg similarity index 100% rename from public/images/cars/ferrari-roma.jpg rename to app/default/public/images/cars/ferrari-roma.jpg diff --git a/public/images/cars/ferrari-sf90.jpg b/app/default/public/images/cars/ferrari-sf90.jpg similarity index 100% rename from public/images/cars/ferrari-sf90.jpg rename to app/default/public/images/cars/ferrari-sf90.jpg diff --git a/public/images/cars/ferrari-testarossa.jpg b/app/default/public/images/cars/ferrari-testarossa.jpg similarity index 100% rename from public/images/cars/ferrari-testarossa.jpg rename to app/default/public/images/cars/ferrari-testarossa.jpg diff --git a/public/images/cars/ford-gt.jpg b/app/default/public/images/cars/ford-gt.jpg similarity index 100% rename from public/images/cars/ford-gt.jpg rename to app/default/public/images/cars/ford-gt.jpg diff --git a/public/images/cars/ford-mustang-boss-302.jpg b/app/default/public/images/cars/ford-mustang-boss-302.jpg similarity index 100% rename from public/images/cars/ford-mustang-boss-302.jpg rename to app/default/public/images/cars/ford-mustang-boss-302.jpg diff --git a/public/images/cars/ford-mustang-rtr.jpg b/app/default/public/images/cars/ford-mustang-rtr.jpg similarity index 100% rename from public/images/cars/ford-mustang-rtr.jpg rename to app/default/public/images/cars/ford-mustang-rtr.jpg diff --git a/public/images/cars/lamborghini-aventador.jpg b/app/default/public/images/cars/lamborghini-aventador.jpg similarity index 100% rename from public/images/cars/lamborghini-aventador.jpg rename to app/default/public/images/cars/lamborghini-aventador.jpg diff --git a/public/images/cars/lamborghini-countach.jpg b/app/default/public/images/cars/lamborghini-countach.jpg similarity index 100% rename from public/images/cars/lamborghini-countach.jpg rename to app/default/public/images/cars/lamborghini-countach.jpg diff --git a/public/images/cars/lamborghini-diablo.jpg b/app/default/public/images/cars/lamborghini-diablo.jpg similarity index 100% rename from public/images/cars/lamborghini-diablo.jpg rename to app/default/public/images/cars/lamborghini-diablo.jpg diff --git a/public/images/cars/lamborghini-huracan.jpg b/app/default/public/images/cars/lamborghini-huracan.jpg similarity index 100% rename from public/images/cars/lamborghini-huracan.jpg rename to app/default/public/images/cars/lamborghini-huracan.jpg diff --git a/public/images/cars/lamborghini-murcielago-lp670.jpg b/app/default/public/images/cars/lamborghini-murcielago-lp670.jpg similarity index 100% rename from public/images/cars/lamborghini-murcielago-lp670.jpg rename to app/default/public/images/cars/lamborghini-murcielago-lp670.jpg diff --git a/public/images/cars/lamborghini-sc20.jpg b/app/default/public/images/cars/lamborghini-sc20.jpg similarity index 100% rename from public/images/cars/lamborghini-sc20.jpg rename to app/default/public/images/cars/lamborghini-sc20.jpg diff --git a/public/images/cars/mazda-mx5-miata.jpg b/app/default/public/images/cars/mazda-mx5-miata.jpg similarity index 100% rename from public/images/cars/mazda-mx5-miata.jpg rename to app/default/public/images/cars/mazda-mx5-miata.jpg diff --git a/public/images/cars/mazda-mx5-z-sport.jpg b/app/default/public/images/cars/mazda-mx5-z-sport.jpg similarity index 100% rename from public/images/cars/mazda-mx5-z-sport.jpg rename to app/default/public/images/cars/mazda-mx5-z-sport.jpg diff --git a/public/images/cars/mazda-rx-vision-gt3-concept.jpg b/app/default/public/images/cars/mazda-rx-vision-gt3-concept.jpg similarity index 100% rename from public/images/cars/mazda-rx-vision-gt3-concept.jpg rename to app/default/public/images/cars/mazda-rx-vision-gt3-concept.jpg diff --git a/public/images/cars/mclaren-570s.jpg b/app/default/public/images/cars/mclaren-570s.jpg similarity index 100% rename from public/images/cars/mclaren-570s.jpg rename to app/default/public/images/cars/mclaren-570s.jpg diff --git a/public/images/cars/mclaren-720s.jpg b/app/default/public/images/cars/mclaren-720s.jpg similarity index 100% rename from public/images/cars/mclaren-720s.jpg rename to app/default/public/images/cars/mclaren-720s.jpg diff --git a/public/images/cars/mclaren-f1.jpg b/app/default/public/images/cars/mclaren-f1.jpg similarity index 100% rename from public/images/cars/mclaren-f1.jpg rename to app/default/public/images/cars/mclaren-f1.jpg diff --git a/public/images/cars/mercedes-benz-amg-gt-coupe.jpg b/app/default/public/images/cars/mercedes-benz-amg-gt-coupe.jpg similarity index 100% rename from public/images/cars/mercedes-benz-amg-gt-coupe.jpg rename to app/default/public/images/cars/mercedes-benz-amg-gt-coupe.jpg diff --git a/public/images/cars/mercedes-benz-gt.jpg b/app/default/public/images/cars/mercedes-benz-gt.jpg similarity index 100% rename from public/images/cars/mercedes-benz-gt.jpg rename to app/default/public/images/cars/mercedes-benz-gt.jpg diff --git a/public/images/cars/mercedes-benz-sls-amg-coupe.jpg b/app/default/public/images/cars/mercedes-benz-sls-amg-coupe.jpg similarity index 100% rename from public/images/cars/mercedes-benz-sls-amg-coupe.jpg rename to app/default/public/images/cars/mercedes-benz-sls-amg-coupe.jpg diff --git a/public/images/cars/mercedes-mclaren-slr-722-stirling-moss.jpg b/app/default/public/images/cars/mercedes-mclaren-slr-722-stirling-moss.jpg similarity index 100% rename from public/images/cars/mercedes-mclaren-slr-722-stirling-moss.jpg rename to app/default/public/images/cars/mercedes-mclaren-slr-722-stirling-moss.jpg diff --git a/public/images/cars/mitsubishi-lancer-evo-x.jpg b/app/default/public/images/cars/mitsubishi-lancer-evo-x.jpg similarity index 100% rename from public/images/cars/mitsubishi-lancer-evo-x.jpg rename to app/default/public/images/cars/mitsubishi-lancer-evo-x.jpg diff --git a/public/images/cars/porshe-911-gts.jpg b/app/default/public/images/cars/porshe-911-gts.jpg similarity index 100% rename from public/images/cars/porshe-911-gts.jpg rename to app/default/public/images/cars/porshe-911-gts.jpg diff --git a/public/images/cars/porshe-911-swb.jpg b/app/default/public/images/cars/porshe-911-swb.jpg similarity index 100% rename from public/images/cars/porshe-911-swb.jpg rename to app/default/public/images/cars/porshe-911-swb.jpg diff --git a/public/images/cars/porshe-911-turbo-s.jpg b/app/default/public/images/cars/porshe-911-turbo-s.jpg similarity index 100% rename from public/images/cars/porshe-911-turbo-s.jpg rename to app/default/public/images/cars/porshe-911-turbo-s.jpg diff --git a/public/images/cars/porshe-macan.jpg b/app/default/public/images/cars/porshe-macan.jpg similarity index 100% rename from public/images/cars/porshe-macan.jpg rename to app/default/public/images/cars/porshe-macan.jpg diff --git a/public/index.php b/app/default/public/index.php similarity index 100% rename from public/index.php rename to app/default/public/index.php diff --git a/public/jquery.min.js b/app/default/public/jquery.min.js similarity index 100% rename from public/jquery.min.js rename to app/default/public/jquery.min.js diff --git a/public/main.css b/app/default/public/main.css similarity index 100% rename from public/main.css rename to app/default/public/main.css diff --git a/public/select2.min.css b/app/default/public/select2.min.css similarity index 100% rename from public/select2.min.css rename to app/default/public/select2.min.css diff --git a/public/select2.min.js b/app/default/public/select2.min.js similarity index 100% rename from public/select2.min.js rename to app/default/public/select2.min.js diff --git a/app/default/src/Controller/.gitignore b/app/default/src/Controller/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/Controller/DefaultController.php b/app/default/src/Controller/DefaultController.php similarity index 92% rename from src/Controller/DefaultController.php rename to app/default/src/Controller/DefaultController.php index b5e2f24..21c3e85 100644 --- a/src/Controller/DefaultController.php +++ b/app/default/src/Controller/DefaultController.php @@ -15,11 +15,17 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; +use Psr\Log\LoggerInterface; final class DefaultController extends AbstractController { private const PAGE_DEFAULT = 1; + public function __construct(LoggerInterface $logger = null) + { + + } + #[Route('/{page}', name: 'app_search', requirements: ['page' => '\d+'], defaults: ['page' => self::PAGE_DEFAULT])] #[ParamConverter('pagination', class: PageParamConverter::class)] #[ParamConverter('criteria', class: CriteriaParamConverter::class)] @@ -28,8 +34,11 @@ public function list( AdditionalServiceRepositoryInterface $serviceRepository, Pagination $pagination, Criteria $criteria + ): Response { + // $this->logger = $logger; + $cars = $carRepository->find($pagination, $criteria); $filtersData = [ diff --git a/src/Controller/ParamConverter/AbstractParamConverter.php b/app/default/src/Controller/ParamConverter/AbstractParamConverter.php similarity index 100% rename from src/Controller/ParamConverter/AbstractParamConverter.php rename to app/default/src/Controller/ParamConverter/AbstractParamConverter.php diff --git a/src/Controller/ParamConverter/CriteriaParamConverter.php b/app/default/src/Controller/ParamConverter/CriteriaParamConverter.php similarity index 100% rename from src/Controller/ParamConverter/CriteriaParamConverter.php rename to app/default/src/Controller/ParamConverter/CriteriaParamConverter.php diff --git a/src/Controller/ParamConverter/PageParamConverter.php b/app/default/src/Controller/ParamConverter/PageParamConverter.php similarity index 95% rename from src/Controller/ParamConverter/PageParamConverter.php rename to app/default/src/Controller/ParamConverter/PageParamConverter.php index 2388dc9..66b8d5f 100644 --- a/src/Controller/ParamConverter/PageParamConverter.php +++ b/app/default/src/Controller/ParamConverter/PageParamConverter.php @@ -13,7 +13,7 @@ final class PageParamConverter extends AbstractParamConverter { private const PARAM_PAGE = 'page'; private const PAGE_DEFAULT = 1; - private const RESULTS_PER_PAGE = 3; + private const RESULTS_PER_PAGE = 10; public function apply(Request $request, ParamConverter $configuration): bool { diff --git a/src/Elasticsearch/Hydrator/CarHydrator.php b/app/default/src/Elasticsearch/Hydrator/CarHydrator.php similarity index 100% rename from src/Elasticsearch/Hydrator/CarHydrator.php rename to app/default/src/Elasticsearch/Hydrator/CarHydrator.php diff --git a/src/Elasticsearch/Hydrator/CarHydratorInterface.php b/app/default/src/Elasticsearch/Hydrator/CarHydratorInterface.php similarity index 100% rename from src/Elasticsearch/Hydrator/CarHydratorInterface.php rename to app/default/src/Elasticsearch/Hydrator/CarHydratorInterface.php diff --git a/src/Elasticsearch/Hydrator/CarsHydrator.php b/app/default/src/Elasticsearch/Hydrator/CarsHydrator.php similarity index 100% rename from src/Elasticsearch/Hydrator/CarsHydrator.php rename to app/default/src/Elasticsearch/Hydrator/CarsHydrator.php diff --git a/src/Elasticsearch/Hydrator/CarsHydratorInterface.php b/app/default/src/Elasticsearch/Hydrator/CarsHydratorInterface.php similarity index 100% rename from src/Elasticsearch/Hydrator/CarsHydratorInterface.php rename to app/default/src/Elasticsearch/Hydrator/CarsHydratorInterface.php diff --git a/src/Elasticsearch/Repository/CarRepository.php b/app/default/src/Elasticsearch/Repository/CarRepository.php similarity index 73% rename from src/Elasticsearch/Repository/CarRepository.php rename to app/default/src/Elasticsearch/Repository/CarRepository.php index 8a7a3f2..ce8ce3c 100644 --- a/src/Elasticsearch/Repository/CarRepository.php +++ b/app/default/src/Elasticsearch/Repository/CarRepository.php @@ -13,6 +13,7 @@ use App\ValueObject\Cars; use App\ValueObject\CriteriaInterface; use App\ValueObject\Pagination; +use Psr\Log\LoggerInterface; final class CarRepository implements CarRepositoryInterface { @@ -20,10 +21,12 @@ final class CarRepository implements CarRepositoryInterface public function __construct( private ApiClientInterface $client, - private CarsHydratorInterface $hydrator + private CarsHydratorInterface $hydrator, + LoggerInterface $logger = null ) { $this->index = Index::CARS(); + $this->logger = $logger; } public function find(Pagination $pagination, ?CriteriaInterface $criteria = null): Cars @@ -33,6 +36,11 @@ public function find(Pagination $pagination, ?CriteriaInterface $criteria = null $response = $this->client->search($this->index, $query); - return $this->hydrator->hydrate($response); + $this->logger->info('Found: [' . count($response->results()) . ']' . ' for query: ' . json_encode($query->toArray())); + + $hydra = $this->hydrator->hydrate($response); + + // var_dump($hydra); die; + return $hydra; } } diff --git a/src/Elasticsearch/Service/ApiClient.php b/app/default/src/Elasticsearch/Service/ApiClient.php similarity index 86% rename from src/Elasticsearch/Service/ApiClient.php rename to app/default/src/Elasticsearch/Service/ApiClient.php index 80c29f6..51c3344 100644 --- a/src/Elasticsearch/Service/ApiClient.php +++ b/app/default/src/Elasticsearch/Service/ApiClient.php @@ -11,12 +11,13 @@ final class ApiClient implements ApiClientInterface { - private const ELASTICSEARCH_HOST = 'http://localhost:9200'; + private $ELASTICSEARCH_HOST; private const ENDPOINT_SEARCH = '_search'; public function __construct(private ClientInterface $client) { + $this->ELASTICSEARCH_HOST = getenv('DOCKER_ELASTICSEARCH_HOST'); } public function search(Index $index, Query $query): Response @@ -29,7 +30,7 @@ public function search(Index $index, Query $query): Response private function createEndpointUrl(string $index, string $endpoint): string { - return implode(DIRECTORY_SEPARATOR, [self::ELASTICSEARCH_HOST, $index, $endpoint]); + return implode(DIRECTORY_SEPARATOR, [$this->ELASTICSEARCH_HOST, $index, $endpoint]); } private function convertResponseToArray(ResponseInterface $response): array diff --git a/src/Elasticsearch/Service/ApiClientInterface.php b/app/default/src/Elasticsearch/Service/ApiClientInterface.php similarity index 100% rename from src/Elasticsearch/Service/ApiClientInterface.php rename to app/default/src/Elasticsearch/Service/ApiClientInterface.php diff --git a/src/Elasticsearch/ValueObject/Criteria/ColorsFilter.php b/app/default/src/Elasticsearch/ValueObject/Criteria/ColorsFilter.php similarity index 100% rename from src/Elasticsearch/ValueObject/Criteria/ColorsFilter.php rename to app/default/src/Elasticsearch/ValueObject/Criteria/ColorsFilter.php diff --git a/src/Elasticsearch/ValueObject/Criteria/Criteria.php b/app/default/src/Elasticsearch/ValueObject/Criteria/Criteria.php similarity index 91% rename from src/Elasticsearch/ValueObject/Criteria/Criteria.php rename to app/default/src/Elasticsearch/ValueObject/Criteria/Criteria.php index 97df89b..b2c7651 100644 --- a/src/Elasticsearch/ValueObject/Criteria/Criteria.php +++ b/app/default/src/Elasticsearch/ValueObject/Criteria/Criteria.php @@ -11,6 +11,11 @@ final class Criteria implements CriteriaInterface private array $additional = []; private array $excluded = []; + public function __toString() + { + return implode(',', $this->required); + } + public function addRequired(Criterion $criterion): self { $this->required[$criterion::class] = $criterion; diff --git a/src/Elasticsearch/ValueObject/Criteria/Criterion.php b/app/default/src/Elasticsearch/ValueObject/Criteria/Criterion.php similarity index 100% rename from src/Elasticsearch/ValueObject/Criteria/Criterion.php rename to app/default/src/Elasticsearch/ValueObject/Criteria/Criterion.php diff --git a/src/Elasticsearch/ValueObject/Criteria/PhraseFilter.php b/app/default/src/Elasticsearch/ValueObject/Criteria/PhraseFilter.php similarity index 100% rename from src/Elasticsearch/ValueObject/Criteria/PhraseFilter.php rename to app/default/src/Elasticsearch/ValueObject/Criteria/PhraseFilter.php diff --git a/src/Elasticsearch/ValueObject/Criteria/ServicesFilter.php b/app/default/src/Elasticsearch/ValueObject/Criteria/ServicesFilter.php similarity index 100% rename from src/Elasticsearch/ValueObject/Criteria/ServicesFilter.php rename to app/default/src/Elasticsearch/ValueObject/Criteria/ServicesFilter.php diff --git a/src/Elasticsearch/ValueObject/Factor/ColorRelevanceFactor.php b/app/default/src/Elasticsearch/ValueObject/Factor/ColorRelevanceFactor.php similarity index 100% rename from src/Elasticsearch/ValueObject/Factor/ColorRelevanceFactor.php rename to app/default/src/Elasticsearch/ValueObject/Factor/ColorRelevanceFactor.php diff --git a/src/Elasticsearch/ValueObject/Factor/DodgePromoFactor.php b/app/default/src/Elasticsearch/ValueObject/Factor/DodgePromoFactor.php similarity index 100% rename from src/Elasticsearch/ValueObject/Factor/DodgePromoFactor.php rename to app/default/src/Elasticsearch/ValueObject/Factor/DodgePromoFactor.php diff --git a/src/Elasticsearch/ValueObject/Factor/FactorInterface.php b/app/default/src/Elasticsearch/ValueObject/Factor/FactorInterface.php similarity index 100% rename from src/Elasticsearch/ValueObject/Factor/FactorInterface.php rename to app/default/src/Elasticsearch/ValueObject/Factor/FactorInterface.php diff --git a/src/Elasticsearch/ValueObject/Factor/Factors.php b/app/default/src/Elasticsearch/ValueObject/Factor/Factors.php similarity index 100% rename from src/Elasticsearch/ValueObject/Factor/Factors.php rename to app/default/src/Elasticsearch/ValueObject/Factor/Factors.php diff --git a/src/Elasticsearch/ValueObject/Factor/RawScoreFactor.php b/app/default/src/Elasticsearch/ValueObject/Factor/RawScoreFactor.php similarity index 100% rename from src/Elasticsearch/ValueObject/Factor/RawScoreFactor.php rename to app/default/src/Elasticsearch/ValueObject/Factor/RawScoreFactor.php diff --git a/src/Elasticsearch/ValueObject/Factor/Weight.php b/app/default/src/Elasticsearch/ValueObject/Factor/Weight.php similarity index 100% rename from src/Elasticsearch/ValueObject/Factor/Weight.php rename to app/default/src/Elasticsearch/ValueObject/Factor/Weight.php diff --git a/src/Elasticsearch/ValueObject/Factor/WeightFactor.php b/app/default/src/Elasticsearch/ValueObject/Factor/WeightFactor.php similarity index 100% rename from src/Elasticsearch/ValueObject/Factor/WeightFactor.php rename to app/default/src/Elasticsearch/ValueObject/Factor/WeightFactor.php diff --git a/src/Elasticsearch/ValueObject/Query.php b/app/default/src/Elasticsearch/ValueObject/Query.php similarity index 100% rename from src/Elasticsearch/ValueObject/Query.php rename to app/default/src/Elasticsearch/ValueObject/Query.php diff --git a/src/Elasticsearch/ValueObject/Response.php b/app/default/src/Elasticsearch/ValueObject/Response.php similarity index 100% rename from src/Elasticsearch/ValueObject/Response.php rename to app/default/src/Elasticsearch/ValueObject/Response.php diff --git a/src/Elasticsearch/ValueObject/Result.php b/app/default/src/Elasticsearch/ValueObject/Result.php similarity index 100% rename from src/Elasticsearch/ValueObject/Result.php rename to app/default/src/Elasticsearch/ValueObject/Result.php diff --git a/src/Elasticsearch/ValueObject/Results.php b/app/default/src/Elasticsearch/ValueObject/Results.php similarity index 100% rename from src/Elasticsearch/ValueObject/Results.php rename to app/default/src/Elasticsearch/ValueObject/Results.php diff --git a/src/Elasticsearch/ValueObject/Sorter/DefaultSorter.php b/app/default/src/Elasticsearch/ValueObject/Sorter/DefaultSorter.php similarity index 100% rename from src/Elasticsearch/ValueObject/Sorter/DefaultSorter.php rename to app/default/src/Elasticsearch/ValueObject/Sorter/DefaultSorter.php diff --git a/src/Elasticsearch/ValueObject/Sorter/FactorSorterInterface.php b/app/default/src/Elasticsearch/ValueObject/Sorter/FactorSorterInterface.php similarity index 100% rename from src/Elasticsearch/ValueObject/Sorter/FactorSorterInterface.php rename to app/default/src/Elasticsearch/ValueObject/Sorter/FactorSorterInterface.php diff --git a/src/Elasticsearch/ValueObject/Sorter/RecommendedSorter.php b/app/default/src/Elasticsearch/ValueObject/Sorter/RecommendedSorter.php similarity index 100% rename from src/Elasticsearch/ValueObject/Sorter/RecommendedSorter.php rename to app/default/src/Elasticsearch/ValueObject/Sorter/RecommendedSorter.php diff --git a/src/Elasticsearch/ValueObject/Sorter/SorterInterface.php b/app/default/src/Elasticsearch/ValueObject/Sorter/SorterInterface.php similarity index 100% rename from src/Elasticsearch/ValueObject/Sorter/SorterInterface.php rename to app/default/src/Elasticsearch/ValueObject/Sorter/SorterInterface.php diff --git a/src/Enum/AbstractEnum.php b/app/default/src/Enum/AbstractEnum.php similarity index 100% rename from src/Enum/AbstractEnum.php rename to app/default/src/Enum/AbstractEnum.php diff --git a/src/Enum/Color.php b/app/default/src/Enum/Color.php similarity index 100% rename from src/Enum/Color.php rename to app/default/src/Enum/Color.php diff --git a/src/Enum/Index.php b/app/default/src/Enum/Index.php similarity index 100% rename from src/Enum/Index.php rename to app/default/src/Enum/Index.php diff --git a/src/EventSubscriber/PaginationEventSubscriber.php b/app/default/src/EventSubscriber/PaginationEventSubscriber.php similarity index 100% rename from src/EventSubscriber/PaginationEventSubscriber.php rename to app/default/src/EventSubscriber/PaginationEventSubscriber.php diff --git a/src/Kernel.php b/app/default/src/Kernel.php similarity index 100% rename from src/Kernel.php rename to app/default/src/Kernel.php diff --git a/src/Repository/AdditionalServiceRepositoryInterface.php b/app/default/src/Repository/AdditionalServiceRepositoryInterface.php similarity index 100% rename from src/Repository/AdditionalServiceRepositoryInterface.php rename to app/default/src/Repository/AdditionalServiceRepositoryInterface.php diff --git a/src/Repository/CarRepositoryInterface.php b/app/default/src/Repository/CarRepositoryInterface.php similarity index 100% rename from src/Repository/CarRepositoryInterface.php rename to app/default/src/Repository/CarRepositoryInterface.php diff --git a/src/Repository/InMemoryAdditionalServiceRepository.php b/app/default/src/Repository/InMemoryAdditionalServiceRepository.php similarity index 100% rename from src/Repository/InMemoryAdditionalServiceRepository.php rename to app/default/src/Repository/InMemoryAdditionalServiceRepository.php diff --git a/src/Twig/Extension/AppExtension.php b/app/default/src/Twig/Extension/AppExtension.php similarity index 100% rename from src/Twig/Extension/AppExtension.php rename to app/default/src/Twig/Extension/AppExtension.php diff --git a/src/ValueObject/AdditionalService.php b/app/default/src/ValueObject/AdditionalService.php similarity index 100% rename from src/ValueObject/AdditionalService.php rename to app/default/src/ValueObject/AdditionalService.php diff --git a/src/ValueObject/AdditionalServices.php b/app/default/src/ValueObject/AdditionalServices.php similarity index 100% rename from src/ValueObject/AdditionalServices.php rename to app/default/src/ValueObject/AdditionalServices.php diff --git a/src/ValueObject/Car.php b/app/default/src/ValueObject/Car.php similarity index 100% rename from src/ValueObject/Car.php rename to app/default/src/ValueObject/Car.php diff --git a/src/ValueObject/Cars.php b/app/default/src/ValueObject/Cars.php similarity index 100% rename from src/ValueObject/Cars.php rename to app/default/src/ValueObject/Cars.php diff --git a/src/ValueObject/Colors.php b/app/default/src/ValueObject/Colors.php similarity index 100% rename from src/ValueObject/Colors.php rename to app/default/src/ValueObject/Colors.php diff --git a/src/ValueObject/CriteriaInterface.php b/app/default/src/ValueObject/CriteriaInterface.php similarity index 100% rename from src/ValueObject/CriteriaInterface.php rename to app/default/src/ValueObject/CriteriaInterface.php diff --git a/src/ValueObject/CriterionInterface.php b/app/default/src/ValueObject/CriterionInterface.php similarity index 100% rename from src/ValueObject/CriterionInterface.php rename to app/default/src/ValueObject/CriterionInterface.php diff --git a/src/ValueObject/Id.php b/app/default/src/ValueObject/Id.php similarity index 100% rename from src/ValueObject/Id.php rename to app/default/src/ValueObject/Id.php diff --git a/src/ValueObject/Model.php b/app/default/src/ValueObject/Model.php similarity index 100% rename from src/ValueObject/Model.php rename to app/default/src/ValueObject/Model.php diff --git a/src/ValueObject/Name.php b/app/default/src/ValueObject/Name.php similarity index 100% rename from src/ValueObject/Name.php rename to app/default/src/ValueObject/Name.php diff --git a/src/ValueObject/Page.php b/app/default/src/ValueObject/Page.php similarity index 100% rename from src/ValueObject/Page.php rename to app/default/src/ValueObject/Page.php diff --git a/src/ValueObject/PagesTotal.php b/app/default/src/ValueObject/PagesTotal.php similarity index 89% rename from src/ValueObject/PagesTotal.php rename to app/default/src/ValueObject/PagesTotal.php index dcaf58a..e1a2bd3 100644 --- a/src/ValueObject/PagesTotal.php +++ b/app/default/src/ValueObject/PagesTotal.php @@ -5,12 +5,14 @@ final class PagesTotal { - private const MIN_PAGE = 1; + private const MIN_PAGE = 4; private int $value; public function __construct(PagesTotalAwareInterface $results, ResultsPerPage $resultsPerPage) { + $this->value = (int)floor($results->total() / $resultsPerPage->value()); + if ($resultsPerPage->value() > $results->total()) { $this->value = self::MIN_PAGE; } else { diff --git a/src/ValueObject/PagesTotalAwareInterface.php b/app/default/src/ValueObject/PagesTotalAwareInterface.php similarity index 100% rename from src/ValueObject/PagesTotalAwareInterface.php rename to app/default/src/ValueObject/PagesTotalAwareInterface.php diff --git a/src/ValueObject/Pagination.php b/app/default/src/ValueObject/Pagination.php similarity index 100% rename from src/ValueObject/Pagination.php rename to app/default/src/ValueObject/Pagination.php diff --git a/src/ValueObject/Phrase.php b/app/default/src/ValueObject/Phrase.php similarity index 100% rename from src/ValueObject/Phrase.php rename to app/default/src/ValueObject/Phrase.php diff --git a/src/ValueObject/Picture.php b/app/default/src/ValueObject/Picture.php similarity index 100% rename from src/ValueObject/Picture.php rename to app/default/src/ValueObject/Picture.php diff --git a/src/ValueObject/Producer.php b/app/default/src/ValueObject/Producer.php similarity index 100% rename from src/ValueObject/Producer.php rename to app/default/src/ValueObject/Producer.php diff --git a/src/ValueObject/ProductionYear.php b/app/default/src/ValueObject/ProductionYear.php similarity index 100% rename from src/ValueObject/ProductionYear.php rename to app/default/src/ValueObject/ProductionYear.php diff --git a/src/ValueObject/ResultsPerPage.php b/app/default/src/ValueObject/ResultsPerPage.php similarity index 100% rename from src/ValueObject/ResultsPerPage.php rename to app/default/src/ValueObject/ResultsPerPage.php diff --git a/src/ValueObject/SearchResponseInterface.php b/app/default/src/ValueObject/SearchResponseInterface.php similarity index 100% rename from src/ValueObject/SearchResponseInterface.php rename to app/default/src/ValueObject/SearchResponseInterface.php diff --git a/src/ValueObject/SearchResultsInterface.php b/app/default/src/ValueObject/SearchResultsInterface.php similarity index 100% rename from src/ValueObject/SearchResultsInterface.php rename to app/default/src/ValueObject/SearchResultsInterface.php diff --git a/symfony.lock b/app/default/symfony.lock similarity index 100% rename from symfony.lock rename to app/default/symfony.lock diff --git a/templates/base.html.twig b/app/default/templates/base.html.twig similarity index 100% rename from templates/base.html.twig rename to app/default/templates/base.html.twig diff --git a/templates/search/_includes/car.html.twig b/app/default/templates/search/_includes/car.html.twig similarity index 100% rename from templates/search/_includes/car.html.twig rename to app/default/templates/search/_includes/car.html.twig diff --git a/templates/search/_includes/filters.html.twig b/app/default/templates/search/_includes/filters.html.twig similarity index 100% rename from templates/search/_includes/filters.html.twig rename to app/default/templates/search/_includes/filters.html.twig diff --git a/templates/search/_includes/pagination.html.twig b/app/default/templates/search/_includes/pagination.html.twig similarity index 100% rename from templates/search/_includes/pagination.html.twig rename to app/default/templates/search/_includes/pagination.html.twig diff --git a/templates/search/_includes/services.html.twig b/app/default/templates/search/_includes/services.html.twig similarity index 100% rename from templates/search/_includes/services.html.twig rename to app/default/templates/search/_includes/services.html.twig diff --git a/templates/search/emptyList.html.twig b/app/default/templates/search/emptyList.html.twig similarity index 100% rename from templates/search/emptyList.html.twig rename to app/default/templates/search/emptyList.html.twig diff --git a/templates/search/list.html.twig b/app/default/templates/search/list.html.twig similarity index 100% rename from templates/search/list.html.twig rename to app/default/templates/search/list.html.twig diff --git a/docker/service/.env b/docker/service/.env new file mode 100644 index 0000000..7ae8fb6 --- /dev/null +++ b/docker/service/.env @@ -0,0 +1,20 @@ +# name of the project, if blank then docker sets it to a name of a dir that docker-compose.yaml is inside +COMPOSE_PROJECT_NAME=carrental + +# profile to run with docker-compose up (may be multiple separated by comma) makes docker-compose --profile flag not having any effect +# COMPOSE_PROFILES= + +# list of files to combine the total docker-compose.yaml (a kind of include files) +COMPOSE_FILE=_network.yaml:_restart-policy.yaml:_limit-memory.yaml:_service-dependency.yaml:_profiles.yaml:docker-compose.yaml:php-composer-v2.yaml:elasticsearch-v7.yaml:php-fpm-v8.yaml:nginx-v1.yaml + +# application path relative to the docker-compose.yaml file. +app_path=./../../app + +# Path where different service images, their files, Dockerfiles are stored (relative to the docker-compose.yaml) +service_path=. + +# path inside service_path where is Dockerfile and .env files stored +image_path=image + +# path inside service_path where all image files are stored ${service_path}/${image_files_path}/usr/share => /usr/share (path inside a container) +image_files_path=image/files diff --git a/docker/service/.gitignore b/docker/service/.gitignore new file mode 100644 index 0000000..16d6a7c --- /dev/null +++ b/docker/service/.gitignore @@ -0,0 +1 @@ +docker-compose.override.yaml \ No newline at end of file diff --git a/docker/service/README.md b/docker/service/README.md new file mode 100644 index 0000000..deffa9d --- /dev/null +++ b/docker/service/README.md @@ -0,0 +1,335 @@ +## Table of contents + +- [Project structure](#Project structure) +- [Projects context](#Projects context) + - [Specific to this application context](#Specific to this application context) + - [Generic service module context](#Generic service module context) + - [Copy a service module to any other project](#Copy a service module to any other project) + - [List of services modules](#List of services modules) + - [Service module volumes](#Service module volumes) + - [Service module variables](#Service module variables) + - [Service module volume has an application and module context](#Service module volume has an application and module context) + - [Merging two contexts](#Merging two contexts ) +- [Health checks](#Health checks) + - [Nginx](#Nginx) + - [Elasticsearch](#Elasticsearch) +- [Security](#Security) + - [Permissions](#Permissions) + - [Capabilities](#Capabilities) + - [Network](#Network) + - [Firewall](#Firewall) + - [Vulnerability scan](#Vulnerability scan) +- [Known Issues](#Known Issues) +- Typical errors and their reasons + - [Nginx page is loading forever](#Nginx page is loading forever) + - [Elasticsearch exits with code 125](#Elasticsearch exits with code 125) + + + +## Project structure + +There is a [dirlist.txt](./dirlist.txt) that shows all of the files. + +[^TOC^](#Table of contents) + +## Projects context + +There are two contexts in this project: + +- Specific to this application context +- Generic service module context + +[^TOC^](#Table of contents) + +### Specific to this application context + +All files that start with underscore + +``` +_limit-memory.yaml +_network.yaml +_profiles.yaml +_restart-policy.yaml +_service-dependency.yaml +``` + +have code related specifically to this application. + +for example [_service-dependency.yaml](_service-dependency.yaml) without comments: + +``` +services: + nginx-v1: + depends_on: + php-fpm-v8: + condition: service_started + elasticsearch-v7: + condition: service_healthy +``` + +defines that Nginx server container should not run unless service `php-fpm-v8` started and service `elasticsearch-v7` started and reported its status as healthy. + +It makes no sense to run Nginx for this application unless it is able to pass requests to the PHP-FPM and make requests to the Elasticsearch service. + +All of the services: `nginx-v1`, `php-fpm-v8` and `elasticsearch-v7` may work independently from each other in a different application. For example + +- `nginx-v1` may serve only static files or work as a load balancer. +- `php-fpm-v8` may respond to other service's requests. +- `elasticsearch-v7` may be used only for Kibana. + +Therefore their dependency is specific for this project and put in a separate file [_service-dependency.yaml](_service-dependency.yaml) instead of putting the `depends_on` key into each of these service's yaml file. + +[^TOC^](#Table of contents) + +### Generic service module context + +The key to understand that context is to focus on two words: `generic` and `module`. + +The intention for this context is to be able to copy any service module and with minimal (perfectly none) modification have a base service for other application that may completely differ from this one. + +Every module consist of two things: + +- service directory +- service yaml file named the same as directory. + +#### Copy a service module to any other project + +If you want to copy elasticsearch-v7 module to your application then remember to copy the `elasticsearch-v7` directory and corresponding to it `elasticsearch-v7.yaml` file. + +Currently docker does not support paths relative other than relative to the main docker-compose.yaml file therefore it would make a confusion if `elasticsearch-v7.yaml` file were put inside `elasticsearch-v7` directory and still need to use a path that is a relative to the `docker/service` dir. + +[^TOC^](#Table of contents) + +#### List of services modules + +``` +├── [DIR ] elasticsearch-v7 +├── [5.1K] elasticsearch-v7.yaml +├── [DIR ] nginx-v1 +├── [4.4K] nginx-v1.yaml +├── [DIR ] php-composer-v2 +├── [1.2K] php-composer-v2.yaml +├── [DIR ] php-fpm-v8 +├── [ 767] php-fpm-v8.yaml +``` + +There is a naming convention that every service module dir has a suffix of the **major only** version. + +The reason is that for example `elasticsearch-v7` has the suffix `v7` so if currently Elasticsearch is used with the exact version `7.17.1` then having only the major version as a suffix allows you to bump the version number as long it does not brake compatibility and without any need to update dir name. + +An additional benefit of that suffix is that you may have at the same project `elasticsearch-v7` and `elasticsearch-v8` without any conflicts and upgrade or downgrade them as you wish. + +[^TOC^](#Table of contents) + +#### Service module volumes + +Example dir tree of `nginx-v1`: + +``` +. +└── [DIR ] image + ├── [ 19] .dockerignore + ├── [ 0] .env.dev + ├── [ 19] .gitignore + ├── [ 602] Dockerfile + └── [DIR ] files + ├── [DIR ] etc + │   └── [DIR ] nginx + │   ├── [DIR ] conf.d + │   │   └── [ 894] default.conf + │   ├── [1007] fastcgi_params + │   ├── [2.8K] koi-utf + │   ├── [2.2K] koi-win + │   ├── [5.1K] mime.types + │   ├── [ 22] modules -> /usr/lib/nginx/modules + │   ├── [1.0K] nginx.conf + │   ├── [ 636] scgi_params + │   ├── [ 664] uwsgi_params + │   └── [3.5K] win-utf + └── [ 166] site.conf +``` + +All image files are stored in the subdir `image`, so you may add other related files like manuals into the dir of the `nginx-v1` service but without confusion if building an image from that service should have them or not. Simply - if files are in the `image` subdir then they are a subject of the build context. + +`image/files` subdir has all of the files that should be either copied to the image by the Dockerfile `COPY` command or they should be mounted by a mount point. Important convention here is that all the files are in the directories that exactly mimic the file structure of the container that will be run from the image you build for example: + +| HOST dir | Container dir | +| -------------------------- | ------------- | +| ./nginx-v1/files/etc/nginx | /etc/nginx | + +Sticking to this convention you will never have any doubts where files are mounted. + +#### Service module variables + +An example [php-fpm-v8.yaml](./php-fpm-v8.yaml) without comments: + +``` +version: "3.7" +services: + php-fpm-v8: + image: ${COMPOSE_PROJECT_NAME}_php:8.1.3-fpm-buster + build: + context: ${service_path:-.}/php-fpm-v8/${image_path} + args: + image: php:8.1.3-fpm-buster + shm_size: '2gb' + target: dev + + env_file: + - "${service_path:-.}/php-fpm-v8/${image_path}/.env.dev" + + user: ${uid:-1000}:${gid:-1000} + + volumes: + - ${app_path:-./app}:/usr/share/nginx/html +``` + +makes as any other service module use of variables: + +- `${COMPOSE_PROJECT_NAME}` that is defined in the [.env](./.env) file and is `carrental` so all service's modules images for this project will have prefix of `carrental_` +- `${service_path:-.}` - defaults to the current directory `docker/service` but may be changed in the [.env](./.env) file. This is the path where docker-compose will look for the dir's of service modules for building them as well as for their dedictated env files. +- `user: ${uid:-1000}:${gid:-1000}` defines the user id and group id of the user that runs the image. For the images that have their own custom Dockerfile like [php-composer-v2/image/Dockerfile](./php-composer-v2/image/Dockerfile) the user id and group id is used for the image build. + +[^TOC^](#Table of contents) + +#### Service module volume has an application and module context + +``` + volumes: + - ${app_path:-./app}:/usr/share/nginx/html +``` + +Since they define both source (HOST) and destination (Container) mount points you need to decide if you want to have them inside a service module [php-fpm-v8.yaml](./php-fpm-v8.yaml) or create new application context file for eg. `_volumes.yaml` and put volumes definition there. + +Because some of the services need volumes or bind points for their basic operation (persistent storage for databases) and their paths differ for every service then a decision was made to put volumes inside the service module so if you copy it to another project then you will always have the bare minimum paths on the service side defined and will need to adjust the host side to your needs. That seems to be more reasonable then searching over all of your projects where a particular service was used in order to acquire a knowledge about required paths for its persistence. + +[^TOC^](#Table of contents) + +### Merging two contexts + +The [.env](./.env) file has the entry: + +``` +COMPOSE_FILE=_network.yaml:_restart-policy.yaml:_limit-memory.yaml:_service-dependency.yaml:_profiles.yaml:docker-compose.yaml:php-composer-v2.yaml:elasticsearch-v7.yaml:php-fpm-v8.yaml:nginx-v1.yaml +``` + +That has a list of yaml files that are merged when you run for example: + +```sh +docker-compose up +``` + +removing a file from that variable will result in not having it in the merged version that is used by the `docker-compose` to run this app. + +However using [_profiles.yaml](./_profiles.yaml) is much more elegant way to have particular services up. Read about: **Run a specific profile** section of the [../../README.md](../../README.md) + +[^TOC^](#Table of contents) + +## Health checks + +They are implemented in the services' Dockerfiles + + +### Nginx +[Dockerfile](./nginx-v1/image/Dockerfile) + +Nginx in the free version don't have any sophisticated health check endpoint therefore a simple one was defined in its [default.conf](./nginx-v1/image/files/etc/nginx/conf.d/default.conf) + +[^TOC^](#Table of contents) + +### Elasticsearch + +[Dockerfile](./elasticsearch-v7/image/Dockerfile) + +This sevice has a health check endpoint defined by its vendor. Note that for a single node configuration the health check status as per documentation will never be `green` but at most operable state it will be `yellow`. + +If Elasticsearch is in multi node mode then the health check's status may be `green` or `yellow` depending on the number of nodes that are ok. + +Current health check implementation returns status healthy in case either `green` or `yellow`. + +[^TOC^](#Table of contents) + + +## Security + +### Permissions + +Do not run these containers as `root`, there was a significant effort done in order to make them work as a regular user. You may change the user to any and run the `setup.sh` script so it will change the file permissions of all of the files and initialize Elasticsearch db for you. + +However if for any reason you want to run this application as a `root` then all you need is to call `setup.sh` script with `sudo` in front of it. + +[^TOC^](#Table of contents) + +### Capabilities + +Look at the [nginx-v1.yaml](#./nginx-v1.yaml) `cap_drop` and `cap_add` sections. + +Do not underestimate the importance of having at least basic security features implemented. + +If you are going do develop your application then play with these values as described in the comments because no one better knows than you if your application is working as expected when restrictions are applied. + +For some of the services adding limitations of the capabilities is a piece of cake. Try it! + +[^TOC^](#Table of contents) + +### Network + +For your convenience the `elasticsearch-v7` service is available under the host's `localhost`. When releasing this application to the public domain, remember about disabling that by making the `backend` network internal in [_network.yaml](./_network.yaml) + +[^TOC^](#Table of contents) + +#### Firewall + +It would not hurt to use a firewall for the services. You may use UFW or IPTables to limit the exposure of the services since if an image exposes any port it is currently not supported by docker to override that with your own Dockerfile and disable a port exposure. + +[^TOC^](#Table of contents) + + +### Vulnerability scan + +It is complety up to you to do it. No scan was made. + +[^TOC^](#Table of contents) + +## Known Issues + +`-` or `.` is not allowed for the variable name + +`-` or `.` is not allowed for the variable value, workaround to put value between a single quote `'` or double quote `"` results in passing that variable with the quotes (not just with the content between them). + +[^TOC^](#Table of contents) + +## Typical errors and their reasons + +### Nginx page is loading forever + +or log error: + +> nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) + +solution: + +make sure that nginx has at least minimum permissions in its service yaml: + +```yaml +cap_drop: + - ALL + +cap_add: + - CAP_CHOWN + - CAP_DAC_OVERRIDE + - CAP_DAC_READ_SEARCH + - CAP_FOWNER + - CAP_SETGID + - CAP_SETUID +``` + +[^TOC^](#Table of contents) + +### Elasticsearch exits with code 125 + +**Solution** + +Elasticsearch don't have enough permissions to access its files. + +[^TOC^](#Table of contents) \ No newline at end of file diff --git a/docker/service/_limit-memory.yaml b/docker/service/_limit-memory.yaml new file mode 100644 index 0000000..80a137f --- /dev/null +++ b/docker/service/_limit-memory.yaml @@ -0,0 +1,7 @@ +version: "3.7" + +# memory limits +services: + elasticsearch-v7: + environment: + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # The ES_JAVA_OPTS variable overrides all other JVM options. We do not recommend using ES_JAVA_OPTS in production. diff --git a/docker/service/_network.yaml b/docker/service/_network.yaml new file mode 100644 index 0000000..461b795 --- /dev/null +++ b/docker/service/_network.yaml @@ -0,0 +1,52 @@ +version: "3.7" + +# https://docs.docker.com/compose/compose-file/compose-file-v3/#network-configuration-reference +# https://docs.docker.com/compose/compose-file/compose-file-v3/#internal + +# Note that only nginx-v1 is connected to the frontend and +# backend network. +# All other services are connected to the backend network only. +# Backend network is set as internal, therefore Nginx service +# is the only entry point for the incoming requests. + +services: + nginx-v1: + ports: + - "9090:80" + networks: + - frontend + - backend + + php-fpm-v8: + environment: + + # Env is here because it is specific to this project but not to the php-fpm service in general. + # also you have here defined networking therefore creation of env that will hold url shows you + # interconnection that happens in the networks. + # + - "DOCKER_ELASTICSEARCH_HOST=http://elasticsearch-v7:9200" + + networks: + - backend + elasticsearch-v7: + # potentially redundant - no need to specify + networks: + - backend + ports: + - 9200:9200 + + php-composer-v2: + environment: + + # Composer needs Elasticsearch host for sending requests by init.sh and request.sh + # + - "DOCKER_ELASTICSEARCH_HOST=http://elasticsearch-v7:9200" + + networks: + - backend + +networks: + frontend: + internal: false + backend: + internal: false # change to true if you don't want that network to be accesible from the HOST \ No newline at end of file diff --git a/docker/service/_profiles.yaml b/docker/service/_profiles.yaml new file mode 100644 index 0000000..e69a6d4 --- /dev/null +++ b/docker/service/_profiles.yaml @@ -0,0 +1,52 @@ +version: "3.7" + +# https://docs.docker.com/compose/compose-file/compose-file-v3/#profiles + +# If you start a single profile for eg. cli +# +# docker-compose --profile cli up --build +# +# but you see that besides cli (composer) many +# other conainers are also runnig then you need to +# stop all of the containers [Ctrl]+[c] or: +# +# docker-compose stop +# +# and run: +# +# docker-compose down --remove-orphans +# +# to remove them before runing that cli profile +# If you run: +# +# docker ps -a +# +# and don't see any containers then running +# +# docker-compose --profile cli up --build +# +# should make only the cli profile (composer) running. + +services: + nginx-v1: + profiles: + - dev + - prod + - web + + php-fpm-v8: + profiles: + - dev + - prod + - web + + elasticsearch-v7: + profiles: + - dev + - prod + - db + + php-composer-v2: + profiles: + - dev + - cli diff --git a/docker/service/_restart-policy.yaml b/docker/service/_restart-policy.yaml new file mode 100644 index 0000000..1af11a6 --- /dev/null +++ b/docker/service/_restart-policy.yaml @@ -0,0 +1,16 @@ +version: "3.7" + +# https://docs.docker.com/compose/compose-file/compose-file-v3/#restart + +services: + nginx-v1: + restart: unless-stopped + + php-fpm-v8: + restart: unless-stopped + + elasticsearch-v7: + restart: unless-stopped + + php-composer-v2: + restart: unless-stopped \ No newline at end of file diff --git a/docker/service/_service-dependency.yaml b/docker/service/_service-dependency.yaml new file mode 100644 index 0000000..13b1434 --- /dev/null +++ b/docker/service/_service-dependency.yaml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + nginx-v1: + depends_on: + + # Service nginx-v1 will be created + # but will be not started unless + # php-fpm-v8 is started and + # elasticsearch-v7 reports healthy status + + # Available conditions: + # service_started + # service_healthy # requies implementation of healthcheck - see Dockerfile of Nginx or Elasticsearch + # service_completed_successfully + + php-fpm-v8: + condition: service_started + + elasticsearch-v7: + condition: service_healthy diff --git a/docker/service/dirlist.txt b/docker/service/dirlist.txt new file mode 100644 index 0000000..2a3e9ef --- /dev/null +++ b/docker/service/dirlist.txt @@ -0,0 +1,107 @@ +. +├── [1.0K] .env +├── [ 28] .gitignore +├── [6.4K] README.md +├── [ 235] _limit-memory.yaml +├── [1.4K] _network.yaml +├── [ 902] _profiles.yaml +├── [ 280] _restart-policy.yaml +├── [ 540] _service-dependency.yaml +├── [ 0] dirlist.txt +├── [ 342] docker-compose.yaml +├── [DIR ] elasticsearch-v7 +│   └── [DIR ] image +│   ├── [ 70] .dockerignore +│   ├── [ 462] .env.dev +│   ├── [ 363] Dockerfile +│   └── [DIR ] files +│   └── [DIR ] usr +│   └── [DIR ] share +│   └── [DIR ] elasticsearch +│   └── [DIR ] config +│   ├── [1.0K] elasticsearch-plugins.example.yml +│   ├── [ 199] elasticsearch.keystore +│   ├── [ 53] elasticsearch.yml +│   ├── [3.2K] jvm.options +│   ├── [DIR ] jvm.options.d +│   ├── [ 19K] log4j2.file.properties +│   ├── [ 10K] log4j2.properties +│   ├── [ 473] role_mapping.yml +│   ├── [ 197] roles.yml +│   ├── [ 0] users +│   └── [ 0] users_roles +├── [5.1K] elasticsearch-v7.yaml +├── [DIR ] nginx-v1 +│   └── [DIR ] image +│   ├── [ 19] .dockerignore +│   ├── [ 0] .env.dev +│   ├── [ 19] .gitignore +│   ├── [ 602] Dockerfile +│   └── [DIR ] files +│   ├── [DIR ] etc +│   │   └── [DIR ] nginx +│   │   ├── [DIR ] conf.d +│   │   │   └── [ 894] default.conf +│   │   ├── [1007] fastcgi_params +│   │   ├── [2.8K] koi-utf +│   │   ├── [2.2K] koi-win +│   │   ├── [5.1K] mime.types +│   │   ├── [ 22] modules -> /usr/lib/nginx/modules +│   │   ├── [1.0K] nginx.conf +│   │   ├── [ 636] scgi_params +│   │   ├── [ 664] uwsgi_params +│   │   └── [3.5K] win-utf +│   └── [ 166] site.conf +├── [4.4K] nginx-v1.yaml +├── [DIR ] php-composer-v2 +│   ├── [ 0] .env.dev +│   └── [DIR ] image +│   └── [ 684] Dockerfile +├── [1.2K] php-composer-v2.yaml +├── [DIR ] php-fpm-v8 +│   └── [DIR ] image +│   ├── [ 28] .dockerignore +│   ├── [ 31] .env.dev +│   ├── [ 28] Dockerfile +│   └── [DIR ] files +│   └── [DIR ] usr +│   └── [DIR ] local +│   └── [DIR ] etc +│   └── [DIR ] php +│   ├── [DIR ] conf.d +│   │   ├── [ 20] docker-php-ext-bcmath.ini +│   │   ├── [ 22] docker-php-ext-calendar.ini +│   │   ├── [ 17] docker-php-ext-dba.ini +│   │   ├── [ 18] docker-php-ext-exif.ini +│   │   ├── [ 16] docker-php-ext-gd.ini +│   │   ├── [ 21] docker-php-ext-gettext.ini +│   │   ├── [ 21] docker-php-ext-imagick.ini +│   │   ├── [ 21] docker-php-ext-mongodb.ini +│   │   ├── [ 20] docker-php-ext-mysqli.ini +│   │   ├── [ 82] docker-php-ext-opcache.ini +│   │   ├── [ 19] docker-php-ext-pcntl.ini +│   │   ├── [ 23] docker-php-ext-pdo_mysql.ini +│   │   ├── [ 23] docker-php-ext-pdo_pgsql.ini +│   │   ├── [ 19] docker-php-ext-pgsql.ini +│   │   ├── [ 20] docker-php-ext-pspell.ini +│   │   ├── [ 19] docker-php-ext-shmop.ini +│   │   ├── [ 18] docker-php-ext-soap.ini +│   │   ├── [ 21] docker-php-ext-sockets.ini +│   │   ├── [ 20] docker-php-ext-sodium.ini +│   │   ├── [ 17] docker-php-ext-svm.ini +│   │   ├── [ 21] docker-php-ext-sysvmsg.ini +│   │   ├── [ 21] docker-php-ext-sysvsem.ini +│   │   ├── [ 21] docker-php-ext-sysvshm.ini +│   │   ├── [ 18] docker-php-ext-tidy.ini +│   │   ├── [ 20] docker-php-ext-trader.ini +│   │   ├── [ 18] docker-php-ext-wddx.ini +│   │   ├── [ 20] docker-php-ext-xmlrpc.ini +│   │   ├── [ 17] docker-php-ext-xsl.ini +│   │   ├── [ 17] docker-php-ext-zip.ini +│   │   └── [ 103] php.ini +│   ├── [ 69K] php.ini-development +│   └── [ 69K] php.ini-production +├── [ 767] php-fpm-v8.yaml +└── [2.5K] setup.sh + +24 directories, 81 files diff --git a/docker/service/docker-compose.yaml b/docker/service/docker-compose.yaml new file mode 100644 index 0000000..bfea030 --- /dev/null +++ b/docker/service/docker-compose.yaml @@ -0,0 +1,9 @@ +version: "3.7" + +#TODO use variables instead of ./app dir for volumes perhaps save it in +#TODO use ulimits https://youtu.be/PWUuyDrqvt0?t=199 +#TODO move volumes to separate files + +# this is good place for anchors that you later may use a substitution for aliases + +#TODO https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ \ No newline at end of file diff --git a/docker/service/elasticsearch-v7.yaml b/docker/service/elasticsearch-v7.yaml new file mode 100644 index 0000000..b18eb6f --- /dev/null +++ b/docker/service/elasticsearch-v7.yaml @@ -0,0 +1,111 @@ +version: "3.7" + +services: + elasticsearch-v7: + + # https://docs.docker.com/compose/reference/envvars/ + + # The image key makes use of the ${COMPOSE_PROJECT_NAME} var + # defined in the .env file so this provides consistent naming + # of the images stored at your machine and allows to list + # only these images that are related to this project by + # docker image ls | grep 'carrental_' + # + image: ${COMPOSE_PROJECT_NAME}_elasticsearch:7.17.1 + + # https://docs.docker.com/compose/compose-file/compose-file-v3/#build + + build: + + # Context is the place where docker-compose may find Dockerfile + # note that there is also .dockerignore that lists paths that + # should not be loaded by the build command into memory when + # building the image from the Dockerfile. + # If there are big files there (logs, database data) + # you may fail building the image because of running out of the RAM + # Sending files to RAM as the build context is only required + # if you want to use these files inside image for eg. by COPY command + # + context: ${service_path:-.}/elasticsearch-v7/${image_path} + args: + + # https://docs.docker.com/engine/reference/builder/#arg + + # The Elasticsearch Dockerfile has ARG image + # that consumes the value from here for the build. + # + image: docker.elastic.co/elasticsearch/elasticsearch:7.17.1@sha256:35f81ab02dda48d6f81ad9be52b25cdbd3a832e8660b48218af805d6de3ddba8 + + shm_size: '2gb' + + # https://docs.docker.com/develop/develop-images/multistage-build/ + + target: dev + + #BUGFIX - docker-compose does not support variables with dot (.) or underscore (_) in name or as a values in the .env files - these values must be defined here + environment: + - discovery.type=single-node + - node.name=elasticsearch + - include_type_name=true + + # Points to blank .env.dev file due to the #BUGFIX as above. + # + env_file: + - "${service_path:-.}/elasticsearch-v7/${image_path}/.env.dev" + + # https://docs.docker.com/compose/compose-file/compose-file-v3/#healthcheck + + # You may override here the healthcheck periods defined in the Dockerfie + # typically it takes around 30 seconds for Elasticsearch to start so + # the start period should be at least that or more in case of using any + # plugins or having a lot of data. + # + # healthcheck: + # start_period: 1m + # interval: 2s + # timeout: 3s + # retries: 3 + + # As per documentation Elastisearch is running by default as user 1000 and group 0 + # You should be fine using your own user id with a fallback to 1000 in case you did not populate uid variable + # but at least the Elasticsearch's user should have group 0 or be added to the 0 group + # Not setting the user:group id here correctly usually results in Elasticserach exiting with the code 125 + # + user: ${uid:-1000}:0 + + #TODO - make your capabilities restrictions for that service + # take nginx-v1 service as an example and check if you may + # limit the capabilities even further. + # who knows, maybe you may grant zero capabilities and this + # service will still work without any problem? + # Take that seriously and look above at the user: ${uid:-1000}:0 + # that means Elasticsearch has the grup id = 0 (admin) + # Should that user be able to use all capabilities? Probably not. + # + # cap_drop: + # - ALL + + # cap_add: + + + # https://docs.docker.com/compose/compose-file/compose-file-v3/#variable-substitution + + # Note the subtitution to dot (.) in case var service_path is not set + # then path will be relative to docker-compose.yaml: ./elasticsearch-v7/... + # instead of absolute: /elasticsearch-v7/... + # Below are short form volumes (bind mounts specifically) that in case of + # missing directory at the HOST machine create that dir with the root access rights. + # Therefore it is important to remove the possibility for docker engine to mess + # with your HOST system files by creating any directories that are starting from the root (/) path. + # With substitution to dot (.) paths will always be relative to the docker-compose.yaml + # unless you set service_path to an absolute path (starting from /) + # You may turn off this auto directory creation by using long form bind mounts + # that access only already existing directories at HOST and don't create new ones. + # Note that data and logs are read and write (:rw) access for the container but config and plugin + # are read only (:ro) because there is no need for the container to save into them but just read them. + # + volumes: + - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/data:/usr/share/elasticsearch/data:rw + - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/logs/:/usr/share/elasticsearch/logs/:rw + - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/config/:/usr/share/elasticsearch/config/:ro + - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/plugins/:/usr/share/elasticsearch/plugins/:ro diff --git a/docker/service/elasticsearch-v7/image/.dockerignore b/docker/service/elasticsearch-v7/image/.dockerignore new file mode 100644 index 0000000..4d816e4 --- /dev/null +++ b/docker/service/elasticsearch-v7/image/.dockerignore @@ -0,0 +1,2 @@ +files/usr/share/elasticsearch/data +files/usr/share/elasticsearch/logs diff --git a/docker/service/elasticsearch-v7/image/.env.dev b/docker/service/elasticsearch-v7/image/.env.dev new file mode 100644 index 0000000..477b12f --- /dev/null +++ b/docker/service/elasticsearch-v7/image/.env.dev @@ -0,0 +1,10 @@ +# BUG unexpected character "." in variable name near "discovery.type=\"single-node\"\n# node.name=\"elasticsearch\"\n# include_type_name=\"true\"" +# it worked fine with the old version of docker and docker-compose. +# quoting the variable name did not help +# now moved to the .yaml +# potential solution https://github.com/laradock/laradock/issues/3076#issuecomment-1017484349 + + +# discovery.type="single-node" +# node.name="elasticsearch" +# include_type_name="true" \ No newline at end of file diff --git a/docker/service/elasticsearch-v7/image/Dockerfile b/docker/service/elasticsearch-v7/image/Dockerfile new file mode 100644 index 0000000..6e7a8c1 --- /dev/null +++ b/docker/service/elasticsearch-v7/image/Dockerfile @@ -0,0 +1,14 @@ +ARG image +#TODO - shold from image dev be above or below dockerfile code? + +FROM $image AS dev + +RUN apt-get update && apt-get install -y curl && apt-get clean + +HEALTHCHECK \ +--start-period=60s \ +--interval=2s \ +--retries=3 \ +--timeout=2000ms \ +CMD /bin/sh -c \ +"curl --fail -s http://localhost:9200/_cat/health | cut -d' ' -f4 | grep -qE 'yellow|green' || exit 1" diff --git a/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml b/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml new file mode 100644 index 0000000..b6874e9 --- /dev/null +++ b/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml @@ -0,0 +1,27 @@ +# Rename this file to `elasticsearch-plugins.yml` to use it. +# +# All plugins must be listed here. If you add a plugin to this list and run +# `elasticsearch-plugin sync`, that plugin will be installed. If you remove +# a plugin from this list, that plugin will be removed when Elasticsearch +# next starts. + +plugins: + # Each plugin must have an ID. Plugins with only an ID are official plugins and will be downloaded from Elastic. + - id: example-id + + # Plugins can be specified by URL (it doesn't have to be HTTP, you could use e.g. `file:`) + - id: example-with-url + location: https://some.domain/path/example4.zip + + # Or by maven coordinates: + - id: example-with-maven-url + location: org.elasticsearch.plugins:example-plugin:1.2.3 + + # A proxy can also be configured per-plugin, if necessary + - id: example-with-proxy + location: https://some.domain/path/example.zip + proxy: https://some.domain:1234 + +# Configures a proxy for all network access. Remove this if you don't need +# to use a proxy. +proxy: https://some.domain:1234 diff --git a/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.keystore b/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.keystore new file mode 100644 index 0000000000000000000000000000000000000000..a093a2f5c2cd8544d260526ac4cff61a6ad24064 GIT binary patch literal 199 zcmcD&o+B=nnv+;ul9^nbnpl*ap_iRnSzMA|l*+)szyib!lY!WwK&$9ijm4bbH+wsr zd|&QxkttP<%l>7w=O)+o83LYt=@)pS_f#D^@5cQ>a(>?mKl{`7-n(~e>UJ(UB%pH0 z@a!$189Xhm2Qp*7E_lkhJZ~$IZylGElOSeg;i6f8j{D2XYjaZXzvhm7W%ai?;^vMW wT6@ZSdjDLRz##rTPO|*vpN-Y)I64gGh*U>eyEDBwpfULc& utf8 map: it does not contain +# box-drawing and some other characters. Besides this map contains +# several koi8-u and Byelorussian letters which are not in koi8-r. +# If you need a full and standard map, use contrib/unicode2nginx/koi-utf +# map instead. + +charset_map koi8-r utf-8 { + + 80 E282AC ; # euro + + 95 E280A2 ; # bullet + + 9A C2A0 ; #   + + 9E C2B7 ; # · + + A3 D191 ; # small yo + A4 D194 ; # small Ukrainian ye + + A6 D196 ; # small Ukrainian i + A7 D197 ; # small Ukrainian yi + + AD D291 ; # small Ukrainian soft g + AE D19E ; # small Byelorussian short u + + B0 C2B0 ; # ° + + B3 D081 ; # capital YO + B4 D084 ; # capital Ukrainian YE + + B6 D086 ; # capital Ukrainian I + B7 D087 ; # capital Ukrainian YI + + B9 E28496 ; # numero sign + + BD D290 ; # capital Ukrainian soft G + BE D18E ; # capital Byelorussian short U + + BF C2A9 ; # (C) + + C0 D18E ; # small yu + C1 D0B0 ; # small a + C2 D0B1 ; # small b + C3 D186 ; # small ts + C4 D0B4 ; # small d + C5 D0B5 ; # small ye + C6 D184 ; # small f + C7 D0B3 ; # small g + C8 D185 ; # small kh + C9 D0B8 ; # small i + CA D0B9 ; # small j + CB D0BA ; # small k + CC D0BB ; # small l + CD D0BC ; # small m + CE D0BD ; # small n + CF D0BE ; # small o + + D0 D0BF ; # small p + D1 D18F ; # small ya + D2 D180 ; # small r + D3 D181 ; # small s + D4 D182 ; # small t + D5 D183 ; # small u + D6 D0B6 ; # small zh + D7 D0B2 ; # small v + D8 D18C ; # small soft sign + D9 D18B ; # small y + DA D0B7 ; # small z + DB D188 ; # small sh + DC D18D ; # small e + DD D189 ; # small shch + DE D187 ; # small ch + DF D18A ; # small hard sign + + E0 D0AE ; # capital YU + E1 D090 ; # capital A + E2 D091 ; # capital B + E3 D0A6 ; # capital TS + E4 D094 ; # capital D + E5 D095 ; # capital YE + E6 D0A4 ; # capital F + E7 D093 ; # capital G + E8 D0A5 ; # capital KH + E9 D098 ; # capital I + EA D099 ; # capital J + EB D09A ; # capital K + EC D09B ; # capital L + ED D09C ; # capital M + EE D09D ; # capital N + EF D09E ; # capital O + + F0 D09F ; # capital P + F1 D0AF ; # capital YA + F2 D0A0 ; # capital R + F3 D0A1 ; # capital S + F4 D0A2 ; # capital T + F5 D0A3 ; # capital U + F6 D096 ; # capital ZH + F7 D092 ; # capital V + F8 D0AC ; # capital soft sign + F9 D0AB ; # capital Y + FA D097 ; # capital Z + FB D0A8 ; # capital SH + FC D0AD ; # capital E + FD D0A9 ; # capital SHCH + FE D0A7 ; # capital CH + FF D0AA ; # capital hard sign +} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/koi-win b/docker/service/nginx-v1/image/files/etc/nginx/koi-win new file mode 100644 index 0000000..72afabe --- /dev/null +++ b/docker/service/nginx-v1/image/files/etc/nginx/koi-win @@ -0,0 +1,103 @@ + +charset_map koi8-r windows-1251 { + + 80 88 ; # euro + + 95 95 ; # bullet + + 9A A0 ; #   + + 9E B7 ; # · + + A3 B8 ; # small yo + A4 BA ; # small Ukrainian ye + + A6 B3 ; # small Ukrainian i + A7 BF ; # small Ukrainian yi + + AD B4 ; # small Ukrainian soft g + AE A2 ; # small Byelorussian short u + + B0 B0 ; # ° + + B3 A8 ; # capital YO + B4 AA ; # capital Ukrainian YE + + B6 B2 ; # capital Ukrainian I + B7 AF ; # capital Ukrainian YI + + B9 B9 ; # numero sign + + BD A5 ; # capital Ukrainian soft G + BE A1 ; # capital Byelorussian short U + + BF A9 ; # (C) + + C0 FE ; # small yu + C1 E0 ; # small a + C2 E1 ; # small b + C3 F6 ; # small ts + C4 E4 ; # small d + C5 E5 ; # small ye + C6 F4 ; # small f + C7 E3 ; # small g + C8 F5 ; # small kh + C9 E8 ; # small i + CA E9 ; # small j + CB EA ; # small k + CC EB ; # small l + CD EC ; # small m + CE ED ; # small n + CF EE ; # small o + + D0 EF ; # small p + D1 FF ; # small ya + D2 F0 ; # small r + D3 F1 ; # small s + D4 F2 ; # small t + D5 F3 ; # small u + D6 E6 ; # small zh + D7 E2 ; # small v + D8 FC ; # small soft sign + D9 FB ; # small y + DA E7 ; # small z + DB F8 ; # small sh + DC FD ; # small e + DD F9 ; # small shch + DE F7 ; # small ch + DF FA ; # small hard sign + + E0 DE ; # capital YU + E1 C0 ; # capital A + E2 C1 ; # capital B + E3 D6 ; # capital TS + E4 C4 ; # capital D + E5 C5 ; # capital YE + E6 D4 ; # capital F + E7 C3 ; # capital G + E8 D5 ; # capital KH + E9 C8 ; # capital I + EA C9 ; # capital J + EB CA ; # capital K + EC CB ; # capital L + ED CC ; # capital M + EE CD ; # capital N + EF CE ; # capital O + + F0 CF ; # capital P + F1 DF ; # capital YA + F2 D0 ; # capital R + F3 D1 ; # capital S + F4 D2 ; # capital T + F5 D3 ; # capital U + F6 C6 ; # capital ZH + F7 C2 ; # capital V + F8 DC ; # capital soft sign + F9 DB ; # capital Y + FA C7 ; # capital Z + FB D8 ; # capital SH + FC DD ; # capital E + FD D9 ; # capital SHCH + FE D7 ; # capital CH + FF DA ; # capital hard sign +} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/mime.types b/docker/service/nginx-v1/image/files/etc/nginx/mime.types new file mode 100644 index 0000000..2961256 --- /dev/null +++ b/docker/service/nginx-v1/image/files/etc/nginx/mime.types @@ -0,0 +1,97 @@ + +types { + text/html html htm shtml; + text/css css; + text/xml xml; + image/gif gif; + image/jpeg jpeg jpg; + application/javascript js; + application/atom+xml atom; + application/rss+xml rss; + + text/mathml mml; + text/plain txt; + text/vnd.sun.j2me.app-descriptor jad; + text/vnd.wap.wml wml; + text/x-component htc; + + image/png png; + image/svg+xml svg svgz; + image/tiff tif tiff; + image/vnd.wap.wbmp wbmp; + image/webp webp; + image/x-icon ico; + image/x-jng jng; + image/x-ms-bmp bmp; + + font/woff woff; + font/woff2 woff2; + + application/java-archive jar war ear; + application/json json; + application/mac-binhex40 hqx; + application/msword doc; + application/pdf pdf; + application/postscript ps eps ai; + application/rtf rtf; + application/vnd.apple.mpegurl m3u8; + application/vnd.google-earth.kml+xml kml; + application/vnd.google-earth.kmz kmz; + application/vnd.ms-excel xls; + application/vnd.ms-fontobject eot; + application/vnd.ms-powerpoint ppt; + application/vnd.oasis.opendocument.graphics odg; + application/vnd.oasis.opendocument.presentation odp; + application/vnd.oasis.opendocument.spreadsheet ods; + application/vnd.oasis.opendocument.text odt; + application/vnd.openxmlformats-officedocument.presentationml.presentation + pptx; + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + xlsx; + application/vnd.openxmlformats-officedocument.wordprocessingml.document + docx; + application/vnd.wap.wmlc wmlc; + application/x-7z-compressed 7z; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/xhtml+xml xhtml; + application/xspf+xml xspf; + application/zip zip; + + application/octet-stream bin exe dll; + application/octet-stream deb; + application/octet-stream dmg; + application/octet-stream iso img; + application/octet-stream msi msp msm; + + audio/midi mid midi kar; + audio/mpeg mp3; + audio/ogg ogg; + audio/x-m4a m4a; + audio/x-realaudio ra; + + video/3gpp 3gpp 3gp; + video/mp2t ts; + video/mp4 mp4; + video/mpeg mpeg mpg; + video/quicktime mov; + video/webm webm; + video/x-flv flv; + video/x-m4v m4v; + video/x-mng mng; + video/x-ms-asf asx asf; + video/x-ms-wmv wmv; + video/x-msvideo avi; +} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/modules b/docker/service/nginx-v1/image/files/etc/nginx/modules new file mode 120000 index 0000000..4b9b33f --- /dev/null +++ b/docker/service/nginx-v1/image/files/etc/nginx/modules @@ -0,0 +1 @@ +/usr/lib/nginx/modules \ No newline at end of file diff --git a/docker/service/nginx-v1/image/files/etc/nginx/nginx.conf b/docker/service/nginx-v1/image/files/etc/nginx/nginx.conf new file mode 100644 index 0000000..9859533 --- /dev/null +++ b/docker/service/nginx-v1/image/files/etc/nginx/nginx.conf @@ -0,0 +1,36 @@ + +# comment this line to remove: nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:2 +# but it may be a security hole in case you run container as a root user, and then forget to uncomment it +# recommended is to leave it as it is, seeing warning is also a confirmation that you run container as a non root user +user nginx; + +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + + include /etc/nginx/conf.d/*.conf; +} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/scgi_params b/docker/service/nginx-v1/image/files/etc/nginx/scgi_params new file mode 100644 index 0000000..6d4ce4f --- /dev/null +++ b/docker/service/nginx-v1/image/files/etc/nginx/scgi_params @@ -0,0 +1,17 @@ + +scgi_param REQUEST_METHOD $request_method; +scgi_param REQUEST_URI $request_uri; +scgi_param QUERY_STRING $query_string; +scgi_param CONTENT_TYPE $content_type; + +scgi_param DOCUMENT_URI $document_uri; +scgi_param DOCUMENT_ROOT $document_root; +scgi_param SCGI 1; +scgi_param SERVER_PROTOCOL $server_protocol; +scgi_param REQUEST_SCHEME $scheme; +scgi_param HTTPS $https if_not_empty; + +scgi_param REMOTE_ADDR $remote_addr; +scgi_param REMOTE_PORT $remote_port; +scgi_param SERVER_PORT $server_port; +scgi_param SERVER_NAME $server_name; diff --git a/docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params b/docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params new file mode 100644 index 0000000..09c732c --- /dev/null +++ b/docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params @@ -0,0 +1,17 @@ + +uwsgi_param QUERY_STRING $query_string; +uwsgi_param REQUEST_METHOD $request_method; +uwsgi_param CONTENT_TYPE $content_type; +uwsgi_param CONTENT_LENGTH $content_length; + +uwsgi_param REQUEST_URI $request_uri; +uwsgi_param PATH_INFO $document_uri; +uwsgi_param DOCUMENT_ROOT $document_root; +uwsgi_param SERVER_PROTOCOL $server_protocol; +uwsgi_param REQUEST_SCHEME $scheme; +uwsgi_param HTTPS $https if_not_empty; + +uwsgi_param REMOTE_ADDR $remote_addr; +uwsgi_param REMOTE_PORT $remote_port; +uwsgi_param SERVER_PORT $server_port; +uwsgi_param SERVER_NAME $server_name; diff --git a/docker/service/nginx-v1/image/files/etc/nginx/win-utf b/docker/service/nginx-v1/image/files/etc/nginx/win-utf new file mode 100644 index 0000000..ed8bc00 --- /dev/null +++ b/docker/service/nginx-v1/image/files/etc/nginx/win-utf @@ -0,0 +1,126 @@ + +# This map is not a full windows-1251 <> utf8 map: it does not +# contain Serbian and Macedonian letters. If you need a full map, +# use contrib/unicode2nginx/win-utf map instead. + +charset_map windows-1251 utf-8 { + + 82 E2809A ; # single low-9 quotation mark + + 84 E2809E ; # double low-9 quotation mark + 85 E280A6 ; # ellipsis + 86 E280A0 ; # dagger + 87 E280A1 ; # double dagger + 88 E282AC ; # euro + 89 E280B0 ; # per mille + + 91 E28098 ; # left single quotation mark + 92 E28099 ; # right single quotation mark + 93 E2809C ; # left double quotation mark + 94 E2809D ; # right double quotation mark + 95 E280A2 ; # bullet + 96 E28093 ; # en dash + 97 E28094 ; # em dash + + 99 E284A2 ; # trade mark sign + + A0 C2A0 ; #   + A1 D18E ; # capital Byelorussian short U + A2 D19E ; # small Byelorussian short u + + A4 C2A4 ; # currency sign + A5 D290 ; # capital Ukrainian soft G + A6 C2A6 ; # borken bar + A7 C2A7 ; # section sign + A8 D081 ; # capital YO + A9 C2A9 ; # (C) + AA D084 ; # capital Ukrainian YE + AB C2AB ; # left-pointing double angle quotation mark + AC C2AC ; # not sign + AD C2AD ; # soft hypen + AE C2AE ; # (R) + AF D087 ; # capital Ukrainian YI + + B0 C2B0 ; # ° + B1 C2B1 ; # plus-minus sign + B2 D086 ; # capital Ukrainian I + B3 D196 ; # small Ukrainian i + B4 D291 ; # small Ukrainian soft g + B5 C2B5 ; # micro sign + B6 C2B6 ; # pilcrow sign + B7 C2B7 ; # · + B8 D191 ; # small yo + B9 E28496 ; # numero sign + BA D194 ; # small Ukrainian ye + BB C2BB ; # right-pointing double angle quotation mark + + BF D197 ; # small Ukrainian yi + + C0 D090 ; # capital A + C1 D091 ; # capital B + C2 D092 ; # capital V + C3 D093 ; # capital G + C4 D094 ; # capital D + C5 D095 ; # capital YE + C6 D096 ; # capital ZH + C7 D097 ; # capital Z + C8 D098 ; # capital I + C9 D099 ; # capital J + CA D09A ; # capital K + CB D09B ; # capital L + CC D09C ; # capital M + CD D09D ; # capital N + CE D09E ; # capital O + CF D09F ; # capital P + + D0 D0A0 ; # capital R + D1 D0A1 ; # capital S + D2 D0A2 ; # capital T + D3 D0A3 ; # capital U + D4 D0A4 ; # capital F + D5 D0A5 ; # capital KH + D6 D0A6 ; # capital TS + D7 D0A7 ; # capital CH + D8 D0A8 ; # capital SH + D9 D0A9 ; # capital SHCH + DA D0AA ; # capital hard sign + DB D0AB ; # capital Y + DC D0AC ; # capital soft sign + DD D0AD ; # capital E + DE D0AE ; # capital YU + DF D0AF ; # capital YA + + E0 D0B0 ; # small a + E1 D0B1 ; # small b + E2 D0B2 ; # small v + E3 D0B3 ; # small g + E4 D0B4 ; # small d + E5 D0B5 ; # small ye + E6 D0B6 ; # small zh + E7 D0B7 ; # small z + E8 D0B8 ; # small i + E9 D0B9 ; # small j + EA D0BA ; # small k + EB D0BB ; # small l + EC D0BC ; # small m + ED D0BD ; # small n + EE D0BE ; # small o + EF D0BF ; # small p + + F0 D180 ; # small r + F1 D181 ; # small s + F2 D182 ; # small t + F3 D183 ; # small u + F4 D184 ; # small f + F5 D185 ; # small kh + F6 D186 ; # small ts + F7 D187 ; # small ch + F8 D188 ; # small sh + F9 D189 ; # small shch + FA D18A ; # small hard sign + FB D18B ; # small y + FC D18C ; # small soft sign + FD D18D ; # small e + FE D18E ; # small yu + FF D18F ; # small ya +} diff --git a/docker/service/nginx-v1/image/files/site.conf b/docker/service/nginx-v1/image/files/site.conf new file mode 100644 index 0000000..7741bfa --- /dev/null +++ b/docker/service/nginx-v1/image/files/site.conf @@ -0,0 +1,7 @@ +server { + index index.html; + server_name php-docker.local; + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + root /code; +} diff --git a/docker/service/php-composer-v2.yaml b/docker/service/php-composer-v2.yaml new file mode 100644 index 0000000..326151a --- /dev/null +++ b/docker/service/php-composer-v2.yaml @@ -0,0 +1,47 @@ +version: "3.7" + +services: + php-composer-v2: + image: ${COMPOSE_PROJECT_NAME}_composer:2.2.7 + build: + context: ${service_path:-.}/php-composer-v2/${image_path} + args: + image: composer:2.2.7 + uid: ${uid:-1000} + gid: ${gid:-1000} + shm_size: '2gb' + target: dev + + env_file: + - "${service_path:-.}/php-composer-v2/.env.dev" + + user: ${uid:-1000}:${gid:-1000} + + # makes possible to attach to the container shell and perform actions + # for example install dependencies + # + # docker attach carrental-php-composer-v2-1 + # + # once you do what you wanted to do just + # type exit + [enter] to leave the container shell + # + stdin_open: true + tty: true + + #TODO - make your capabilities restrictions for that service + # take nginx-v1 service as an example and check if you may + # limit the capabilities even further. + # Keep in mind that composer may execute installation scripts + # that potentially may be harmful. + # Does composer container really need all capabilities including + # these with the low level kernell commands? No it does not! + + # cap_drop: + # - ALL + + # cap_add: + + working_dir: /app/default + + volumes: + - ${app_path:-./app}:/app \ No newline at end of file diff --git a/docker/service/php-composer-v2/.env.dev b/docker/service/php-composer-v2/.env.dev new file mode 100644 index 0000000..e69de29 diff --git a/docker/service/php-composer-v2/image/Dockerfile b/docker/service/php-composer-v2/image/Dockerfile new file mode 100644 index 0000000..9a3723e --- /dev/null +++ b/docker/service/php-composer-v2/image/Dockerfile @@ -0,0 +1,21 @@ +ARG image +FROM $image AS dev + +ARG user_name=composer +ARG uid=1000 +ARG gid=1000 + +RUN addgroup -g $gid $username $gid || true && \ + adduser -D -h "/home/${user_name}" -u $uid -G $gid $user_name || true && \ + printf "PS1='\u@\h:[\W]\$ '" > "/home/${user_name}/.bashrc" && \ + mkdir -p "/app" "/home/$user_name/.config" "/home/${user_name}/.cache" && \ + chown -R $uid:$gid "/app" && \ + chown -R $uid:$gid "/home/${user_name}/.config" && \ + chown -R $uid:$gid "/home/${user_name}/.cache" + +USER $uid + +# https://docs.docker.com/engine/reference/builder/#cmd +# https://www.gnu.org/software/coreutils/manual/html_node/env-invocation.html#env-invocation + +CMD /usr/bin/env bash diff --git a/docker/service/php-fpm-v8.yaml b/docker/service/php-fpm-v8.yaml new file mode 100644 index 0000000..730d633 --- /dev/null +++ b/docker/service/php-fpm-v8.yaml @@ -0,0 +1,29 @@ +version: "3.7" +services: + php-fpm-v8: + image: ${COMPOSE_PROJECT_NAME}_php:8.1.3-fpm-buster + build: + context: ${service_path:-.}/php-fpm-v8/${image_path} + args: + image: php:8.1.3-fpm-buster + shm_size: '2gb' + target: dev + + env_file: + - "${service_path:-.}/php-fpm-v8/${image_path}/.env.dev" + + user: ${uid:-1000}:${gid:-1000} + + #TODO - make your capabilities restrictions for that service + # take nginx-v1 service as an example and check if you may + # limit the capabilities even further. + # who knows, maybe you may grant zero capabilities and this + # service still will work without any problem? + + # cap_drop: + # - ALL + + # cap_add: + + volumes: + - ${app_path:-./app}:/usr/share/nginx/html diff --git a/docker/service/php-fpm-v8/image/.dockerignore b/docker/service/php-fpm-v8/image/.dockerignore new file mode 100644 index 0000000..6456ff8 --- /dev/null +++ b/docker/service/php-fpm-v8/image/.dockerignore @@ -0,0 +1,2 @@ +files/cache +files/usr/share diff --git a/docker/service/php-fpm-v8/image/.env.dev b/docker/service/php-fpm-v8/image/.env.dev new file mode 100644 index 0000000..c816164 --- /dev/null +++ b/docker/service/php-fpm-v8/image/.env.dev @@ -0,0 +1,2 @@ +user_id=1000 +user_group_id=1000 \ No newline at end of file diff --git a/docker/service/php-fpm-v8/image/Dockerfile b/docker/service/php-fpm-v8/image/Dockerfile new file mode 100644 index 0000000..92a95e0 --- /dev/null +++ b/docker/service/php-fpm-v8/image/Dockerfile @@ -0,0 +1,2 @@ +ARG image +FROM $image AS dev \ No newline at end of file diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini new file mode 100644 index 0000000..7e0ae9a --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini @@ -0,0 +1 @@ +extension=bcmath.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini new file mode 100644 index 0000000..9106f44 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini @@ -0,0 +1 @@ +extension=calendar.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini new file mode 100644 index 0000000..3058911 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini @@ -0,0 +1 @@ +extension=dba.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini new file mode 100644 index 0000000..0688bbe --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini @@ -0,0 +1 @@ +extension=exif.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini new file mode 100644 index 0000000..1941c0d --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini @@ -0,0 +1 @@ +extension=gd.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini new file mode 100644 index 0000000..1b2e930 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini @@ -0,0 +1 @@ +extension=gettext.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini new file mode 100644 index 0000000..d7513f1 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini @@ -0,0 +1 @@ +extension=imagick.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini new file mode 100644 index 0000000..45969d0 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini @@ -0,0 +1 @@ +extension=mongodb.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini new file mode 100644 index 0000000..9d0502f --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini @@ -0,0 +1 @@ +extension=mysqli.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini new file mode 100644 index 0000000..c82b397 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini @@ -0,0 +1 @@ +zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/opcache.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini new file mode 100644 index 0000000..f0a7145 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini @@ -0,0 +1 @@ +extension=pcntl.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini new file mode 100644 index 0000000..34a7ff5 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini @@ -0,0 +1 @@ +extension=pdo_mysql.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini new file mode 100644 index 0000000..d1f7bf0 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini @@ -0,0 +1 @@ +extension=pdo_pgsql.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini new file mode 100644 index 0000000..21be5e4 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini @@ -0,0 +1 @@ +extension=pgsql.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini new file mode 100644 index 0000000..b4d0a8c --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini @@ -0,0 +1 @@ +extension=pspell.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini new file mode 100644 index 0000000..b554ad3 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini @@ -0,0 +1 @@ +extension=shmop.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini new file mode 100644 index 0000000..1deef9c --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini @@ -0,0 +1 @@ +extension=soap.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini new file mode 100644 index 0000000..327228b --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini @@ -0,0 +1 @@ +extension=sockets.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini new file mode 100644 index 0000000..5ee7788 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini @@ -0,0 +1 @@ +extension=sodium.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini new file mode 100644 index 0000000..bc436f9 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini @@ -0,0 +1 @@ +extension=svm.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini new file mode 100644 index 0000000..639950e --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini @@ -0,0 +1 @@ +extension=sysvmsg.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini new file mode 100644 index 0000000..dd2c343 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini @@ -0,0 +1 @@ +extension=sysvsem.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini new file mode 100644 index 0000000..4c26779 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini @@ -0,0 +1 @@ +extension=sysvshm.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini new file mode 100644 index 0000000..834babc --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini @@ -0,0 +1 @@ +extension=tidy.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini new file mode 100644 index 0000000..42918f4 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini @@ -0,0 +1 @@ +extension=trader.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini new file mode 100644 index 0000000..95571ae --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini @@ -0,0 +1 @@ +extension=wddx.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini new file mode 100644 index 0000000..b03d93c --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini @@ -0,0 +1 @@ +extension=xmlrpc.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini new file mode 100644 index 0000000..3223510 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini @@ -0,0 +1 @@ +extension=xsl.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini new file mode 100644 index 0000000..bb70997 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini @@ -0,0 +1 @@ +extension=zip.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini new file mode 100644 index 0000000..5d65e65 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini @@ -0,0 +1,3 @@ +; Maximum amount of memory a script may consume (128MB) +; http://php.net/memory-limit +memory_limit = 2G \ No newline at end of file diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development new file mode 100644 index 0000000..9da3a1d --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development @@ -0,0 +1,1916 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; http://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; http://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-development INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; html_errors +; Default Value: On +; Development Value: On +; Production value: On + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; http://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; http://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; http://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; http://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; http://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; http://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +; Default: Off +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +; Default: "" +;zend.script_encoding = + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; http://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; http://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; http://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; http://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; Maximum amount of memory a script may consume (128MB) +; http://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; http://php.net/error-reporting +error_reporting = E_ALL + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/display-errors +display_errors = On + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. PHP's default behavior is to suppress those +; errors from clients. Turning the display of startup errors on can be useful in +; debugging configuration problems. We strongly recommend you +; set this to 'off' for production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://php.net/display-startup-errors +display_startup_errors = On + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; http://php.net/log-errors +log_errors = On + +; Set maximum length of log_errors. In error_log information about the source is +; added. The default is 1024 and 0 allows to not apply any maximum length at all. +; http://php.net/log-errors-max-len +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; http://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; http://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This has only effect in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; http://php.net/report-memleaks +report_memleaks = On + +; This setting is on by default. +;report_zend_debug = 0 + +; Store the last error/warning message in $php_errormsg (boolean). +; This directive is DEPRECATED. +; Default Value: Off +; Development Value: Off +; Production Value: Off +; http://php.net/track-errors +;track_errors = Off + +; Turn off normal error reporting and emit XML-RPC error XML +; http://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; Default Value: On +; Development Value: On +; Production value: On +; http://php.net/html-errors +html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from http://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; http://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; http://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; http://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (only base ASCII characters) +; no_ctrl (all characters except control characters) +; all (all characters) +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; http://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; http://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; http://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; http://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any affect. +; http://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; http://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; http://php.net/post-max-size +post_max_size = 8M + +; Automatically add files before PHP document. +; http://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; http://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; http://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; http://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; http://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; http://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; http://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; http://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; http://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; http://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; http://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; http://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; http://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; http://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; http://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; http://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; http://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; http://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; http://php.net/upload-max-filesize +upload_max_filesize = 2M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; http://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; http://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; http://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; http://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +; extension folders as well as the separate PECL DLL download (PHP 5+). +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 +;extension=curl +;extension=fileinfo +;extension=gd2 +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=interbase +;extension=ldap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See http://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xmlrpc +;extension=xsl + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; http://php.net/date.timezone +;date.timezone = + +; http://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; http://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; http://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.583333 + +; http://php.net/date.sunset-zenith +;date.sunset_zenith = 90.583333 + +[filter] +; http://php.net/filter.default +;filter.default = unsafe_raw + +; http://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +;sqlite3.extension_dir = + +[Pcre] +; PCRE library backtracking limit. +; http://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; http://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; http://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +;pdo_odbc.db2_instance_name + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; http://php.net/phar.readonly +;phar.readonly = On + +; http://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; http://php.net/smtp +SMTP = localhost +; http://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; http://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; http://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; http://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; http://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; http://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; http://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; http://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; http://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; http://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[Interbase] +; Allow or prevent persistent links. +ibase.allow_persistent = 1 + +; Maximum number of persistent links. -1 means no limit. +ibase.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +ibase.max_links = -1 + +; Default database name for ibase_connect(). +;ibase.default_db = + +; Default username for ibase_connect(). +;ibase.default_user = + +; Default password for ibase_connect(). +;ibase.default_password = + +; Default charset for ibase_connect(). +;ibase.default_charset = + +; Default timestamp format. +ibase.timestampformat = "%Y-%m-%d %H:%M:%S" + +; Default date format. +ibase.dateformat = "%Y-%m-%d" + +; Default time format. +ibase.timeformat = "%H:%M:%S" + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; http://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = On + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; http://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; http://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; http://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; http://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; http://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle 11g Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; http://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; http://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; http://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; http://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; http://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; http://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; http://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; http://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; http://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; http://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; http://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; http://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; http://php.net/session.use-cookies +session.use_cookies = 1 + +; http://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; http://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; http://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; http://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; http://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; http://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; http://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; http://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Lax" or "Strict" +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; http://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started +; on every session initialization. The probability is calculated by using +; gc_probability/gc_divisor. Where session.gc_probability is the numerator +; and gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any given request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using the following equation: +; gc_probability/gc_divisor. Where session.gc_probability is the numerator and +; session.gc_divisor is the denominator in the equation. Setting this value to 100 +; when the session.gc_probability value is 1 will give you approximately a 1% chance +; the gc will run on any given request. Increasing this value to 1000 will give you +; a 0.1% chance the gc will run on any given request. For high volume production servers, +; this is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; http://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; http://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script would is the equivalent of +; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; http://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; http://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; http://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; http://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; http://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;
is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; http://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; http://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; http://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; http://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; http://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; http://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; http://php.net/zend.assertions +zend.assertions = 1 + +; Assert(expr); active by default. +; http://php.net/assert.active +;assert.active = On + +; Throw an AssertionError on failed assertions +; http://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; http://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; http://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; http://php.net/assert.callback +;assert.callback = 0 + +; Eval the expression with current error_reporting(). Set to true if you want +; error_reporting(0) around the eval(). +; http://php.net/assert.quiet-eval +;assert.quiet_eval = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; http://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; http://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typlib on com_load() +; http://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; http://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; http://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; http://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbsting.http_input +; http://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; http://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; http://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; http://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; http://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; overload(replace) single byte functions by mbstring functions. +; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), +; etc. Possible values are 0,1,2,4 or combination of them. +; For example, 7 for overload everything. +; 0: No overload +; 1: Overload mail() function +; 2: Overload str*() functions +; 4: Overload ereg*() functions +; http://php.net/mbstring.func-overload +;mbstring.func_overload = 0 + +; enable strict encoding detection. +; Default: Off +;mbstring.strict_detection = On + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetype= + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; http://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; http://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; http://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; http://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; http://php.net/exif.encode-jis +;exif.encode_jis = + +; http://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; http://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; http://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; http://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; http://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; http://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; http://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; This should improve performance, but requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +; Local Variables: +; tab-width: 4 +; End: diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production new file mode 100644 index 0000000..ede9ac6 --- /dev/null +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production @@ -0,0 +1,1923 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; http://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; http://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-production INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; html_errors +; Default Value: On +; Development Value: On +; Production value: On + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; track_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; http://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; http://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; http://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; http://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; http://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; http://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +; Default: Off +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +; Default: "" +;zend.script_encoding = + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; http://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; http://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; http://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; http://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; Maximum amount of memory a script may consume (128MB) +; http://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; http://php.net/error-reporting +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/display-errors +display_errors = Off + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. PHP's default behavior is to suppress those +; errors from clients. Turning the display of startup errors on can be useful in +; debugging configuration problems. We strongly recommend you +; set this to 'off' for production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://php.net/display-startup-errors +display_startup_errors = Off + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; http://php.net/log-errors +log_errors = On + +; Set maximum length of log_errors. In error_log information about the source is +; added. The default is 1024 and 0 allows to not apply any maximum length at all. +; http://php.net/log-errors-max-len +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; http://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; http://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This has only effect in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; http://php.net/report-memleaks +report_memleaks = On + +; This setting is on by default. +;report_zend_debug = 0 + +; Store the last error/warning message in $php_errormsg (boolean). Setting this value +; to On can assist in debugging and is appropriate for development servers. It should +; however be disabled on production servers. +; This directive is DEPRECATED. +; Default Value: Off +; Development Value: Off +; Production Value: Off +; http://php.net/track-errors +;track_errors = Off + +; Turn off normal error reporting and emit XML-RPC error XML +; http://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; Default Value: On +; Development Value: On +; Production value: On +; http://php.net/html-errors +html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from http://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; http://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; http://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; http://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (only base ASCII characters) +; no_ctrl (all characters except control characters) +; all (all characters) +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; http://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; http://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; http://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; http://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any affect. +; http://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; http://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; http://php.net/post-max-size +post_max_size = 8M + +; Automatically add files before PHP document. +; http://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; http://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; http://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; http://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; http://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; http://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; http://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; http://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; http://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; http://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; http://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; http://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; http://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; http://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; http://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; http://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; http://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; http://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; http://php.net/upload-max-filesize +upload_max_filesize = 2M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; http://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; http://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; http://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; http://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +; extension folders as well as the separate PECL DLL download (PHP 5+). +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 +;extension=curl +;extension=fileinfo +;extension=gd2 +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=interbase +;extension=ldap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See http://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xmlrpc +;extension=xsl + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; http://php.net/date.timezone +;date.timezone = + +; http://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; http://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; http://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.583333 + +; http://php.net/date.sunset-zenith +;date.sunset_zenith = 90.583333 + +[filter] +; http://php.net/filter.default +;filter.default = unsafe_raw + +; http://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +;sqlite3.extension_dir = + +[Pcre] +; PCRE library backtracking limit. +; http://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; http://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; http://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +;pdo_odbc.db2_instance_name + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; http://php.net/phar.readonly +;phar.readonly = On + +; http://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; http://php.net/smtp +SMTP = localhost +; http://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; http://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; http://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; http://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; http://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; http://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; http://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; http://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; http://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; http://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[Interbase] +; Allow or prevent persistent links. +ibase.allow_persistent = 1 + +; Maximum number of persistent links. -1 means no limit. +ibase.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +ibase.max_links = -1 + +; Default database name for ibase_connect(). +;ibase.default_db = + +; Default username for ibase_connect(). +;ibase.default_user = + +; Default password for ibase_connect(). +;ibase.default_password = + +; Default charset for ibase_connect(). +;ibase.default_charset = + +; Default timestamp format. +ibase.timestampformat = "%Y-%m-%d %H:%M:%S" + +; Default date format. +ibase.dateformat = "%Y-%m-%d" + +; Default time format. +ibase.timeformat = "%H:%M:%S" + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; http://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = Off + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; http://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; http://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; http://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; http://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; http://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle 11g Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; http://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; http://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; http://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; http://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; http://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; http://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; http://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; http://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; http://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; http://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; http://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; http://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; http://php.net/session.use-cookies +session.use_cookies = 1 + +; http://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; http://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; http://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; http://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; http://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; http://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; http://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; http://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Lax" or "Strict" +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; http://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started +; on every session initialization. The probability is calculated by using +; gc_probability/gc_divisor. Where session.gc_probability is the numerator +; and gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any given request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using the following equation: +; gc_probability/gc_divisor. Where session.gc_probability is the numerator and +; session.gc_divisor is the denominator in the equation. Setting this value to 100 +; when the session.gc_probability value is 1 will give you approximately a 1% chance +; the gc will run on any given request. Increasing this value to 1000 will give you +; a 0.1% chance the gc will run on any given request. For high volume production servers, +; this is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; http://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; http://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script would is the equivalent of +; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; http://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; http://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; http://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; http://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; http://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +; is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; http://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; http://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; http://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; http://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; http://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; http://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; http://php.net/zend.assertions +zend.assertions = -1 + +; Assert(expr); active by default. +; http://php.net/assert.active +;assert.active = On + +; Throw an AssertionError on failed assertions +; http://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; http://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; http://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; http://php.net/assert.callback +;assert.callback = 0 + +; Eval the expression with current error_reporting(). Set to true if you want +; error_reporting(0) around the eval(). +; http://php.net/assert.quiet-eval +;assert.quiet_eval = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; http://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; http://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typlib on com_load() +; http://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; http://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; http://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; http://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbsting.http_input +; http://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; http://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; http://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; http://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; http://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; overload(replace) single byte functions by mbstring functions. +; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), +; etc. Possible values are 0,1,2,4 or combination of them. +; For example, 7 for overload everything. +; 0: No overload +; 1: Overload mail() function +; 2: Overload str*() functions +; 4: Overload ereg*() functions +; http://php.net/mbstring.func-overload +;mbstring.func_overload = 0 + +; enable strict encoding detection. +; Default: Off +;mbstring.strict_detection = On + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetype= + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; http://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; http://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; http://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; http://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; http://php.net/exif.encode-jis +;exif.encode_jis = + +; http://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; http://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; http://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; http://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; http://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; http://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; http://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; This should improve performance, but requires appropriate OS configuration. +;opcache.huge_code_pages=1 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +; Local Variables: +; tab-width: 4 +; End: diff --git a/docker/service/setup.sh b/docker/service/setup.sh new file mode 100755 index 0000000..612f006 --- /dev/null +++ b/docker/service/setup.sh @@ -0,0 +1,90 @@ +#!/bin/sh + +set -eu + +export uid=$(id -u) +export gid=$(id -g) + +echo "Running as: $uid:$gid" + +# own all directories and files +sudo chown -R $uid:$gid ../../ + +# add execution for the current user and its group to init scripts +sudo chmod -v ug+x,o-wx \ +../../app/default/.elasticsearch-http-requests/request.sh \ +../../app/default/.elasticsearch-http-requests/init.sh + +# Nginx: create dirs, set owner and group, set access permissions +mkdir -p \ +./nginx-v1/image/files/var/log/nginx \ +./nginx-v1/image/files/usr/share/nginx/html/default && \ +\ +sudo chown -R $uid:$gid \ +./nginx-v1/image/files/var/log/nginx \ +./nginx-v1/image/files/usr/share/nginx/html/default && \ +\ +sudo chmod -v -R ug=rwX,o=rX \ +./nginx-v1/image/files/var/log/nginx \ +./nginx-v1/image/files/usr/share/nginx/html/default + +# Elasticsearch: create dirs, set owner and group, set access permissions +mkdir -p \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/config \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/data \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/logs \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/plugins && \ +\ +sudo chown -R $uid:0 \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/config \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/data \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/logs \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/plugins && \ +\ +sudo chmod -v -R ug=rwX,o=rX \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/config \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/data \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/logs \ +./elasticsearch-v7/image/files/usr/share/elasticsearch/plugins + +# compose up everyting +docker-compose --profile dev up --detach --build --force-recreate + +# call composer install +docker-compose exec php-composer-v2 composer install + +# call init for elasticsearch +docker-compose exec php-composer-v2 /bin/sh -c "/app/default/.elasticsearch-http-requests/init.sh" + +echo "$ docker ps -a" +docker ps +echo "" + +echo "$ docker stats --no-stream" +docker stats --no-stream +echo "" + +echo "$ docker network ls --filter 'type=custom'" +docker network ls --filter 'type=custom' +echo "" + +# inform about opening web browser +echo "Installation complete." +echo "Run web browser and go to:" +echo "" +echo "http://localhost:9090" +echo "" + +echo "To see logs run:" +echo "" +echo "docker-compose logs" +echo "" + +echo "To shut this application down, run:" +echo "" +echo "docker-compose down --remove-orphans" +echo "" + +echo "See the How to play with it? section" +echo "to know other useful commands." +echo "" From 7b2eb1538d15fd9ea236efa705ed960c5d8e13a6 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Mon, 21 Mar 2022 14:43:08 +0100 Subject: [PATCH 02/23] Update README.md bugfix broken link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e3cf73..d5734a8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This is the simple educational project prepared to support my recent presentatio ### Table of contents - [Requirements](#Requirements) -- [Docker and Docker Compose upgrade](#Docker and Docker Compose upgrade) +- [Docker and Docker Compose upgrade](#Docker-and-Docker-Compose-upgrade) - [Project setup](#Project setup) - [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)) - [Step by step setup](#Step by step setup) From 2f2111b924292855d209726e7487aaf112dcc343 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Mon, 21 Mar 2022 15:00:10 +0100 Subject: [PATCH 03/23] Repair broken links --- README.md | 190 +++++++++++++++++++++++++++--------------------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/README.md b/README.md index d5734a8..08e84e0 100644 --- a/README.md +++ b/README.md @@ -13,51 +13,51 @@ This is the simple educational project prepared to support my recent presentatio - [Requirements](#Requirements) - [Docker and Docker Compose upgrade](#Docker-and-Docker-Compose-upgrade) -- [Project setup](#Project setup) - - [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)) - - [Step by step setup](#Step by step setup) - - [Clone repository and create directories](#Clone repository and create directories) - - [Introduction to docker and docker-compose](#Introduction to docker and docker-compose) - - [Docker cleanup (optional)](#Docker cleanup (optional)) - - [Containers cleanup](#Containers cleanup) - - [Networks cleanup](#Networks cleanup) - - [Volumes cleanup](#Volumes cleanup) - - [Development time cleanup](#Development time cleanup) - - [Docker compose project setup](#Docker compose project setup) - - [Start services](#Start services) - - [Install composer dependencies](#Install composer dependencies) - - [Elasticsearch index creation and population](#Elasticsearch index creation and population) - - [Make scripts executable](#Make scripts executable) - - [Quick setup with init.sh](#Quick setup with init.sh) - - [Step by step setup with request.sh](#Step by step setup with request.sh) - - [Create index](#Create index) - - [Populate index with data](#Populate index with data) - - [Get count of items](#Get count of items) +- [Project setup](#Project-setup) + - [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker-cleanup)) + - [Step by step setup](#Step-by-step-setup) + - [Clone repository and create directories](#Clone-repository-and-create-directories) + - [Introduction to docker and docker-compose](#Introduction-to-docker-and-docker-compose) + - [Docker cleanup (optional)](#Docker-cleanup-(optional)) + - [Containers cleanup](#Containers-cleanup) + - [Networks cleanup](#Networks-cleanup) + - [Volumes cleanup](#Volumes-cleanup) + - [Development time cleanup](#Development-time-cleanup) + - [Docker compose project setup](#Docker-compose-project-setup) + - [Start services](#Start-services) + - [Install composer dependencies](#Install-composer-dependencies) + - [Elasticsearch index creation and population](#Elasticsearch-index-creation-and-population) + - [Make scripts executable](#Make-scripts-executable) + - [Quick setup with init.sh](#Quick-setup-with-init.sh) + - [Step by step setup with request.sh](#Step-by-step-setup-with-request.sh) + - [Create index](#Create-index) + - [Populate index with data](#Populate-index-with-data) + - [Get count of items](#Get-count-of-items) - [Search](#Search) - - [Delete index](#Delete index) - - [Step by step other methods](#Step by step other methods) -- [How to play with it?](#How to play with it?) + - [Delete index](#Delete-index) + - [Step by step other methods](#Step-by-step-other-methods) +- [How to play with it?](#How-to-play-with-it?) - [Docker](#Docker) - - [Run all services](#Run all services) - - [Release the shell lock](#Release the shell lock) - - [Run all services without shell locking](#Run all services without shell locking) - - [Run a specific profile](#Run a specific profile) - - [Stop services](#Stop services) - - [Remove service containers](#Remove service containers) - - [Stop & remove service containers with their network](#Stop & remove service containers with their network) - - [Run, Stop, Remove](#Run, Stop, Remove) - - [Build images](#Build images) + - [Run all services](#Run-all-services) + - [Release the shell lock](#Release-the-shell-lock) + - [Run all services without shell locking](#Run-all-services-without-shell-locking) + - [Run a specific profile](#Run-a-specific-profile) + - [Stop services](#Stop-services) + - [Remove service containers](#Remove-service-containers) + - [Stop & remove service containers with their network](#Stop-&-remove-service-containers-with-their-network) + - [Run, Stop, Remove](#Run,-Stop,-Remove) + - [Build images](#Build-images) - [Composer](#Composer) - [Monitoring](#Monitoring) - [Reinstallation](#Reinstallation) - [Elasticsearch](#Elasticsearch) - [Reinitialize](#Reinitialize) - - [Elasticsearch code](#Elasticsearch code) + - [Elasticsearch code](#Elasticsearch-code) - [Uninstallation](#Uninstallation) - [Credits](#Credits) - [Copyrights](#Copyrights) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Requirements @@ -65,7 +65,7 @@ This is the simple educational project prepared to support my recent presentatio - docker-compose (tested on v2.3.3) - linux (tested on Ubuntu 18.04) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Docker and Docker Compose upgrade @@ -203,7 +203,7 @@ docker ps -a --format '{{.Image}} {{.Status}} {{.Ports}}' | carrental_php:8.1.3-fpm-buster | Up 9 minutes | 9000/tcp | | carrental_elasticsearch:7.17.1 | Up 9 minutes (healthy) | 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp | - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Quick setup (without Docker cleanup) @@ -304,11 +304,11 @@ docker ps -a --format '{{.Image}} {{.Status}} {{.Ports}}' 4. Open your browser and go to: http://localhost:9090 -4. Read the section [How to play with it?](#How to play with it?) +4. Read the section [How to play with it?](#How-to-play-with-it?) 5. Read about the project structure in [./docker/service/README.md](./docker/service/README.md) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Step by step setup @@ -412,7 +412,7 @@ sudo chmod -v -R ug=rwX,o=rX \ ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Introduction to docker and docker-compose @@ -486,7 +486,7 @@ correct: docker-compose --profile dev up --build ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Docker cleanup (optional) @@ -503,7 +503,7 @@ that is important (ie a container(s) handling an incoming traffic or saving a ba **Running** the **Docker cleanup** section commands **is optional** but should give you a clean starting point and lack of confusion by having only the containers and networks that are related to this project. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Containers cleanup @@ -551,7 +551,7 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES should show no containers (despite their state: created, stopped, running, exited etc.) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Networks cleanup @@ -586,13 +586,13 @@ efff0416acdb none null local should show that there are no other networks than the default ones. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Volumes cleanup This application does not make any use of volumes (besides the ones that are defined by the images' Dockerfiles). Therefore it is not needed nor recommended to do a cleanup of them for the purpose of running this application. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Development time cleanup @@ -602,7 +602,7 @@ Once you start working with this application and modify it, stop, remove, build In such case, you may find useful -Following steps from [Run, Stop, Remove](#Run, Stop, Remove) to run and do all cleanup after shutting the application down. +Following steps from [Run, Stop, Remove](#Run,-Stop,-Remove) to run and do all cleanup after shutting the application down. or using this command: @@ -628,7 +628,7 @@ The terminal output is pretty self explanatory however if you would like to chec - [docker container prune](https://docs.docker.com/engine/reference/commandline/container_prune/) - [docker network prune](https://docs.docker.com/engine/reference/commandline/network_prune/) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Docker compose project setup @@ -640,7 +640,7 @@ If you run these commands with `sudo` then the user id will be 0 as well as the You will have no benefit of running the commands with `sudo` but only will degrade security and make setting access permissions for user, group and others pointless. -If you have any problems running docker commands without `sudo` then you need to add your user to the docker group, read about that in the [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)) section. +If you have any problems running docker commands without `sudo` then you need to add your user to the docker group, read about that in the [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker-cleanup)) section. run: @@ -697,7 +697,7 @@ that should show containers and their resources usage. If you have opened the second terminal window, go back to the first terminal window and continue with instructions: - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Install composer dependencies @@ -720,7 +720,7 @@ Executing script assets:install public [OK] At this moment the PHP application is set but there is still missing: - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Elasticsearch index creation and population @@ -740,7 +740,7 @@ terminal output: so your user and his group are able to execute that script. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) **Make `init.sh` script executable** @@ -756,7 +756,7 @@ terminal output: so your user and his group are able to execute that script. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) **There are at least three ways to create Elasticsearch's index and populate it** @@ -764,7 +764,7 @@ so your user and his group are able to execute that script. - Step by step with `request.sh` - provides more fun. - Step by step other methods (require manual edit of file(s)) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Quick setup with init.sh @@ -786,7 +786,7 @@ Done! That's it. Open your bowser and visit http://localhost:9090/ - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Step by step setup with request.sh @@ -805,7 +805,7 @@ Performing cURL request: Success. ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ##### Populate index with data @@ -827,7 +827,7 @@ curl -sSL -X POST -H 'Content-Type: application/x-ndjson' --data-raw \ Success. ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ##### Get count of items @@ -844,7 +844,7 @@ curl -sSL -X GET 'http://elasticsearch-v7:9200/cars/_count' Success. ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ##### Search @@ -869,9 +869,9 @@ Success. That's it. Open your bowser and visit http://localhost:9090/ and -Read the section [How to play with it?](#How to play with it?). +Read the section [How to play with it?](#How-to-play-with-it?). - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ##### Delete index @@ -890,7 +890,7 @@ Success. Terminal may print `FAIL!` in case there was no index to delete (you deleted it before, or did not create). - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Step by step other methods @@ -929,7 +929,7 @@ Therefore if you want to do them manually but from a docker container you have t Open your bowser and visit http://localhost:9090/ - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## How to play with it? @@ -937,11 +937,11 @@ Read about the project structure in [./docker/service/README.md](./docker/servic or continue with the content as below: - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Docker - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) @@ -969,7 +969,7 @@ carrental-php-fpm-v8-1 | [17-Mar-2022 15:08:41] NOTICE: ready to handle c carrental-elasticsearch-v7-1 | {"type": "server", "timestamp": "2022-03-17T15:08:42,246Z" ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ##### Release the shell lock @@ -987,7 +987,7 @@ The Ctrl+c stops all of the containers created by `docker- and gives the shell control back to you. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Run all services without shell locking @@ -1025,11 +1025,11 @@ When running `docker-compose` `up` with `--detach` key combination CtrlCtrl+c) -- [Remove service containers](#Remove service containers) -- [Stop & remove service containers with their network](#Stop & remove service containers with their network) +- [Stop services](#Stop-services) (equivalent of Ctrl+c) +- [Remove service containers](#Remove-service-containers) +- [Stop & remove service containers with their network](#Stop-&-remove-service-containers-with-their-network) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Run a specific profile @@ -1037,7 +1037,7 @@ Services and profiles that they are assigned to are listed in [./docker/service/ -This section assumes you have created containers by steps from [Run all services](#Run all services) and stopped them as described in: [Release the shell lock](#Release the shell lock). +This section assumes you have created containers by steps from [Run all services](#Run-all-services) and stopped them as described in: [Release the shell lock](#Release-the-shell-lock). If you want to run a specific profile you know that you need to specify `--profile` option followed by the profile name. @@ -1091,7 +1091,7 @@ Terminal output: ⠿ Container carrental-php-fpm-v8-1 Stopped ``` -In order to have running only `carrental-php-composer-v2-1` [Remove service containers](#Remove service containers) +In order to have running only `carrental-php-composer-v2-1` [Remove service containers](#Remove-service-containers) and run profile `cli` again: @@ -1130,13 +1130,13 @@ All profiles that you may choose from are defined in the [_profiles.yaml](./dock Documentation: [Using profiles with Compose](https://docs.docker.com/compose/profiles/) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Stop services It makes sense to use it only if you plan to restart these containers later. -If your intention is to remove services then use command provided in [Remove service containers](#Remove service containers) that may stop containers as well before removing them or use [Stop & remove service containers with their network](#Stop & remove service containers with their network) that is able to do the same plus networks removal. +If your intention is to remove services then use command provided in [Remove service containers](#Remove-service-containers) that may stop containers as well before removing them or use [Stop & remove service containers with their network](#Stop-&-remove-service-containers-with-their-network) that is able to do the same plus networks removal. If you want to only stop docker containers that were started by @@ -1164,7 +1164,7 @@ Example terminal output: ⠿ Container carrental-php-fpm-v8-1 Stopped ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Remove service containers @@ -1199,11 +1199,11 @@ Going to remove carrental-nginx-v1-1, carrental-elasticsearch-v7-1, carrental-ph If you want to remove also networks then look at: [Stop & remove service containers with their network](#Stop & remove service containers with their network) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Stop & remove service containers with their network -[Remove service containers](#Remove service containers) only removes containers but what if you need to get rid of all of the containers with their networks for eg. you reconfigured network and want to do `docker-compose` `up` with the new network configuration? +[Remove service containers](#Remove-service-containers) only removes containers but what if you need to get rid of all of the containers with their networks for eg. you reconfigured network and want to do `docker-compose` `up` with the new network configuration? You may use for that `docker-compose` `down` that is the opposite command to the `docker-compose` `up`, run: @@ -1234,9 +1234,9 @@ Note that networks: ⠿ Network carrental_frontend Removed 0.2s ``` -were also removed in contrary to the [Remove service containers](#Remove service containers) that removes only services. +were also removed in contrary to the [Remove service containers](#Remove-service-containers) that removes only services. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Run, Stop, Remove @@ -1293,7 +1293,7 @@ Explanation: **Point 5**: To repeat that command use Ctrl+Up Arrow. Once it is displayed press Enter. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Build images @@ -1326,10 +1326,10 @@ If the column has a hash value like: `26d6a19a43ba` instead of a container name In such case you may need to: - Check if a new Dockerfile has any errors and if it was successfully build and tagged -- Follow steps from [Run, Stop, Remove](#Run, Stop, Remove) -- Follow steps from [Development time cleanup](#Development time cleanup) +- Follow steps from [Run, Stop, Remove](#Run,-Stop,-Remove) +- Follow steps from [Development time cleanup](#Development-time-cleanup) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Composer @@ -1370,7 +1370,7 @@ that will exit the container but since its restart policy is: then it will be restarted, allowing you to attach to it again. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Monitoring @@ -1400,15 +1400,15 @@ To list images releated to this project run: docker image ls 'carrental_*' ``` - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Reinstallation -At any point of time you may run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)). +At any point of time you may run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker cleanup)). You may do that for example to change the project's files and directories ownership to a different user. If you want to do that just switch to the user that should own that project and perform the `./setup.sh` again. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Uninstallation @@ -1464,7 +1464,7 @@ docker image rm -f carrental_php:8.1.3-fpm-buster Remove the project directory with its files (you should not need `sudo` for this) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Elasticsearch @@ -1500,15 +1500,15 @@ Done! or you may do it step by step: -- [Delete index](#Delete index) -- [Create index](#Create index) -- [Populate index with data](#Populate index with data) +- [Delete index](#Delete-index) +- [Create index](#Create-index) +- [Populate index with data](#Populate-index-with-data) -An alternative way is to run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick setup (without Docker cleanup)) +An alternative way is to run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker-cleanup)) -You may use also: [Step by step other methods](#Step by step other methods) +You may use also: [Step by step other methods](#Step-by-step-other-methods) - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) #### Elasticsearch code @@ -1550,7 +1550,7 @@ final class RecommendedSorter implements FactorSorterInterface 💡 In order to get rid of customly ranked results on the listing you can switch to `DefaultSorter` that sorts all results ascending by their `id`. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Credits @@ -1560,11 +1560,11 @@ final class RecommendedSorter implements FactorSorterInterface - Setup and initialization scripts - Docker and docker-compose related manuals - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) ## Copyrights Apart from [the project's LICENSE](https://github.com/lrynek/phpers-2021/blob/main/LICENSE), [all car photo samples](https://github.com/lrynek/phpers-2021/tree/main/public/images/cars) used in the project are taken from Google search results and all copyrights applies to their respective authors and shouldn't be used further than private/educational use without their explicit consent. - [^TOC^](#Table of contents) + [^TOC^](#Table-of-contents) From b2d4eb5f55e8f9bdd89751196ccb9a0988d743ee Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Mon, 21 Mar 2022 15:03:57 +0100 Subject: [PATCH 04/23] Repair broken links --- docker/service/README.md | 60 ++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/docker/service/README.md b/docker/service/README.md index deffa9d..d35a6d0 100644 --- a/docker/service/README.md +++ b/docker/service/README.md @@ -1,16 +1,16 @@ ## Table of contents -- [Project structure](#Project structure) -- [Projects context](#Projects context) - - [Specific to this application context](#Specific to this application context) - - [Generic service module context](#Generic service module context) - - [Copy a service module to any other project](#Copy a service module to any other project) - - [List of services modules](#List of services modules) - - [Service module volumes](#Service module volumes) - - [Service module variables](#Service module variables) - - [Service module volume has an application and module context](#Service module volume has an application and module context) - - [Merging two contexts](#Merging two contexts ) -- [Health checks](#Health checks) +- [Project structure](#Project-structure) +- [Projects context](#Projects-context) + - [Specific to this application context](#Specific-to-this-application context) + - [Generic service module context](#Generic-service-module-context) + - [Copy a service module to any other project](#Copy-a-service-module-to-any-other-project) + - [List of services modules](#List-of-services modules) + - [Service module volumes](#Service-module-volumes) + - [Service module variables](#Service-module-variables) + - [Service module volume has an application and module context](#Service-module-volume-has-an-application-and-module-context) + - [Merging two contexts](#Merging-two-contexts) +- [Health checks](#Health-checks) - [Nginx](#Nginx) - [Elasticsearch](#Elasticsearch) - [Security](#Security) @@ -18,11 +18,11 @@ - [Capabilities](#Capabilities) - [Network](#Network) - [Firewall](#Firewall) - - [Vulnerability scan](#Vulnerability scan) -- [Known Issues](#Known Issues) + - [Vulnerability scan](#Vulnerability-scan) +- [Known Issues](#Known-Issues) - Typical errors and their reasons - - [Nginx page is loading forever](#Nginx page is loading forever) - - [Elasticsearch exits with code 125](#Elasticsearch exits with code 125) + - [Nginx page is loading forever](#Nginx-page-is-loading-forever) + - [Elasticsearch exits with code 125](#Elasticsearch-exits-with-code-125) @@ -30,7 +30,7 @@ There is a [dirlist.txt](./dirlist.txt) that shows all of the files. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ## Projects context @@ -39,7 +39,7 @@ There are two contexts in this project: - Specific to this application context - Generic service module context -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Specific to this application context @@ -98,7 +98,7 @@ If you want to copy elasticsearch-v7 module to your application then remember to Currently docker does not support paths relative other than relative to the main docker-compose.yaml file therefore it would make a confusion if `elasticsearch-v7.yaml` file were put inside `elasticsearch-v7` directory and still need to use a path that is a relative to the `docker/service` dir. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) #### List of services modules @@ -119,7 +119,7 @@ The reason is that for example `elasticsearch-v7` has the suffix `v7` so if curr An additional benefit of that suffix is that you may have at the same project `elasticsearch-v7` and `elasticsearch-v8` without any conflicts and upgrade or downgrade them as you wish. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) #### Service module volumes @@ -190,7 +190,7 @@ makes as any other service module use of variables: - `${service_path:-.}` - defaults to the current directory `docker/service` but may be changed in the [.env](./.env) file. This is the path where docker-compose will look for the dir's of service modules for building them as well as for their dedictated env files. - `user: ${uid:-1000}:${gid:-1000}` defines the user id and group id of the user that runs the image. For the images that have their own custom Dockerfile like [php-composer-v2/image/Dockerfile](./php-composer-v2/image/Dockerfile) the user id and group id is used for the image build. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) #### Service module volume has an application and module context @@ -203,7 +203,7 @@ Since they define both source (HOST) and destination (Container) mount points yo Because some of the services need volumes or bind points for their basic operation (persistent storage for databases) and their paths differ for every service then a decision was made to put volumes inside the service module so if you copy it to another project then you will always have the bare minimum paths on the service side defined and will need to adjust the host side to your needs. That seems to be more reasonable then searching over all of your projects where a particular service was used in order to acquire a knowledge about required paths for its persistence. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Merging two contexts @@ -247,7 +247,7 @@ If Elasticsearch is in multi node mode then the health check's status may be `gr Current health check implementation returns status healthy in case either `green` or `yellow`. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ## Security @@ -258,7 +258,7 @@ Do not run these containers as `root`, there was a significant effort done in or However if for any reason you want to run this application as a `root` then all you need is to call `setup.sh` script with `sudo` in front of it. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Capabilities @@ -270,26 +270,26 @@ If you are going do develop your application then play with these values as desc For some of the services adding limitations of the capabilities is a piece of cake. Try it! -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Network For your convenience the `elasticsearch-v7` service is available under the host's `localhost`. When releasing this application to the public domain, remember about disabling that by making the `backend` network internal in [_network.yaml](./_network.yaml) -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) #### Firewall It would not hurt to use a firewall for the services. You may use UFW or IPTables to limit the exposure of the services since if an image exposes any port it is currently not supported by docker to override that with your own Dockerfile and disable a port exposure. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Vulnerability scan It is complety up to you to do it. No scan was made. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ## Known Issues @@ -297,7 +297,7 @@ It is complety up to you to do it. No scan was made. `-` or `.` is not allowed for the variable value, workaround to put value between a single quote `'` or double quote `"` results in passing that variable with the quotes (not just with the content between them). -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ## Typical errors and their reasons @@ -324,7 +324,7 @@ cap_add: - CAP_SETUID ``` -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Elasticsearch exits with code 125 @@ -332,4 +332,4 @@ cap_add: Elasticsearch don't have enough permissions to access its files. -[^TOC^](#Table of contents) \ No newline at end of file +[^TOC^](#Table-of-contents) From f49cd5fb58c3788d977557347861e8ef461bc945 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Mon, 21 Mar 2022 15:04:58 +0100 Subject: [PATCH 05/23] Repair broken link --- docker/service/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/service/README.md b/docker/service/README.md index d35a6d0..fe4c1fd 100644 --- a/docker/service/README.md +++ b/docker/service/README.md @@ -2,7 +2,7 @@ - [Project structure](#Project-structure) - [Projects context](#Projects-context) - - [Specific to this application context](#Specific-to-this-application context) + - [Specific to this application context](#Specific-to-this-application-context) - [Generic service module context](#Generic-service-module-context) - [Copy a service module to any other project](#Copy-a-service-module-to-any-other-project) - [List of services modules](#List-of-services modules) From a9e2892191de56ad4b17e10b60b13349da871e1b Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Mon, 21 Mar 2022 15:05:51 +0100 Subject: [PATCH 06/23] Repair broken link --- docker/service/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/service/README.md b/docker/service/README.md index fe4c1fd..d808d90 100644 --- a/docker/service/README.md +++ b/docker/service/README.md @@ -5,7 +5,7 @@ - [Specific to this application context](#Specific-to-this-application-context) - [Generic service module context](#Generic-service-module-context) - [Copy a service module to any other project](#Copy-a-service-module-to-any-other-project) - - [List of services modules](#List-of-services modules) + - [List of services modules](#List-of-services-modules) - [Service module volumes](#Service-module-volumes) - [Service module variables](#Service-module-variables) - [Service module volume has an application and module context](#Service-module-volume-has-an-application-and-module-context) From 26d24fbab5dcdf1a1dad36bdd913a50789971362 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Tue, 22 Mar 2022 01:36:31 +0100 Subject: [PATCH 07/23] Repair broken links --- docker/service/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/service/README.md b/docker/service/README.md index d808d90..7a91a0f 100644 --- a/docker/service/README.md +++ b/docker/service/README.md @@ -79,7 +79,7 @@ All of the services: `nginx-v1`, `php-fpm-v8` and `elasticsearch-v7` may work in Therefore their dependency is specific for this project and put in a separate file [_service-dependency.yaml](_service-dependency.yaml) instead of putting the `depends_on` key into each of these service's yaml file. -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Generic service module context @@ -223,7 +223,7 @@ removing a file from that variable will result in not having it in the merged ve However using [_profiles.yaml](./_profiles.yaml) is much more elegant way to have particular services up. Read about: **Run a specific profile** section of the [../../README.md](../../README.md) -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ## Health checks @@ -235,7 +235,7 @@ They are implemented in the services' Dockerfiles Nginx in the free version don't have any sophisticated health check endpoint therefore a simple one was defined in its [default.conf](./nginx-v1/image/files/etc/nginx/conf.d/default.conf) -[^TOC^](#Table of contents) +[^TOC^](#Table-of-contents) ### Elasticsearch From f6bbf95e9fbe0a7f07a95c72d52a7d88c3a29146 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Tue, 22 Mar 2022 01:56:24 +0100 Subject: [PATCH 08/23] Repair broken links --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 08e84e0..b43a056 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ This is the simple educational project prepared to support my recent presentatio - [Requirements](#Requirements) - [Docker and Docker Compose upgrade](#Docker-and-Docker-Compose-upgrade) - [Project setup](#Project-setup) - - [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker-cleanup)) + - [Quick setup (without Docker cleanup)](#quick-setup-without-docker-cleanup) - [Step by step setup](#Step-by-step-setup) - [Clone repository and create directories](#Clone-repository-and-create-directories) - [Introduction to docker and docker-compose](#Introduction-to-docker-and-docker-compose) - - [Docker cleanup (optional)](#Docker-cleanup-(optional)) + - [Docker cleanup (optional)](#docker-cleanup-optional) - [Containers cleanup](#Containers-cleanup) - [Networks cleanup](#Networks-cleanup) - [Volumes cleanup](#Volumes-cleanup) @@ -28,7 +28,7 @@ This is the simple educational project prepared to support my recent presentatio - [Install composer dependencies](#Install-composer-dependencies) - [Elasticsearch index creation and population](#Elasticsearch-index-creation-and-population) - [Make scripts executable](#Make-scripts-executable) - - [Quick setup with init.sh](#Quick-setup-with-init.sh) + - [Quick setup with init.sh](#quick-setup-with-initsh) - [Step by step setup with request.sh](#Step-by-step-setup-with-request.sh) - [Create index](#Create-index) - [Populate index with data](#Populate-index-with-data) @@ -36,7 +36,7 @@ This is the simple educational project prepared to support my recent presentatio - [Search](#Search) - [Delete index](#Delete-index) - [Step by step other methods](#Step-by-step-other-methods) -- [How to play with it?](#How-to-play-with-it?) +- [How to play with it?](#how-to-play-with-it) - [Docker](#Docker) - [Run all services](#Run-all-services) - [Release the shell lock](#Release-the-shell-lock) @@ -44,8 +44,8 @@ This is the simple educational project prepared to support my recent presentatio - [Run a specific profile](#Run-a-specific-profile) - [Stop services](#Stop-services) - [Remove service containers](#Remove-service-containers) - - [Stop & remove service containers with their network](#Stop-&-remove-service-containers-with-their-network) - - [Run, Stop, Remove](#Run,-Stop,-Remove) + - [Stop & remove service containers with their network](#stop--remove-service-containers-with-their-network) + - [Run, Stop, Remove](#run-stop-remove) - [Build images](#Build-images) - [Composer](#Composer) - [Monitoring](#Monitoring) @@ -304,7 +304,7 @@ docker ps -a --format '{{.Image}} {{.Status}} {{.Ports}}' 4. Open your browser and go to: http://localhost:9090 -4. Read the section [How to play with it?](#How-to-play-with-it?) +4. Read the section [How to play with it?](#how-to-play-with-it) 5. Read about the project structure in [./docker/service/README.md](./docker/service/README.md) @@ -602,7 +602,7 @@ Once you start working with this application and modify it, stop, remove, build In such case, you may find useful -Following steps from [Run, Stop, Remove](#Run,-Stop,-Remove) to run and do all cleanup after shutting the application down. +Following steps from [Run, Stop, Remove](#run-stop-remove) to run and do all cleanup after shutting the application down. or using this command: @@ -640,7 +640,7 @@ If you run these commands with `sudo` then the user id will be 0 as well as the You will have no benefit of running the commands with `sudo` but only will degrade security and make setting access permissions for user, group and others pointless. -If you have any problems running docker commands without `sudo` then you need to add your user to the docker group, read about that in the [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker-cleanup)) section. +If you have any problems running docker commands without `sudo` then you need to add your user to the docker group, read about that in the [Quick setup (without Docker cleanup)](#quick-setup-without-docker-cleanup) section. run: @@ -869,7 +869,7 @@ Success. That's it. Open your bowser and visit http://localhost:9090/ and -Read the section [How to play with it?](#How-to-play-with-it?). +Read the section [How to play with it?](#how-to-play-with-it). [^TOC^](#Table-of-contents) @@ -1027,7 +1027,7 @@ To address that issue check commands from sections as below: - [Stop services](#Stop-services) (equivalent of Ctrl+c) - [Remove service containers](#Remove-service-containers) -- [Stop & remove service containers with their network](#Stop-&-remove-service-containers-with-their-network) +- [Stop & remove service containers with their network](#stop--remove-service-containers-with-their-network) [^TOC^](#Table-of-contents) @@ -1136,7 +1136,7 @@ Documentation: [Using profiles with Compose](https://docs.docker.com/compose/pro It makes sense to use it only if you plan to restart these containers later. -If your intention is to remove services then use command provided in [Remove service containers](#Remove-service-containers) that may stop containers as well before removing them or use [Stop & remove service containers with their network](#Stop-&-remove-service-containers-with-their-network) that is able to do the same plus networks removal. +If your intention is to remove services then use command provided in [Remove service containers](#Remove-service-containers) that may stop containers as well before removing them or use [Stop & remove service containers with their network](#stop--remove-service-containers-with-their-network) that is able to do the same plus networks removal. If you want to only stop docker containers that were started by @@ -1197,7 +1197,7 @@ Going to remove carrental-nginx-v1-1, carrental-elasticsearch-v7-1, carrental-ph ⠿ Container carrental-php-fpm-v8-1 Removed 0.0s ``` -If you want to remove also networks then look at: [Stop & remove service containers with their network](#Stop & remove service containers with their network) +If you want to remove also networks then look at: [Stop & remove service containers with their network](#stop--remove-service-containers-with-their-network) [^TOC^](#Table-of-contents) @@ -1326,7 +1326,7 @@ If the column has a hash value like: `26d6a19a43ba` instead of a container name In such case you may need to: - Check if a new Dockerfile has any errors and if it was successfully build and tagged -- Follow steps from [Run, Stop, Remove](#Run,-Stop,-Remove) +- Follow steps from [Run, Stop, Remove](#run-stop-remove) - Follow steps from [Development time cleanup](#Development-time-cleanup) [^TOC^](#Table-of-contents) @@ -1404,7 +1404,7 @@ docker image ls 'carrental_*' #### Reinstallation -At any point of time you may run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker cleanup)). +At any point of time you may run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#quick-setup-without-docker-cleanup). You may do that for example to change the project's files and directories ownership to a different user. If you want to do that just switch to the user that should own that project and perform the `./setup.sh` again. @@ -1504,7 +1504,7 @@ or you may do it step by step: - [Create index](#Create-index) - [Populate index with data](#Populate-index-with-data) -An alternative way is to run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#Quick-setup-(without-Docker-cleanup)) +An alternative way is to run the `./setup.sh` script again as described in [Quick setup (without Docker cleanup)](#quick-setup-without-docker-cleanup) You may use also: [Step by step other methods](#Step-by-step-other-methods) From 83f3230cc82ae2943344a0ccef1bce5af2fd4f25 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Tue, 22 Mar 2022 02:25:09 +0100 Subject: [PATCH 09/23] Update github link so it points to 212223 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b43a056..853966a 100644 --- a/README.md +++ b/README.md @@ -210,7 +210,7 @@ docker ps -a --format '{{.Image}} {{.Status}} {{.Ports}}' 1. Clone this repository: ```sh - git clone 'https://github.com/lrynek/painless-car-rental.git' + git clone 'https://github.com/212223/painless-car-rental.git' ``` 3. Change directory: @@ -319,7 +319,7 @@ docker ps -a --format '{{.Image}} {{.Status}} {{.Ports}}' Clone this repository && change dir to it: ```sh -git clone 'https://github.com/lrynek/painless-car-rental' && cd painless-car-rental/docker/service +git clone 'https://github.com/212223/painless-car-rental.git' && cd painless-car-rental/docker/service ``` From 4e6222a5d39ec4f1bb24bc167ee765369d3ed81d Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Tue, 22 Mar 2022 02:27:43 +0100 Subject: [PATCH 10/23] Update comment --- docker/service/_network.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docker/service/_network.yaml b/docker/service/_network.yaml index 461b795..3f166a3 100644 --- a/docker/service/_network.yaml +++ b/docker/service/_network.yaml @@ -6,8 +6,7 @@ version: "3.7" # Note that only nginx-v1 is connected to the frontend and # backend network. # All other services are connected to the backend network only. -# Backend network is set as internal, therefore Nginx service -# is the only entry point for the incoming requests. +# Backend network may be set as internal. services: nginx-v1: @@ -49,4 +48,4 @@ networks: frontend: internal: false backend: - internal: false # change to true if you don't want that network to be accesible from the HOST \ No newline at end of file + internal: false # change to true if you don't want that network to be accesible from the HOST From 9862bc7a4ee9e67ad21fd196259fdfa7e181ca15 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Tue, 22 Mar 2022 02:37:16 +0100 Subject: [PATCH 11/23] Update comment --- docker/service/docker-compose.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/service/docker-compose.yaml b/docker/service/docker-compose.yaml index bfea030..6f9465f 100644 --- a/docker/service/docker-compose.yaml +++ b/docker/service/docker-compose.yaml @@ -1,9 +1,9 @@ version: "3.7" -#TODO use variables instead of ./app dir for volumes perhaps save it in -#TODO use ulimits https://youtu.be/PWUuyDrqvt0?t=199 -#TODO move volumes to separate files +# Application specific code is in files that start with an underscore, for exmple: +# _network.yaml +# _profiles.yaml -# this is good place for anchors that you later may use a substitution for aliases - -#TODO https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ \ No newline at end of file +# Service specific code is in files without underscore, example: +# nginx-v1.yaml +# php-fpm-v8.yaml From 46708e8fca22b8f0fdd56dc48ef4a01b803711ab Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Tue, 22 Mar 2022 02:41:24 +0100 Subject: [PATCH 12/23] Update comment --- docker/service/docker-compose.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docker/service/docker-compose.yaml b/docker/service/docker-compose.yaml index 6f9465f..23b4bef 100644 --- a/docker/service/docker-compose.yaml +++ b/docker/service/docker-compose.yaml @@ -1,9 +1,18 @@ version: "3.7" # Application specific code is in files that start with an underscore, for exmple: +# # _network.yaml # _profiles.yaml # Service specific code is in files without underscore, example: +# # nginx-v1.yaml # php-fpm-v8.yaml + +# All files are combined by providing their filenames as a value of the +# variable COMPOSE_FILE, for example: +# +# COMPOSE_FILE=_network.yaml:_restart-policy.yaml ... +# +# in the .env file From 718b5aaedab0d30b1611f0d20f60840eb2b24cb8 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Wed, 23 Mar 2022 01:40:04 +0100 Subject: [PATCH 13/23] Add new line at the end of files. --- app/default/.elasticsearch-http-requests/init.sh | 2 +- app/default/.elasticsearch-http-requests/request.sh | 2 +- docker/service/.gitignore | 2 +- docker/service/_restart-policy.yaml | 2 +- docker/service/nginx-v1/image/.dockerignore | 2 +- docker/service/nginx-v1/image/.gitignore | 2 +- docker/service/php-composer-v2.yaml | 2 +- docker/service/php-fpm-v8/image/Dockerfile | 2 +- .../php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/default/.elasticsearch-http-requests/init.sh b/app/default/.elasticsearch-http-requests/init.sh index 0e7dead..316e209 100755 --- a/app/default/.elasticsearch-http-requests/init.sh +++ b/app/default/.elasticsearch-http-requests/init.sh @@ -9,4 +9,4 @@ SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"; "$SCRIPTPATH/request.sh" "$SCRIPTPATH/Index/Bulk.http" && sleep 1 && \ "$SCRIPTPATH/request.sh" "$SCRIPTPATH/Index/Count.http" -printf "Done!\n" \ No newline at end of file +printf "Done!\n" diff --git a/app/default/.elasticsearch-http-requests/request.sh b/app/default/.elasticsearch-http-requests/request.sh index ad6be8f..55730db 100755 --- a/app/default/.elasticsearch-http-requests/request.sh +++ b/app/default/.elasticsearch-http-requests/request.sh @@ -81,4 +81,4 @@ printf "$response" | grep -vE "$expected_pattern" > /dev/null || \ { printf "${RED}FAIL${NC}\nThere was an error with cURL exit code: ${ec:-0}, and response: $response\n" && exit ${ec:-1}; } printf "$response\n" -printf "${GREEN}Success.${NC}\n" \ No newline at end of file +printf "${GREEN}Success.${NC}\n" diff --git a/docker/service/.gitignore b/docker/service/.gitignore index 16d6a7c..338906f 100644 --- a/docker/service/.gitignore +++ b/docker/service/.gitignore @@ -1 +1 @@ -docker-compose.override.yaml \ No newline at end of file +docker-compose.override.yaml diff --git a/docker/service/_restart-policy.yaml b/docker/service/_restart-policy.yaml index 1af11a6..6f8f138 100644 --- a/docker/service/_restart-policy.yaml +++ b/docker/service/_restart-policy.yaml @@ -13,4 +13,4 @@ services: restart: unless-stopped php-composer-v2: - restart: unless-stopped \ No newline at end of file + restart: unless-stopped diff --git a/docker/service/nginx-v1/image/.dockerignore b/docker/service/nginx-v1/image/.dockerignore index 8821ddb..b86eea6 100644 --- a/docker/service/nginx-v1/image/.dockerignore +++ b/docker/service/nginx-v1/image/.dockerignore @@ -1,2 +1,2 @@ files/usr -files/var \ No newline at end of file +files/var diff --git a/docker/service/nginx-v1/image/.gitignore b/docker/service/nginx-v1/image/.gitignore index 8821ddb..b86eea6 100644 --- a/docker/service/nginx-v1/image/.gitignore +++ b/docker/service/nginx-v1/image/.gitignore @@ -1,2 +1,2 @@ files/usr -files/var \ No newline at end of file +files/var diff --git a/docker/service/php-composer-v2.yaml b/docker/service/php-composer-v2.yaml index 326151a..1d01d9d 100644 --- a/docker/service/php-composer-v2.yaml +++ b/docker/service/php-composer-v2.yaml @@ -44,4 +44,4 @@ services: working_dir: /app/default volumes: - - ${app_path:-./app}:/app \ No newline at end of file + - ${app_path:-./app}:/app diff --git a/docker/service/php-fpm-v8/image/Dockerfile b/docker/service/php-fpm-v8/image/Dockerfile index 92a95e0..0721279 100644 --- a/docker/service/php-fpm-v8/image/Dockerfile +++ b/docker/service/php-fpm-v8/image/Dockerfile @@ -1,2 +1,2 @@ ARG image -FROM $image AS dev \ No newline at end of file +FROM $image AS dev diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini index 5d65e65..a6d1f95 100644 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini +++ b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini @@ -1,3 +1,3 @@ ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit -memory_limit = 2G \ No newline at end of file +memory_limit = 2G From 59e47a75572e500cd7070e0f4740bb8ed76843cd Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Wed, 23 Mar 2022 02:51:55 +0100 Subject: [PATCH 14/23] Revert all changes to the webapp excluding src/Elasticsearch/Service/ApiClient.php from the commit 599bdb3d8dcce85f603b951a43f98c36063cf747 --- app/default/composer.json | 3 +- app/default/composer.lock | 241 +++++++++--------- .../src/Controller/DefaultController.php | 9 - .../ParamConverter/PageParamConverter.php | 2 +- .../Repository/CarRepository.php | 12 +- .../ValueObject/Criteria/Criteria.php | 5 - app/default/src/ValueObject/PagesTotal.php | 4 +- 7 files changed, 127 insertions(+), 149 deletions(-) diff --git a/app/default/composer.json b/app/default/composer.json index 4397419..4ffdb38 100644 --- a/app/default/composer.json +++ b/app/default/composer.json @@ -16,7 +16,8 @@ "symfony/runtime": "5.4.*", "symfony/twig-bundle": "5.4.*", "symfony/yaml": "5.4.*", - "twig/extra-bundle": "^3.0" + "twig/extra-bundle": "^3.0", + "twig/twig": "^3.0" }, "require-dev": { }, diff --git a/app/default/composer.lock b/app/default/composer.lock index 0613fbf..80fb3f2 100644 --- a/app/default/composer.lock +++ b/app/default/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e86fee6de8c9cc2005f15cfe0befa5b3", + "content-hash": "48aa5afe50d1f6a83a78669c39530ede", "packages": [ { "name": "doctrine/annotations", @@ -80,16 +80,16 @@ }, { "name": "doctrine/lexer", - "version": "1.2.3", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", "shasum": "" }, "require": { @@ -97,7 +97,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -136,7 +136,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" + "source": "https://github.com/doctrine/lexer/tree/1.2.2" }, "funding": [ { @@ -152,7 +152,7 @@ "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2022-01-12T08:27:12+00:00" }, { "name": "guzzlehttp/guzzle", @@ -198,12 +198,12 @@ } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -305,12 +305,12 @@ } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -958,16 +958,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.6", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b" + "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/c0718d0e01ac14251a45cc9c8b93716ec41ae64b", - "reference": "c0718d0e01ac14251a45cc9c8b93716ec41ae64b", + "url": "https://api.github.com/repos/symfony/cache/zipball/4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", + "reference": "4178f0a19ec3f1f76e7f1a07b8187cbe3d94b825", "shasum": "" }, "require": { @@ -1035,7 +1035,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.6" + "source": "https://github.com/symfony/cache/tree/v5.4.3" }, "funding": [ { @@ -1051,7 +1051,7 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:56:28+00:00" + "time": "2022-01-26T16:28:35+00:00" }, { "name": "symfony/cache-contracts", @@ -1213,16 +1213,16 @@ }, { "name": "symfony/console", - "version": "v5.4.5", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad" + "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad", - "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad", + "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", "shasum": "" }, "require": { @@ -1292,7 +1292,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.5" + "source": "https://github.com/symfony/console/tree/v5.4.3" }, "funding": [ { @@ -1308,20 +1308,20 @@ "type": "tidelift" } ], - "time": "2022-02-24T12:45:35+00:00" + "time": "2022-01-26T16:28:35+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.6", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "0828fa3e6e436243dbb3dc85abe6b698b3876b89" + "reference": "974580fd67f14d65b045c11b09eb149cd4b13df5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0828fa3e6e436243dbb3dc85abe6b698b3876b89", - "reference": "0828fa3e6e436243dbb3dc85abe6b698b3876b89", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/974580fd67f14d65b045c11b09eb149cd4b13df5", + "reference": "974580fd67f14d65b045c11b09eb149cd4b13df5", "shasum": "" }, "require": { @@ -1337,7 +1337,7 @@ "symfony/config": "<5.3", "symfony/finder": "<4.4", "symfony/proxy-manager-bridge": "<4.4", - "symfony/yaml": "<4.4.26" + "symfony/yaml": "<4.4" }, "provide": { "psr/container-implementation": "1.0", @@ -1346,7 +1346,7 @@ "require-dev": { "symfony/config": "^5.3|^6.0", "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4.26|^5.0|^6.0" + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/config": "", @@ -1381,7 +1381,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.6" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.3" }, "funding": [ { @@ -1397,7 +1397,7 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-01-26T16:28:35+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1468,16 +1468,16 @@ }, { "name": "symfony/dotenv", - "version": "v5.4.5", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9" + "reference": "84d1af2d39dd81b48eb1cd3af3f107eea7a275bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/83a2310904a4f5d4f42526227b5a578ac82232a9", - "reference": "83a2310904a4f5d4f42526227b5a578ac82232a9", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/84d1af2d39dd81b48eb1cd3af3f107eea7a275bb", + "reference": "84d1af2d39dd81b48eb1cd3af3f107eea7a275bb", "shasum": "" }, "require": { @@ -1519,7 +1519,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.4.5" + "source": "https://github.com/symfony/dotenv/tree/v5.4.3" }, "funding": [ { @@ -1535,7 +1535,7 @@ "type": "tidelift" } ], - "time": "2022-02-15T17:04:12+00:00" + "time": "2022-01-26T16:19:10+00:00" }, { "name": "symfony/error-handler", @@ -1774,16 +1774,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.6", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d53a45039974952af7f7ebc461ccdd4295e29440" + "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d53a45039974952af7f7ebc461ccdd4295e29440", - "reference": "d53a45039974952af7f7ebc461ccdd4295e29440", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f0c4bf1840420f4aef3f32044a9dbb24682731b", + "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b", "shasum": "" }, "require": { @@ -1818,7 +1818,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.6" + "source": "https://github.com/symfony/filesystem/tree/v5.4.3" }, "funding": [ { @@ -1834,7 +1834,7 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/finder", @@ -1901,16 +1901,16 @@ }, { "name": "symfony/flex", - "version": "v2.1.6", + "version": "v2.1.4", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "dd7dafe3bfebf8441e167b76d8a18974585467f3" + "reference": "110e8928b6e719e9b9f146c8fd92c41a4b74a3ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/dd7dafe3bfebf8441e167b76d8a18974585467f3", - "reference": "dd7dafe3bfebf8441e167b76d8a18974585467f3", + "url": "https://api.github.com/repos/symfony/flex/zipball/110e8928b6e719e9b9f146c8fd92c41a4b74a3ac", + "reference": "110e8928b6e719e9b9f146c8fd92c41a4b74a3ac", "shasum": "" }, "require": { @@ -1946,7 +1946,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.1.6" + "source": "https://github.com/symfony/flex/tree/v2.1.4" }, "funding": [ { @@ -1962,20 +1962,20 @@ "type": "tidelift" } ], - "time": "2022-02-16T17:31:43+00:00" + "time": "2022-01-27T10:25:12+00:00" }, { "name": "symfony/framework-bundle", - "version": "v5.4.6", + "version": "v5.4.4", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "76ea755f30924924ea37a28e098df61679efcb63" + "reference": "d848b8ca3d87d0fcc9d0ccbc88cf8e128db0d4c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/76ea755f30924924ea37a28e098df61679efcb63", - "reference": "76ea755f30924924ea37a28e098df61679efcb63", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/d848b8ca3d87d0fcc9d0ccbc88cf8e128db0d4c7", + "reference": "d848b8ca3d87d0fcc9d0ccbc88cf8e128db0d4c7", "shasum": "" }, "require": { @@ -1983,7 +1983,7 @@ "php": ">=7.2.5", "symfony/cache": "^5.2|^6.0", "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^5.4.5|^6.0.5", + "symfony/dependency-injection": "^5.3|^6.0", "symfony/deprecation-contracts": "^2.1|^3", "symfony/error-handler": "^4.4.1|^5.0.1|^6.0", "symfony/event-dispatcher": "^5.1|^6.0", @@ -2030,6 +2030,7 @@ "doctrine/annotations": "^1.13.1", "doctrine/cache": "^1.11|^2.0", "doctrine/persistence": "^1.3|^2.0", + "paragonie/sodium_compat": "^1.8", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/asset": "^5.3|^6.0", "symfony/browser-kit": "^5.4|^6.0", @@ -2098,7 +2099,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.4.6" + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.4" }, "funding": [ { @@ -2114,20 +2115,20 @@ "type": "tidelift" } ], - "time": "2022-03-04T14:13:35+00:00" + "time": "2022-01-29T17:49:40+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.6", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465" + "reference": "ef409ff341a565a3663157d4324536746d49a0c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/34e89bc147633c0f9dd6caaaf56da3b806a21465", - "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ef409ff341a565a3663157d4324536746d49a0c7", + "reference": "ef409ff341a565a3663157d4324536746d49a0c7", "shasum": "" }, "require": { @@ -2171,7 +2172,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.6" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.3" }, "funding": [ { @@ -2187,20 +2188,20 @@ "type": "tidelift" } ], - "time": "2022-03-05T21:03:43+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.6", + "version": "v5.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d" + "reference": "49f40347228c773688a0488feea0175aa7f4d268" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d41f29ae9af1b5f40c7ebcddf09082953229411d", - "reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/49f40347228c773688a0488feea0175aa7f4d268", + "reference": "49f40347228c773688a0488feea0175aa7f4d268", "shasum": "" }, "require": { @@ -2283,7 +2284,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.6" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.4" }, "funding": [ { @@ -2299,11 +2300,11 @@ "type": "tidelift" } ], - "time": "2022-03-05T21:14:51+00:00" + "time": "2022-01-29T18:08:07+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.25.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -2364,7 +2365,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" }, "funding": [ { @@ -2384,7 +2385,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.25.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2448,7 +2449,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" }, "funding": [ { @@ -2468,7 +2469,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.25.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -2500,12 +2501,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" - } + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2531,7 +2532,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" }, "funding": [ { @@ -2551,7 +2552,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.25.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -2610,7 +2611,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" }, "funding": [ { @@ -2630,16 +2631,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.25.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", + "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", "shasum": "" }, "require": { @@ -2693,7 +2694,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" }, "funding": [ { @@ -2709,11 +2710,11 @@ "type": "tidelift" } ], - "time": "2022-03-04T08:16:47+00:00" + "time": "2021-09-13T13:58:33+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.25.0", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -2772,7 +2773,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" }, "funding": [ { @@ -2882,16 +2883,16 @@ }, { "name": "symfony/runtime", - "version": "v5.4.5", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "06fdd940ebf240ed7d9c9832cd97bf3133847316" + "reference": "354ce8493868594339cafe17ef67aba874c12158" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/06fdd940ebf240ed7d9c9832cd97bf3133847316", - "reference": "06fdd940ebf240ed7d9c9832cd97bf3133847316", + "url": "https://api.github.com/repos/symfony/runtime/zipball/354ce8493868594339cafe17ef67aba874c12158", + "reference": "354ce8493868594339cafe17ef67aba874c12158", "shasum": "" }, "require": { @@ -2939,7 +2940,7 @@ "description": "Enables decoupling PHP applications from global state", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/runtime/tree/v5.4.5" + "source": "https://github.com/symfony/runtime/tree/v5.4.3" }, "funding": [ { @@ -2955,7 +2956,7 @@ "type": "tidelift" } ], - "time": "2022-02-15T13:38:03+00:00" + "time": "2022-01-26T17:32:52+00:00" }, { "name": "symfony/service-contracts", @@ -3072,12 +3073,12 @@ }, "type": "library", "autoload": { - "files": [ - "Resources/functions.php" - ], "psr-4": { "Symfony\\Component\\String\\": "" }, + "files": [ + "Resources/functions.php" + ], "exclude-from-classmap": [ "/Tests/" ] @@ -3205,16 +3206,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v5.4.5", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "648c8694a9470ae4aaf64cbce1b640f5941fd7c9" + "reference": "925719b20832e3dabd399fd9ebf85ed0eabf9999" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/648c8694a9470ae4aaf64cbce1b640f5941fd7c9", - "reference": "648c8694a9470ae4aaf64cbce1b640f5941fd7c9", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/925719b20832e3dabd399fd9ebf85ed0eabf9999", + "reference": "925719b20832e3dabd399fd9ebf85ed0eabf9999", "shasum": "" }, "require": { @@ -3306,7 +3307,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v5.4.5" + "source": "https://github.com/symfony/twig-bridge/tree/v5.4.3" }, "funding": [ { @@ -3322,7 +3323,7 @@ "type": "tidelift" } ], - "time": "2022-02-09T08:59:58+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/twig-bundle", @@ -3415,16 +3416,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.6", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0" + "reference": "970a01f208bf895c5f327ba40b72288da43adec4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/294e9da6e2e0dd404e983daa5aa74253d92c05d0", - "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/970a01f208bf895c5f327ba40b72288da43adec4", + "reference": "970a01f208bf895c5f327ba40b72288da43adec4", "shasum": "" }, "require": { @@ -3484,7 +3485,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.6" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.3" }, "funding": [ { @@ -3500,20 +3501,20 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-01-17T16:30:37+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.6", + "version": "v5.4.3", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5" + "reference": "b199936b7365be36663532e547812d3abb10234a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/49e2355fe6f59ea30c18ebb68edf13b7e20582e5", - "reference": "49e2355fe6f59ea30c18ebb68edf13b7e20582e5", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b199936b7365be36663532e547812d3abb10234a", + "reference": "b199936b7365be36663532e547812d3abb10234a", "shasum": "" }, "require": { @@ -3557,7 +3558,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.6" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.3" }, "funding": [ { @@ -3573,7 +3574,7 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/yaml", diff --git a/app/default/src/Controller/DefaultController.php b/app/default/src/Controller/DefaultController.php index 21c3e85..b5e2f24 100644 --- a/app/default/src/Controller/DefaultController.php +++ b/app/default/src/Controller/DefaultController.php @@ -15,17 +15,11 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; -use Psr\Log\LoggerInterface; final class DefaultController extends AbstractController { private const PAGE_DEFAULT = 1; - public function __construct(LoggerInterface $logger = null) - { - - } - #[Route('/{page}', name: 'app_search', requirements: ['page' => '\d+'], defaults: ['page' => self::PAGE_DEFAULT])] #[ParamConverter('pagination', class: PageParamConverter::class)] #[ParamConverter('criteria', class: CriteriaParamConverter::class)] @@ -34,11 +28,8 @@ public function list( AdditionalServiceRepositoryInterface $serviceRepository, Pagination $pagination, Criteria $criteria - ): Response { - // $this->logger = $logger; - $cars = $carRepository->find($pagination, $criteria); $filtersData = [ diff --git a/app/default/src/Controller/ParamConverter/PageParamConverter.php b/app/default/src/Controller/ParamConverter/PageParamConverter.php index 66b8d5f..2388dc9 100644 --- a/app/default/src/Controller/ParamConverter/PageParamConverter.php +++ b/app/default/src/Controller/ParamConverter/PageParamConverter.php @@ -13,7 +13,7 @@ final class PageParamConverter extends AbstractParamConverter { private const PARAM_PAGE = 'page'; private const PAGE_DEFAULT = 1; - private const RESULTS_PER_PAGE = 10; + private const RESULTS_PER_PAGE = 3; public function apply(Request $request, ParamConverter $configuration): bool { diff --git a/app/default/src/Elasticsearch/Repository/CarRepository.php b/app/default/src/Elasticsearch/Repository/CarRepository.php index ce8ce3c..8a7a3f2 100644 --- a/app/default/src/Elasticsearch/Repository/CarRepository.php +++ b/app/default/src/Elasticsearch/Repository/CarRepository.php @@ -13,7 +13,6 @@ use App\ValueObject\Cars; use App\ValueObject\CriteriaInterface; use App\ValueObject\Pagination; -use Psr\Log\LoggerInterface; final class CarRepository implements CarRepositoryInterface { @@ -21,12 +20,10 @@ final class CarRepository implements CarRepositoryInterface public function __construct( private ApiClientInterface $client, - private CarsHydratorInterface $hydrator, - LoggerInterface $logger = null + private CarsHydratorInterface $hydrator ) { $this->index = Index::CARS(); - $this->logger = $logger; } public function find(Pagination $pagination, ?CriteriaInterface $criteria = null): Cars @@ -36,11 +33,6 @@ public function find(Pagination $pagination, ?CriteriaInterface $criteria = null $response = $this->client->search($this->index, $query); - $this->logger->info('Found: [' . count($response->results()) . ']' . ' for query: ' . json_encode($query->toArray())); - - $hydra = $this->hydrator->hydrate($response); - - // var_dump($hydra); die; - return $hydra; + return $this->hydrator->hydrate($response); } } diff --git a/app/default/src/Elasticsearch/ValueObject/Criteria/Criteria.php b/app/default/src/Elasticsearch/ValueObject/Criteria/Criteria.php index b2c7651..97df89b 100644 --- a/app/default/src/Elasticsearch/ValueObject/Criteria/Criteria.php +++ b/app/default/src/Elasticsearch/ValueObject/Criteria/Criteria.php @@ -11,11 +11,6 @@ final class Criteria implements CriteriaInterface private array $additional = []; private array $excluded = []; - public function __toString() - { - return implode(',', $this->required); - } - public function addRequired(Criterion $criterion): self { $this->required[$criterion::class] = $criterion; diff --git a/app/default/src/ValueObject/PagesTotal.php b/app/default/src/ValueObject/PagesTotal.php index e1a2bd3..dcaf58a 100644 --- a/app/default/src/ValueObject/PagesTotal.php +++ b/app/default/src/ValueObject/PagesTotal.php @@ -5,14 +5,12 @@ final class PagesTotal { - private const MIN_PAGE = 4; + private const MIN_PAGE = 1; private int $value; public function __construct(PagesTotalAwareInterface $results, ResultsPerPage $resultsPerPage) { - $this->value = (int)floor($results->total() / $resultsPerPage->value()); - if ($resultsPerPage->value() > $results->total()) { $this->value = self::MIN_PAGE; } else { From 29e98920e2670e342a85c5cd17634d02ee5a078a Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Wed, 23 Mar 2022 04:04:20 +0100 Subject: [PATCH 15/23] Variable name change ELASTICSEARCH_HOST to camelCase --- app/default/src/Elasticsearch/Service/ApiClient.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/default/src/Elasticsearch/Service/ApiClient.php b/app/default/src/Elasticsearch/Service/ApiClient.php index 51c3344..63bf82a 100644 --- a/app/default/src/Elasticsearch/Service/ApiClient.php +++ b/app/default/src/Elasticsearch/Service/ApiClient.php @@ -11,13 +11,13 @@ final class ApiClient implements ApiClientInterface { - private $ELASTICSEARCH_HOST; + private $elasticsearchHost; private const ENDPOINT_SEARCH = '_search'; public function __construct(private ClientInterface $client) { - $this->ELASTICSEARCH_HOST = getenv('DOCKER_ELASTICSEARCH_HOST'); + $this->elasticsearchHost = getenv('DOCKER_ELASTICSEARCH_HOST'); } public function search(Index $index, Query $query): Response @@ -30,7 +30,7 @@ public function search(Index $index, Query $query): Response private function createEndpointUrl(string $index, string $endpoint): string { - return implode(DIRECTORY_SEPARATOR, [$this->ELASTICSEARCH_HOST, $index, $endpoint]); + return implode(DIRECTORY_SEPARATOR, [$this->elasticsearchHost, $index, $endpoint]); } private function convertResponseToArray(ResponseInterface $response): array From a9d3747877e4ec0f8f94ee70f2448eab3ff72b66 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Wed, 23 Mar 2022 23:51:13 +0100 Subject: [PATCH 16/23] Use parameter app.elasticsearch.host in ApiClient --- app/default/config/services.yaml | 5 +++++ app/default/src/Elasticsearch/Service/ApiClient.php | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/default/config/services.yaml b/app/default/config/services.yaml index f222cf4..242c2cd 100644 --- a/app/default/config/services.yaml +++ b/app/default/config/services.yaml @@ -4,6 +4,7 @@ # Put parameters here that don't need to change on each machine where the app is deployed # https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration parameters: + app.elasticsearch.host: '%env(DOCKER_ELASTICSEARCH_HOST)%' services: # default configuration for services in *this* file @@ -35,3 +36,7 @@ services: resource: '../src/Twig/Extension/*' tags: - { name: twig.extension } + + App\Elasticsearch\Service\ApiClient: + arguments: + $elasticsearchHost: '%app.elasticsearch.host%' diff --git a/app/default/src/Elasticsearch/Service/ApiClient.php b/app/default/src/Elasticsearch/Service/ApiClient.php index 63bf82a..0215fed 100644 --- a/app/default/src/Elasticsearch/Service/ApiClient.php +++ b/app/default/src/Elasticsearch/Service/ApiClient.php @@ -15,9 +15,9 @@ final class ApiClient implements ApiClientInterface private const ENDPOINT_SEARCH = '_search'; - public function __construct(private ClientInterface $client) + public function __construct(private ClientInterface $client, string $elasticsearchHost) { - $this->elasticsearchHost = getenv('DOCKER_ELASTICSEARCH_HOST'); + $this->elasticsearchHost = $elasticsearchHost; } public function search(Index $index, Query $query): Response From f23be2ccce0865d878e762206a8367fd86185577 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Thu, 24 Mar 2022 00:43:30 +0100 Subject: [PATCH 17/23] Remove not neccessary files from nginx-v1 service. --- .../image/files/etc/nginx/fastcgi_params | 25 ---- .../nginx-v1/image/files/etc/nginx/koi-utf | 109 --------------- .../nginx-v1/image/files/etc/nginx/koi-win | 103 -------------- .../nginx-v1/image/files/etc/nginx/mime.types | 97 -------------- .../nginx-v1/image/files/etc/nginx/modules | 1 - .../nginx-v1/image/files/etc/nginx/nginx.conf | 36 ----- .../image/files/etc/nginx/scgi_params | 17 --- .../image/files/etc/nginx/uwsgi_params | 17 --- .../nginx-v1/image/files/etc/nginx/win-utf | 126 ------------------ docker/service/nginx-v1/image/files/site.conf | 7 - 10 files changed, 538 deletions(-) delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/fastcgi_params delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/koi-utf delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/koi-win delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/mime.types delete mode 120000 docker/service/nginx-v1/image/files/etc/nginx/modules delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/nginx.conf delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/scgi_params delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params delete mode 100644 docker/service/nginx-v1/image/files/etc/nginx/win-utf delete mode 100644 docker/service/nginx-v1/image/files/site.conf diff --git a/docker/service/nginx-v1/image/files/etc/nginx/fastcgi_params b/docker/service/nginx-v1/image/files/etc/nginx/fastcgi_params deleted file mode 100644 index 28decb9..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/fastcgi_params +++ /dev/null @@ -1,25 +0,0 @@ - -fastcgi_param QUERY_STRING $query_string; -fastcgi_param REQUEST_METHOD $request_method; -fastcgi_param CONTENT_TYPE $content_type; -fastcgi_param CONTENT_LENGTH $content_length; - -fastcgi_param SCRIPT_NAME $fastcgi_script_name; -fastcgi_param REQUEST_URI $request_uri; -fastcgi_param DOCUMENT_URI $document_uri; -fastcgi_param DOCUMENT_ROOT $document_root; -fastcgi_param SERVER_PROTOCOL $server_protocol; -fastcgi_param REQUEST_SCHEME $scheme; -fastcgi_param HTTPS $https if_not_empty; - -fastcgi_param GATEWAY_INTERFACE CGI/1.1; -fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; - -fastcgi_param REMOTE_ADDR $remote_addr; -fastcgi_param REMOTE_PORT $remote_port; -fastcgi_param SERVER_ADDR $server_addr; -fastcgi_param SERVER_PORT $server_port; -fastcgi_param SERVER_NAME $server_name; - -# PHP only, required if PHP was built with --enable-force-cgi-redirect -fastcgi_param REDIRECT_STATUS 200; diff --git a/docker/service/nginx-v1/image/files/etc/nginx/koi-utf b/docker/service/nginx-v1/image/files/etc/nginx/koi-utf deleted file mode 100644 index e7974ff..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/koi-utf +++ /dev/null @@ -1,109 +0,0 @@ - -# This map is not a full koi8-r <> utf8 map: it does not contain -# box-drawing and some other characters. Besides this map contains -# several koi8-u and Byelorussian letters which are not in koi8-r. -# If you need a full and standard map, use contrib/unicode2nginx/koi-utf -# map instead. - -charset_map koi8-r utf-8 { - - 80 E282AC ; # euro - - 95 E280A2 ; # bullet - - 9A C2A0 ; #   - - 9E C2B7 ; # · - - A3 D191 ; # small yo - A4 D194 ; # small Ukrainian ye - - A6 D196 ; # small Ukrainian i - A7 D197 ; # small Ukrainian yi - - AD D291 ; # small Ukrainian soft g - AE D19E ; # small Byelorussian short u - - B0 C2B0 ; # ° - - B3 D081 ; # capital YO - B4 D084 ; # capital Ukrainian YE - - B6 D086 ; # capital Ukrainian I - B7 D087 ; # capital Ukrainian YI - - B9 E28496 ; # numero sign - - BD D290 ; # capital Ukrainian soft G - BE D18E ; # capital Byelorussian short U - - BF C2A9 ; # (C) - - C0 D18E ; # small yu - C1 D0B0 ; # small a - C2 D0B1 ; # small b - C3 D186 ; # small ts - C4 D0B4 ; # small d - C5 D0B5 ; # small ye - C6 D184 ; # small f - C7 D0B3 ; # small g - C8 D185 ; # small kh - C9 D0B8 ; # small i - CA D0B9 ; # small j - CB D0BA ; # small k - CC D0BB ; # small l - CD D0BC ; # small m - CE D0BD ; # small n - CF D0BE ; # small o - - D0 D0BF ; # small p - D1 D18F ; # small ya - D2 D180 ; # small r - D3 D181 ; # small s - D4 D182 ; # small t - D5 D183 ; # small u - D6 D0B6 ; # small zh - D7 D0B2 ; # small v - D8 D18C ; # small soft sign - D9 D18B ; # small y - DA D0B7 ; # small z - DB D188 ; # small sh - DC D18D ; # small e - DD D189 ; # small shch - DE D187 ; # small ch - DF D18A ; # small hard sign - - E0 D0AE ; # capital YU - E1 D090 ; # capital A - E2 D091 ; # capital B - E3 D0A6 ; # capital TS - E4 D094 ; # capital D - E5 D095 ; # capital YE - E6 D0A4 ; # capital F - E7 D093 ; # capital G - E8 D0A5 ; # capital KH - E9 D098 ; # capital I - EA D099 ; # capital J - EB D09A ; # capital K - EC D09B ; # capital L - ED D09C ; # capital M - EE D09D ; # capital N - EF D09E ; # capital O - - F0 D09F ; # capital P - F1 D0AF ; # capital YA - F2 D0A0 ; # capital R - F3 D0A1 ; # capital S - F4 D0A2 ; # capital T - F5 D0A3 ; # capital U - F6 D096 ; # capital ZH - F7 D092 ; # capital V - F8 D0AC ; # capital soft sign - F9 D0AB ; # capital Y - FA D097 ; # capital Z - FB D0A8 ; # capital SH - FC D0AD ; # capital E - FD D0A9 ; # capital SHCH - FE D0A7 ; # capital CH - FF D0AA ; # capital hard sign -} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/koi-win b/docker/service/nginx-v1/image/files/etc/nginx/koi-win deleted file mode 100644 index 72afabe..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/koi-win +++ /dev/null @@ -1,103 +0,0 @@ - -charset_map koi8-r windows-1251 { - - 80 88 ; # euro - - 95 95 ; # bullet - - 9A A0 ; #   - - 9E B7 ; # · - - A3 B8 ; # small yo - A4 BA ; # small Ukrainian ye - - A6 B3 ; # small Ukrainian i - A7 BF ; # small Ukrainian yi - - AD B4 ; # small Ukrainian soft g - AE A2 ; # small Byelorussian short u - - B0 B0 ; # ° - - B3 A8 ; # capital YO - B4 AA ; # capital Ukrainian YE - - B6 B2 ; # capital Ukrainian I - B7 AF ; # capital Ukrainian YI - - B9 B9 ; # numero sign - - BD A5 ; # capital Ukrainian soft G - BE A1 ; # capital Byelorussian short U - - BF A9 ; # (C) - - C0 FE ; # small yu - C1 E0 ; # small a - C2 E1 ; # small b - C3 F6 ; # small ts - C4 E4 ; # small d - C5 E5 ; # small ye - C6 F4 ; # small f - C7 E3 ; # small g - C8 F5 ; # small kh - C9 E8 ; # small i - CA E9 ; # small j - CB EA ; # small k - CC EB ; # small l - CD EC ; # small m - CE ED ; # small n - CF EE ; # small o - - D0 EF ; # small p - D1 FF ; # small ya - D2 F0 ; # small r - D3 F1 ; # small s - D4 F2 ; # small t - D5 F3 ; # small u - D6 E6 ; # small zh - D7 E2 ; # small v - D8 FC ; # small soft sign - D9 FB ; # small y - DA E7 ; # small z - DB F8 ; # small sh - DC FD ; # small e - DD F9 ; # small shch - DE F7 ; # small ch - DF FA ; # small hard sign - - E0 DE ; # capital YU - E1 C0 ; # capital A - E2 C1 ; # capital B - E3 D6 ; # capital TS - E4 C4 ; # capital D - E5 C5 ; # capital YE - E6 D4 ; # capital F - E7 C3 ; # capital G - E8 D5 ; # capital KH - E9 C8 ; # capital I - EA C9 ; # capital J - EB CA ; # capital K - EC CB ; # capital L - ED CC ; # capital M - EE CD ; # capital N - EF CE ; # capital O - - F0 CF ; # capital P - F1 DF ; # capital YA - F2 D0 ; # capital R - F3 D1 ; # capital S - F4 D2 ; # capital T - F5 D3 ; # capital U - F6 C6 ; # capital ZH - F7 C2 ; # capital V - F8 DC ; # capital soft sign - F9 DB ; # capital Y - FA C7 ; # capital Z - FB D8 ; # capital SH - FC DD ; # capital E - FD D9 ; # capital SHCH - FE D7 ; # capital CH - FF DA ; # capital hard sign -} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/mime.types b/docker/service/nginx-v1/image/files/etc/nginx/mime.types deleted file mode 100644 index 2961256..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/mime.types +++ /dev/null @@ -1,97 +0,0 @@ - -types { - text/html html htm shtml; - text/css css; - text/xml xml; - image/gif gif; - image/jpeg jpeg jpg; - application/javascript js; - application/atom+xml atom; - application/rss+xml rss; - - text/mathml mml; - text/plain txt; - text/vnd.sun.j2me.app-descriptor jad; - text/vnd.wap.wml wml; - text/x-component htc; - - image/png png; - image/svg+xml svg svgz; - image/tiff tif tiff; - image/vnd.wap.wbmp wbmp; - image/webp webp; - image/x-icon ico; - image/x-jng jng; - image/x-ms-bmp bmp; - - font/woff woff; - font/woff2 woff2; - - application/java-archive jar war ear; - application/json json; - application/mac-binhex40 hqx; - application/msword doc; - application/pdf pdf; - application/postscript ps eps ai; - application/rtf rtf; - application/vnd.apple.mpegurl m3u8; - application/vnd.google-earth.kml+xml kml; - application/vnd.google-earth.kmz kmz; - application/vnd.ms-excel xls; - application/vnd.ms-fontobject eot; - application/vnd.ms-powerpoint ppt; - application/vnd.oasis.opendocument.graphics odg; - application/vnd.oasis.opendocument.presentation odp; - application/vnd.oasis.opendocument.spreadsheet ods; - application/vnd.oasis.opendocument.text odt; - application/vnd.openxmlformats-officedocument.presentationml.presentation - pptx; - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - xlsx; - application/vnd.openxmlformats-officedocument.wordprocessingml.document - docx; - application/vnd.wap.wmlc wmlc; - application/x-7z-compressed 7z; - application/x-cocoa cco; - application/x-java-archive-diff jardiff; - application/x-java-jnlp-file jnlp; - application/x-makeself run; - application/x-perl pl pm; - application/x-pilot prc pdb; - application/x-rar-compressed rar; - application/x-redhat-package-manager rpm; - application/x-sea sea; - application/x-shockwave-flash swf; - application/x-stuffit sit; - application/x-tcl tcl tk; - application/x-x509-ca-cert der pem crt; - application/x-xpinstall xpi; - application/xhtml+xml xhtml; - application/xspf+xml xspf; - application/zip zip; - - application/octet-stream bin exe dll; - application/octet-stream deb; - application/octet-stream dmg; - application/octet-stream iso img; - application/octet-stream msi msp msm; - - audio/midi mid midi kar; - audio/mpeg mp3; - audio/ogg ogg; - audio/x-m4a m4a; - audio/x-realaudio ra; - - video/3gpp 3gpp 3gp; - video/mp2t ts; - video/mp4 mp4; - video/mpeg mpeg mpg; - video/quicktime mov; - video/webm webm; - video/x-flv flv; - video/x-m4v m4v; - video/x-mng mng; - video/x-ms-asf asx asf; - video/x-ms-wmv wmv; - video/x-msvideo avi; -} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/modules b/docker/service/nginx-v1/image/files/etc/nginx/modules deleted file mode 120000 index 4b9b33f..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/modules +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/nginx/modules \ No newline at end of file diff --git a/docker/service/nginx-v1/image/files/etc/nginx/nginx.conf b/docker/service/nginx-v1/image/files/etc/nginx/nginx.conf deleted file mode 100644 index 9859533..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/nginx.conf +++ /dev/null @@ -1,36 +0,0 @@ - -# comment this line to remove: nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:2 -# but it may be a security hole in case you run container as a root user, and then forget to uncomment it -# recommended is to leave it as it is, seeing warning is also a confirmation that you run container as a non root user -user nginx; - -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - - -events { - worker_connections 1024; -} - - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - keepalive_timeout 65; - - #gzip on; - - include /etc/nginx/conf.d/*.conf; -} diff --git a/docker/service/nginx-v1/image/files/etc/nginx/scgi_params b/docker/service/nginx-v1/image/files/etc/nginx/scgi_params deleted file mode 100644 index 6d4ce4f..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/scgi_params +++ /dev/null @@ -1,17 +0,0 @@ - -scgi_param REQUEST_METHOD $request_method; -scgi_param REQUEST_URI $request_uri; -scgi_param QUERY_STRING $query_string; -scgi_param CONTENT_TYPE $content_type; - -scgi_param DOCUMENT_URI $document_uri; -scgi_param DOCUMENT_ROOT $document_root; -scgi_param SCGI 1; -scgi_param SERVER_PROTOCOL $server_protocol; -scgi_param REQUEST_SCHEME $scheme; -scgi_param HTTPS $https if_not_empty; - -scgi_param REMOTE_ADDR $remote_addr; -scgi_param REMOTE_PORT $remote_port; -scgi_param SERVER_PORT $server_port; -scgi_param SERVER_NAME $server_name; diff --git a/docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params b/docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params deleted file mode 100644 index 09c732c..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/uwsgi_params +++ /dev/null @@ -1,17 +0,0 @@ - -uwsgi_param QUERY_STRING $query_string; -uwsgi_param REQUEST_METHOD $request_method; -uwsgi_param CONTENT_TYPE $content_type; -uwsgi_param CONTENT_LENGTH $content_length; - -uwsgi_param REQUEST_URI $request_uri; -uwsgi_param PATH_INFO $document_uri; -uwsgi_param DOCUMENT_ROOT $document_root; -uwsgi_param SERVER_PROTOCOL $server_protocol; -uwsgi_param REQUEST_SCHEME $scheme; -uwsgi_param HTTPS $https if_not_empty; - -uwsgi_param REMOTE_ADDR $remote_addr; -uwsgi_param REMOTE_PORT $remote_port; -uwsgi_param SERVER_PORT $server_port; -uwsgi_param SERVER_NAME $server_name; diff --git a/docker/service/nginx-v1/image/files/etc/nginx/win-utf b/docker/service/nginx-v1/image/files/etc/nginx/win-utf deleted file mode 100644 index ed8bc00..0000000 --- a/docker/service/nginx-v1/image/files/etc/nginx/win-utf +++ /dev/null @@ -1,126 +0,0 @@ - -# This map is not a full windows-1251 <> utf8 map: it does not -# contain Serbian and Macedonian letters. If you need a full map, -# use contrib/unicode2nginx/win-utf map instead. - -charset_map windows-1251 utf-8 { - - 82 E2809A ; # single low-9 quotation mark - - 84 E2809E ; # double low-9 quotation mark - 85 E280A6 ; # ellipsis - 86 E280A0 ; # dagger - 87 E280A1 ; # double dagger - 88 E282AC ; # euro - 89 E280B0 ; # per mille - - 91 E28098 ; # left single quotation mark - 92 E28099 ; # right single quotation mark - 93 E2809C ; # left double quotation mark - 94 E2809D ; # right double quotation mark - 95 E280A2 ; # bullet - 96 E28093 ; # en dash - 97 E28094 ; # em dash - - 99 E284A2 ; # trade mark sign - - A0 C2A0 ; #   - A1 D18E ; # capital Byelorussian short U - A2 D19E ; # small Byelorussian short u - - A4 C2A4 ; # currency sign - A5 D290 ; # capital Ukrainian soft G - A6 C2A6 ; # borken bar - A7 C2A7 ; # section sign - A8 D081 ; # capital YO - A9 C2A9 ; # (C) - AA D084 ; # capital Ukrainian YE - AB C2AB ; # left-pointing double angle quotation mark - AC C2AC ; # not sign - AD C2AD ; # soft hypen - AE C2AE ; # (R) - AF D087 ; # capital Ukrainian YI - - B0 C2B0 ; # ° - B1 C2B1 ; # plus-minus sign - B2 D086 ; # capital Ukrainian I - B3 D196 ; # small Ukrainian i - B4 D291 ; # small Ukrainian soft g - B5 C2B5 ; # micro sign - B6 C2B6 ; # pilcrow sign - B7 C2B7 ; # · - B8 D191 ; # small yo - B9 E28496 ; # numero sign - BA D194 ; # small Ukrainian ye - BB C2BB ; # right-pointing double angle quotation mark - - BF D197 ; # small Ukrainian yi - - C0 D090 ; # capital A - C1 D091 ; # capital B - C2 D092 ; # capital V - C3 D093 ; # capital G - C4 D094 ; # capital D - C5 D095 ; # capital YE - C6 D096 ; # capital ZH - C7 D097 ; # capital Z - C8 D098 ; # capital I - C9 D099 ; # capital J - CA D09A ; # capital K - CB D09B ; # capital L - CC D09C ; # capital M - CD D09D ; # capital N - CE D09E ; # capital O - CF D09F ; # capital P - - D0 D0A0 ; # capital R - D1 D0A1 ; # capital S - D2 D0A2 ; # capital T - D3 D0A3 ; # capital U - D4 D0A4 ; # capital F - D5 D0A5 ; # capital KH - D6 D0A6 ; # capital TS - D7 D0A7 ; # capital CH - D8 D0A8 ; # capital SH - D9 D0A9 ; # capital SHCH - DA D0AA ; # capital hard sign - DB D0AB ; # capital Y - DC D0AC ; # capital soft sign - DD D0AD ; # capital E - DE D0AE ; # capital YU - DF D0AF ; # capital YA - - E0 D0B0 ; # small a - E1 D0B1 ; # small b - E2 D0B2 ; # small v - E3 D0B3 ; # small g - E4 D0B4 ; # small d - E5 D0B5 ; # small ye - E6 D0B6 ; # small zh - E7 D0B7 ; # small z - E8 D0B8 ; # small i - E9 D0B9 ; # small j - EA D0BA ; # small k - EB D0BB ; # small l - EC D0BC ; # small m - ED D0BD ; # small n - EE D0BE ; # small o - EF D0BF ; # small p - - F0 D180 ; # small r - F1 D181 ; # small s - F2 D182 ; # small t - F3 D183 ; # small u - F4 D184 ; # small f - F5 D185 ; # small kh - F6 D186 ; # small ts - F7 D187 ; # small ch - F8 D188 ; # small sh - F9 D189 ; # small shch - FA D18A ; # small hard sign - FB D18B ; # small y - FC D18C ; # small soft sign - FD D18D ; # small e - FE D18E ; # small yu - FF D18F ; # small ya -} diff --git a/docker/service/nginx-v1/image/files/site.conf b/docker/service/nginx-v1/image/files/site.conf deleted file mode 100644 index 7741bfa..0000000 --- a/docker/service/nginx-v1/image/files/site.conf +++ /dev/null @@ -1,7 +0,0 @@ -server { - index index.html; - server_name php-docker.local; - error_log /var/log/nginx/error.log; - access_log /var/log/nginx/access.log; - root /code; -} From 61bd5c088ccffc89971cc91aacebca4862cf90e1 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Thu, 24 Mar 2022 01:01:55 +0100 Subject: [PATCH 18/23] Remove non essential files from php-fpm-v8 service. --- docker/service/php-fpm-v8/image/.dockerignore | 2 - .../etc/php/conf.d/docker-php-ext-bcmath.ini | 1 - .../php/conf.d/docker-php-ext-calendar.ini | 1 - .../etc/php/conf.d/docker-php-ext-dba.ini | 1 - .../etc/php/conf.d/docker-php-ext-exif.ini | 1 - .../etc/php/conf.d/docker-php-ext-gd.ini | 1 - .../etc/php/conf.d/docker-php-ext-gettext.ini | 1 - .../etc/php/conf.d/docker-php-ext-imagick.ini | 1 - .../etc/php/conf.d/docker-php-ext-mongodb.ini | 1 - .../etc/php/conf.d/docker-php-ext-mysqli.ini | 1 - .../etc/php/conf.d/docker-php-ext-opcache.ini | 1 - .../etc/php/conf.d/docker-php-ext-pcntl.ini | 1 - .../php/conf.d/docker-php-ext-pdo_mysql.ini | 1 - .../php/conf.d/docker-php-ext-pdo_pgsql.ini | 1 - .../etc/php/conf.d/docker-php-ext-pgsql.ini | 1 - .../etc/php/conf.d/docker-php-ext-pspell.ini | 1 - .../etc/php/conf.d/docker-php-ext-shmop.ini | 1 - .../etc/php/conf.d/docker-php-ext-soap.ini | 1 - .../etc/php/conf.d/docker-php-ext-sockets.ini | 1 - .../etc/php/conf.d/docker-php-ext-sodium.ini | 1 - .../etc/php/conf.d/docker-php-ext-svm.ini | 1 - .../etc/php/conf.d/docker-php-ext-sysvmsg.ini | 1 - .../etc/php/conf.d/docker-php-ext-sysvsem.ini | 1 - .../etc/php/conf.d/docker-php-ext-sysvshm.ini | 1 - .../etc/php/conf.d/docker-php-ext-tidy.ini | 1 - .../etc/php/conf.d/docker-php-ext-trader.ini | 1 - .../etc/php/conf.d/docker-php-ext-wddx.ini | 1 - .../etc/php/conf.d/docker-php-ext-xmlrpc.ini | 1 - .../etc/php/conf.d/docker-php-ext-xsl.ini | 1 - .../etc/php/conf.d/docker-php-ext-zip.ini | 1 - .../files/usr/local/etc/php/conf.d/php.ini | 3 - .../usr/local/etc/php/php.ini-development | 1916 ---------------- .../usr/local/etc/php/php.ini-production | 1923 ----------------- 33 files changed, 3873 deletions(-) delete mode 100644 docker/service/php-fpm-v8/image/.dockerignore delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development delete mode 100644 docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production diff --git a/docker/service/php-fpm-v8/image/.dockerignore b/docker/service/php-fpm-v8/image/.dockerignore deleted file mode 100644 index 6456ff8..0000000 --- a/docker/service/php-fpm-v8/image/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -files/cache -files/usr/share diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini deleted file mode 100644 index 7e0ae9a..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini +++ /dev/null @@ -1 +0,0 @@ -extension=bcmath.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini deleted file mode 100644 index 9106f44..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-calendar.ini +++ /dev/null @@ -1 +0,0 @@ -extension=calendar.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini deleted file mode 100644 index 3058911..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-dba.ini +++ /dev/null @@ -1 +0,0 @@ -extension=dba.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini deleted file mode 100644 index 0688bbe..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-exif.ini +++ /dev/null @@ -1 +0,0 @@ -extension=exif.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini deleted file mode 100644 index 1941c0d..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gd.ini +++ /dev/null @@ -1 +0,0 @@ -extension=gd.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini deleted file mode 100644 index 1b2e930..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-gettext.ini +++ /dev/null @@ -1 +0,0 @@ -extension=gettext.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini deleted file mode 100644 index d7513f1..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini +++ /dev/null @@ -1 +0,0 @@ -extension=imagick.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini deleted file mode 100644 index 45969d0..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini +++ /dev/null @@ -1 +0,0 @@ -extension=mongodb.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini deleted file mode 100644 index 9d0502f..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini +++ /dev/null @@ -1 +0,0 @@ -extension=mysqli.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini deleted file mode 100644 index c82b397..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini +++ /dev/null @@ -1 +0,0 @@ -zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/opcache.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini deleted file mode 100644 index f0a7145..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini +++ /dev/null @@ -1 +0,0 @@ -extension=pcntl.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini deleted file mode 100644 index 34a7ff5..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini +++ /dev/null @@ -1 +0,0 @@ -extension=pdo_mysql.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini deleted file mode 100644 index d1f7bf0..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini +++ /dev/null @@ -1 +0,0 @@ -extension=pdo_pgsql.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini deleted file mode 100644 index 21be5e4..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pgsql.ini +++ /dev/null @@ -1 +0,0 @@ -extension=pgsql.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini deleted file mode 100644 index b4d0a8c..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-pspell.ini +++ /dev/null @@ -1 +0,0 @@ -extension=pspell.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini deleted file mode 100644 index b554ad3..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-shmop.ini +++ /dev/null @@ -1 +0,0 @@ -extension=shmop.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini deleted file mode 100644 index 1deef9c..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-soap.ini +++ /dev/null @@ -1 +0,0 @@ -extension=soap.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini deleted file mode 100644 index 327228b..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sockets.ini +++ /dev/null @@ -1 +0,0 @@ -extension=sockets.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini deleted file mode 100644 index 5ee7788..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini +++ /dev/null @@ -1 +0,0 @@ -extension=sodium.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini deleted file mode 100644 index bc436f9..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-svm.ini +++ /dev/null @@ -1 +0,0 @@ -extension=svm.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini deleted file mode 100644 index 639950e..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini +++ /dev/null @@ -1 +0,0 @@ -extension=sysvmsg.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini deleted file mode 100644 index dd2c343..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini +++ /dev/null @@ -1 +0,0 @@ -extension=sysvsem.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini deleted file mode 100644 index 4c26779..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini +++ /dev/null @@ -1 +0,0 @@ -extension=sysvshm.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini deleted file mode 100644 index 834babc..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-tidy.ini +++ /dev/null @@ -1 +0,0 @@ -extension=tidy.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini deleted file mode 100644 index 42918f4..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-trader.ini +++ /dev/null @@ -1 +0,0 @@ -extension=trader.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini deleted file mode 100644 index 95571ae..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-wddx.ini +++ /dev/null @@ -1 +0,0 @@ -extension=wddx.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini deleted file mode 100644 index b03d93c..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xmlrpc.ini +++ /dev/null @@ -1 +0,0 @@ -extension=xmlrpc.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini deleted file mode 100644 index 3223510..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-xsl.ini +++ /dev/null @@ -1 +0,0 @@ -extension=xsl.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini deleted file mode 100644 index bb70997..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/docker-php-ext-zip.ini +++ /dev/null @@ -1 +0,0 @@ -extension=zip.so diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini deleted file mode 100644 index a6d1f95..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/conf.d/php.ini +++ /dev/null @@ -1,3 +0,0 @@ -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 2G diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development deleted file mode 100644 index 9da3a1d..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-development +++ /dev/null @@ -1,1916 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (usually C:\windows) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is the php.ini-development INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to an empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = On - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 128M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = On - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = On - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). -; This directive is DEPRECATED. -; Default Value: Off -; Development Value: Off -; Production Value: Off -; http://php.net/track-errors -;track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -;error_log = syslog - -; The syslog ident is a string which is prepended to every message logged -; to syslog. Only used when error_log is set to syslog. -;syslog.ident = php - -; The syslog facility is used to specify what type of program is logging -; the message. Only used when error_log is set to syslog. -;syslog.facility = user - -; Set this to disable filtering control characters (the default). -; Some loggers only accept NVT-ASCII, others accept anything that's not -; control characters. If your logger accepts everything, then no filtering -; is needed at all. -; Allowed values are: -; ascii (only base ASCII characters) -; no_ctrl (all characters except control characters) -; all (all characters) -;syslog.filter = ascii - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 8M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -;extension_dir = "./" -; On windows: -;extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -;sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -;cgi.discard_path=1 - -; FastCGI under IIS supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 2M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename -; -; For example: -; -; extension=mysqli -; -; When the extension library to load is not located in the default extension -; directory, You may specify an absolute path to the library file: -; -; extension=/path/to/extension/mysqli.so -; -; Note : The syntax used in previous PHP versions ('extension=.so' and -; 'extension='php_.dll') is supported for legacy reasons and may be -; deprecated in a future PHP major version. So, when it is possible, please -; move to the new ('extension=) syntax. -; -; Notes for Windows environments : -; -; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=bz2 -;extension=curl -;extension=fileinfo -;extension=gd2 -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;extension=interbase -;extension=ldap -;extension=mbstring -;extension=exif ; Must be after mbstring as it depends on it -;extension=mysqli -;extension=oci8_12c ; Use with Oracle Database 12c Instant Client -;extension=odbc -;extension=openssl -;extension=pdo_firebird -;extension=pdo_mysql -;extension=pdo_oci -;extension=pdo_odbc -;extension=pdo_pgsql -;extension=pdo_sqlite -;extension=pgsql -;extension=shmop - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=snmp - -;extension=soap -;extension=sockets -;extension=sodium -;extension=sqlite3 -;extension=tidy -;extension=xmlrpc -;extension=xsl - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -;date.timezone = - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < input_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -; PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -; PCRE library recursion limit. -; Please note that if you set this value to a high number you may consume all -; the available process stack and eventually crash PHP (due to reaching the -; stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -; Enables or disables JIT compilation of patterns. This requires the PCRE -; library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = Off - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_memory_statistics = On - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept an uninitialized session ID, and -; regenerates the session ID if the browser sends an uninitialized session ID. -; Strict mode protects applications from session fixation via a session adoption -; vulnerability. It is disabled by default for maximum compatibility, but -; enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it -; inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) -; Current valid values are "Lax" or "Strict" -; https://tools.ietf.org/html/draft-west-first-party-cookies-07 -session.cookie_samesite = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any given request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 100 -; when the session.gc_probability value is 1 will give you approximately a 1% chance -; the gc will run on any given request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any given request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute paths, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = 1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertionError on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a component's typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_translation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < input_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0x7FFFBFFF - -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=0 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -; If specified, it produces opcode dumps for debugging different stages of -; optimizations. -;opcache.opt_debug_level=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: diff --git a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production b/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production deleted file mode 100644 index ede9ac6..0000000 --- a/docker/service/php-fpm-v8/image/files/usr/local/etc/php/php.ini-production +++ /dev/null @@ -1,1923 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. (As of PHP 5.2.0) -; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (usually C:\windows) -; See the PHP docs for more specific information. -; http://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; http://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security conscience applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is the php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to an empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; http://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; http://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; http://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; http://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; http://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -; Default: Off -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -; Default: "" -;zend.script_encoding = - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; http://php.net/expose-php -expose_php = On - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; http://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; http://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 - -; Maximum amount of memory a script may consume (128MB) -; http://php.net/memory-limit -memory_limit = 128M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; http://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. PHP's default behavior is to suppress those -; errors from clients. Turning the display of startup errors on can be useful in -; debugging configuration problems. We strongly recommend you -; set this to 'off' for production servers. -; Default Value: Off -; Development Value: On -; Production Value: Off -; http://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; http://php.net/log-errors -log_errors = On - -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; http://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks -report_memleaks = On - -; This setting is on by default. -;report_zend_debug = 0 - -; Store the last error/warning message in $php_errormsg (boolean). Setting this value -; to On can assist in debugging and is appropriate for development servers. It should -; however be disabled on production servers. -; This directive is DEPRECATED. -; Default Value: Off -; Development Value: Off -; Production Value: Off -; http://php.net/track-errors -;track_errors = Off - -; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On -; http://php.net/html-errors -html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; http://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; http://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; http://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; http://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -;error_log = syslog - -; The syslog ident is a string which is prepended to every message logged -; to syslog. Only used when error_log is set to syslog. -;syslog.ident = php - -; The syslog facility is used to specify what type of program is logging -; the message. Only used when error_log is set to syslog. -;syslog.facility = user - -; Set this to disable filtering control characters (the default). -; Some loggers only accept NVT-ASCII, others accept anything that's not -; control characters. If your logger accepts everything, then no filtering -; is needed at all. -; Allowed values are: -; ascii (only base ASCII characters) -; no_ctrl (all characters except control characters) -; all (all characters) -;syslog.filter = ascii - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; http://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; http://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; http://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; http://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. -; http://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; http://php.net/post-max-size -post_max_size = 8M - -; Automatically add files before PHP document. -; http://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; http://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; http://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; http://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; http://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; http://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; http://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir -;extension_dir = "./" -; On windows: -;extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -;sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; http://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -;cgi.discard_path=1 - -; FastCGI under IIS supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; http://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; http://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; http://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; http://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize -upload_max_filesize = 2M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; http://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename -; -; For example: -; -; extension=mysqli -; -; When the extension library to load is not located in the default extension -; directory, You may specify an absolute path to the library file: -; -; extension=/path/to/extension/mysqli.so -; -; Note : The syntax used in previous PHP versions ('extension=.so' and -; 'extension='php_.dll') is supported for legacy reasons and may be -; deprecated in a future PHP major version. So, when it is possible, please -; move to the new ('extension=) syntax. -; -; Notes for Windows environments : -; -; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) -; extension folders as well as the separate PECL DLL download (PHP 5+). -; Be sure to appropriately set the extension_dir directive. -; -;extension=bz2 -;extension=curl -;extension=fileinfo -;extension=gd2 -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;extension=interbase -;extension=ldap -;extension=mbstring -;extension=exif ; Must be after mbstring as it depends on it -;extension=mysqli -;extension=oci8_12c ; Use with Oracle Database 12c Instant Client -;extension=odbc -;extension=openssl -;extension=pdo_firebird -;extension=pdo_mysql -;extension=pdo_oci -;extension=pdo_odbc -;extension=pdo_pgsql -;extension=pdo_sqlite -;extension=pgsql -;extension=shmop - -; The MIBS data available in the PHP distribution must be installed. -; See http://www.php.net/manual/en/snmp.installation.php -;extension=snmp - -;extension=soap -;extension=sockets -;extension=sodium -;extension=sqlite3 -;extension=tidy -;extension=xmlrpc -;extension=xsl - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; http://php.net/date.timezone -;date.timezone = - -; http://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; http://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; http://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.583333 - -; http://php.net/date.sunset-zenith -;date.sunset_zenith = 90.583333 - -[filter] -; http://php.net/filter.default -;filter.default = unsafe_raw - -; http://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < input_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -;sqlite3.extension_dir = - -[Pcre] -; PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -; PCRE library recursion limit. -; Please note that if you set this value to a high number you may consume all -; the available process stack and eventually crash PHP (due to reaching the -; stack size limit imposed by the Operating System). -; http://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -; Enables or disables JIT compilation of patterns. This requires the PCRE -; library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -;pdo_odbc.db2_instance_name - -[Pdo_mysql] -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -pdo_mysql.default_socket= - -[Phar] -; http://php.net/phar.readonly -;phar.readonly = On - -; http://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; http://php.net/smtp -SMTP = localhost -; http://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; http://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = Off - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; http://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; http://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; http://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; http://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; http://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; http://php.net/mysqli.max-links -mysqli.max_links = -1 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; http://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; http://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysql_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw -mysqli.default_pw = - -; Allow or prevent reconnect -mysqli.reconnect = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; http://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; http://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; http://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; http://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; http://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle 11g Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; http://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables statement prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; http://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; http://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; http://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; http://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; http://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; http://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; http://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept an uninitialized session ID, and -; regenerates the session ID if the browser sends an uninitialized session ID. -; Strict mode protects applications from session fixation via a session adoption -; vulnerability. It is disabled by default for maximum compatibility, but -; enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; http://php.net/session.use-cookies -session.use_cookies = 1 - -; http://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; http://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; http://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; http://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it -; inaccessible to browser scripting languages such as JavaScript. -; http://php.net/session.cookie-httponly -session.cookie_httponly = - -; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) -; Current valid values are "Lax" or "Strict" -; https://tools.ietf.org/html/draft-west-first-party-cookies-07 -session.cookie_samesite = - -; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started -; on every session initialization. The probability is calculated by using -; gc_probability/gc_divisor. Where session.gc_probability is the numerator -; and gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any given request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using the following equation: -; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 100 -; when the session.gc_probability value is 1 will give you approximately a 1% chance -; the gc will run on any given request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any given request. For high volume production servers, -; this is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; http://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script would is the equivalent of -; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; http://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; http://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; http://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute paths, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; http://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; http://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; http://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; http://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; http://php.net/zend.assertions -zend.assertions = -1 - -; Assert(expr); active by default. -; http://php.net/assert.active -;assert.active = On - -; Throw an AssertionError on failed assertions -; http://php.net/assert.exception -;assert.exception = On - -; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning -;assert.warning = On - -; Don't bail out by default. -; http://php.net/assert.bail -;assert.bail = Off - -; User-function to be called if an assertion fails. -; http://php.net/assert.callback -;assert.callback = 0 - -; Eval the expression with current error_reporting(). Set to true if you want -; error_reporting(0) around the eval(). -; http://php.net/assert.quiet-eval -;assert.quiet_eval = 0 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; http://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; http://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a component's typlib on com_load() -; http://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; http://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; http://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_translation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < input_encoding < mbsting.http_input -; http://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; http://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; http://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; overload(replace) single byte functions by mbstring functions. -; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), -; etc. Possible values are 0,1,2,4 or combination of them. -; For example, 7 for overload everything. -; 0: No overload -; 1: Overload mail() function -; 2: Overload str*() functions -; 4: Overload ereg*() functions -; http://php.net/mbstring.func-overload -;mbstring.func_overload = 0 - -; enable strict encoding detection. -; Default: Off -;mbstring.strict_detection = On - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetype= - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; http://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; http://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; http://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; http://php.net/exif.encode-jis -;exif.encode_jis = - -; http://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; http://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; http://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; http://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0x7FFFBFFF - -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; Check the cache checksum each N requests. -; The default value of "0" means that the checks are disabled. -;opcache.consistency_checks=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; This should improve performance, but requires appropriate OS configuration. -;opcache.huge_code_pages=1 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -; If specified, it produces opcode dumps for debugging different stages of -; optimizations. -;opcache.opt_debug_level=0 - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -; Local Variables: -; tab-width: 4 -; End: From f3464688c38f039d4b237d2164a46ce7441076ca Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Thu, 24 Mar 2022 02:57:00 +0100 Subject: [PATCH 19/23] Remove redundant mkdir for nginx-v1 service --- docker/service/setup.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docker/service/setup.sh b/docker/service/setup.sh index 612f006..7e1a7b5 100755 --- a/docker/service/setup.sh +++ b/docker/service/setup.sh @@ -17,16 +17,13 @@ sudo chmod -v ug+x,o-wx \ # Nginx: create dirs, set owner and group, set access permissions mkdir -p \ -./nginx-v1/image/files/var/log/nginx \ -./nginx-v1/image/files/usr/share/nginx/html/default && \ +./nginx-v1/image/files/var/log/nginx && \ \ sudo chown -R $uid:$gid \ -./nginx-v1/image/files/var/log/nginx \ -./nginx-v1/image/files/usr/share/nginx/html/default && \ +./nginx-v1/image/files/var/log/nginx && \ \ sudo chmod -v -R ug=rwX,o=rX \ -./nginx-v1/image/files/var/log/nginx \ -./nginx-v1/image/files/usr/share/nginx/html/default +./nginx-v1/image/files/var/log/nginx && \ # Elasticsearch: create dirs, set owner and group, set access permissions mkdir -p \ From 9cdc91eea531dc81fa4a05aaad8ea04123108918 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Thu, 24 Mar 2022 02:57:59 +0100 Subject: [PATCH 20/23] Remove redundant env vars for php-fpm-v8 service --- docker/service/php-fpm-v8/image/.env.dev | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker/service/php-fpm-v8/image/.env.dev b/docker/service/php-fpm-v8/image/.env.dev index c816164..e69de29 100644 --- a/docker/service/php-fpm-v8/image/.env.dev +++ b/docker/service/php-fpm-v8/image/.env.dev @@ -1,2 +0,0 @@ -user_id=1000 -user_group_id=1000 \ No newline at end of file From e884fb85b468b5f07697f154b630dc992fbbb70d Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Thu, 24 Mar 2022 02:58:53 +0100 Subject: [PATCH 21/23] Update comments in elasticsearch-v7 service. --- docker/service/elasticsearch-v7/image/.env.dev | 2 +- docker/service/elasticsearch-v7/image/Dockerfile | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docker/service/elasticsearch-v7/image/.env.dev b/docker/service/elasticsearch-v7/image/.env.dev index 477b12f..789eb63 100644 --- a/docker/service/elasticsearch-v7/image/.env.dev +++ b/docker/service/elasticsearch-v7/image/.env.dev @@ -1,7 +1,7 @@ # BUG unexpected character "." in variable name near "discovery.type=\"single-node\"\n# node.name=\"elasticsearch\"\n# include_type_name=\"true\"" # it worked fine with the old version of docker and docker-compose. # quoting the variable name did not help -# now moved to the .yaml +# now moved to the elasticsearch-v7.yaml # potential solution https://github.com/laradock/laradock/issues/3076#issuecomment-1017484349 diff --git a/docker/service/elasticsearch-v7/image/Dockerfile b/docker/service/elasticsearch-v7/image/Dockerfile index 6e7a8c1..17c7384 100644 --- a/docker/service/elasticsearch-v7/image/Dockerfile +++ b/docker/service/elasticsearch-v7/image/Dockerfile @@ -1,6 +1,4 @@ ARG image -#TODO - shold from image dev be above or below dockerfile code? - FROM $image AS dev RUN apt-get update && apt-get install -y curl && apt-get clean From d16207079dc0646518135afcef31bf73765dcd18 Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Thu, 24 Mar 2022 03:30:33 +0100 Subject: [PATCH 22/23] Resolve branch conflicts. --- app/default/insomnia.json | 2 +- app/default/src/ValueObject/Cars.php | 2 +- app/default/src/ValueObject/ProductionYear.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/default/insomnia.json b/app/default/insomnia.json index f5dc59a..4b28775 100644 --- a/app/default/insomnia.json +++ b/app/default/insomnia.json @@ -1 +1 @@ -{"_type":"export","__export_format":4,"__export_date":"2021-12-08T17:40:22.365Z","__export_source":"insomnia.desktop.app:v2021.6.0","resources":[{"_id":"req_78c3968be34e47009c7470b3c746099a","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956832575,"created":1632946374814,"url":"{{ _.elasticsearch_host }}","name":"Elasticsearch Installation Details","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956240295,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","parentId":null,"modified":1632946362740,"created":1632946362740,"name":"PHPers 2021","description":"","scope":"collection","_type":"workspace"},{"_id":"req_5d55f86cc332447daf9efd7045e740f7","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1638984940660,"created":1632955999079,"url":"{{ _.elasticsearch_host }}/{{ _.index }}","name":"Create","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"mappings\": {\n\t\t\"_doc\": {\n\t\t\t\"properties\": {\n\t\t\t\t\"producer\": {\n\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t},\n\t\t\t\t\"model\": {\n\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t},\n\t\t\t\t\"picture\": {\n\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t},\n\t\t\t\t\"production_year\": {\n\t\t\t\t\t\"type\": \"integer\"\n\t\t\t\t},\n\t\t\t\t\"colors\": {\n\t\t\t\t\t\"type\": \"keyword\"\n\t\t\t\t},\n\t\t\t\t\"service_ids\": {\n\t\t\t\t\t\"type\": \"integer\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_ad16e83a26714c9a9acb1d41ba4ef1e2"}],"authentication":{},"metaSortKey":-1632956038689,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_c83d2d1896f44a74bcba0cee52544f6f","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956906541,"created":1632956240245,"name":"Index","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1632956240263.75,"_type":"request_group"},{"_id":"req_106ae444d16c4355b6be1da2c14344f8","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1632956785152,"created":1632956773423,"url":"{{ _.elasticsearch_host }}/{{ _.index }}","name":"Delete","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956038676.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d34eb38e16504d848914222f61a86a55","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1638984945799,"created":1633089831248,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_bulk","name":"Bulk","description":"","method":"POST","body":{"mimeType":"","text":"{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"1\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"SF90\",\"picture\":\"ferrari-sf90.jpg\",\"production_year\":2021,\"colors\":[\"red\"],\"service_ids\":[2,4,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"2\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"Roma\",\"picture\":\"ferrari-roma.jpg\",\"production_year\":2021,\"colors\":[\"silver\"],\"service_ids\":[1,3,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"3\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"F8 Spider\",\"picture\":\"ferrari-f8-spider.jpg\",\"production_year\":2021,\"colors\":[\"yellow\"],\"service_ids\":[7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"4\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"296 GTB\",\"picture\":\"ferrari-296-gtb.jpg\",\"production_year\":2021,\"colors\":[\"black\",\"yellow\"],\"service_ids\":[1,2,5,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"5\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"250 GT California\",\"picture\":\"ferrari-250-gt-california.jpg\",\"production_year\":1961,\"colors\":[\"blue\"],\"service_ids\":[1,4,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"6\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"Testarossa\",\"picture\":\"ferrari-testarossa.jpg\",\"production_year\":1988,\"colors\":[\"red\"],\"service_ids\":[5,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"7\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Huracán\",\"picture\":\"lamborghini-huracan.jpg\",\"production_year\":2021,\"colors\":[\"green\"],\"service_ids\":[1,2,3,4,5,6,7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"8\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"SC20\",\"picture\":\"lamborghini-sc20.jpg\",\"production_year\":2020,\"colors\":[\"white\",\"black\",\"blue\"],\"service_ids\":[8,5,4]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"9\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Aventador\",\"picture\":\"lamborghini-aventador.jpg\",\"production_year\":2021,\"colors\":[\"black\",\"red\"],\"service_ids\":[6,1,4,7,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"10\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Diablo\",\"picture\":\"lamborghini-diablo.jpg\",\"production_year\":1990,\"colors\":[\"yellow\"],\"service_ids\":[5,4,7,1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"11\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Countach\",\"picture\":\"lamborghini-countach.jpg\",\"production_year\":1980,\"colors\":[\"white\"],\"service_ids\":[3,8,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"12\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Murciélago LP670\",\"picture\":\"lamborghini-murcielago-lp670.jpg\",\"production_year\":2007,\"colors\":[\"orange\"],\"service_ids\":[7,3,2,5,1,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"13\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"911 SWB\",\"picture\":\"porshe-911-swb.jpg\",\"production_year\":1968,\"colors\":[\"orange\"],\"service_ids\":[6,4,3,2,7,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"14\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"911 Turbo S\",\"picture\":\"porshe-911-turbo-s.jpg\",\"production_year\":2021,\"colors\":[\"green\"],\"service_ids\":[6,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"15\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"911 GTS\",\"picture\":\"porshe-911-gts.jpg\",\"production_year\":2017,\"colors\":[\"silver\"],\"service_ids\":[6]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"16\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"Macan\",\"picture\":\"porshe-macan.jpg\",\"production_year\":2021,\"colors\":[\"black\"],\"service_ids\":[5,2,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"17\"}}\n{\"doc\":{\"producer\":\"McLaren\",\"model\":\"570S\",\"picture\":\"mclaren-570s.jpg\",\"production_year\":2021,\"colors\":[\"orange\",\"black\"],\"service_ids\":[8,2,7,1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"18\"}}\n{\"doc\":{\"producer\":\"McLaren\",\"model\":\"F1\",\"picture\":\"mclaren-f1.jpg\",\"production_year\":1994,\"colors\":[\"blue\"],\"service_ids\":[4,3,7,6]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"19\"}}\n{\"doc\":{\"producer\":\"McLaren\",\"model\":\"720S\",\"picture\":\"mclaren-720s.jpg\",\"production_year\":2018,\"colors\":[\"blue\",\"orange\",\"black\"],\"service_ids\":[7,2,1,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"20\"}}\n{\"doc\":{\"producer\":\"Aston Martin\",\"model\":\"DB7 GT\",\"picture\":\"aston-martin-db7-gt.jpg\",\"production_year\":2003,\"colors\":[\"silver\"],\"service_ids\":[8,7,6,5,4,3,2,1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"21\"}}\n{\"doc\":{\"producer\":\"Aston Martin\",\"model\":\"DB7 Zagato\",\"picture\":\"aston-martin-db7-zagato.jpg\",\"production_year\":2003,\"colors\":[\"green\"],\"service_ids\":[1,2,3,8,7,6]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"22\"}}\n{\"doc\":{\"producer\":\"Aston Martin\",\"model\":\"DB7 Vantage\",\"picture\":\"aston-martin-db7-vantage.jpg\",\"production_year\":2002,\"colors\":[\"blue\"],\"service_ids\":[2,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"23\"}}\n{\"doc\":{\"producer\":\"Ford\",\"model\":\"Mustang RTR\",\"picture\":\"ford-mustang-rtr.jpg\",\"production_year\":2019,\"colors\":[\"black\",\"green\"],\"service_ids\":[4,5,6,7,3,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"24\"}}\n{\"doc\":{\"producer\":\"Ford\",\"model\":\"Mustang Boss 302\",\"picture\":\"ford-mustang-boss-302.jpg\",\"production_year\":2013,\"colors\":[\"yellow\",\"black\"],\"service_ids\":[2,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"25\"}}\n{\"doc\":{\"producer\":\"Ford\",\"model\":\"GT\",\"picture\":\"ford-gt.jpg\",\"production_year\":2021,\"colors\":[\"red\",\"white\"],\"service_ids\":[1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"26\"}}\n{\"doc\":{\"producer\":\"BMW\",\"model\":\"i8 Roadster\",\"picture\":\"bmw-i8-roadster.jpg\",\"production_year\":2014,\"colors\":[\"silver\",\"black\",\"blue\"],\"service_ids\":[4]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"27\"}}\n{\"doc\":{\"producer\":\"BMW\",\"model\":\"i8 Roadster\",\"picture\":\"bmw-i8-roadster-2019.jpg\",\"production_year\":2019,\"colors\":[\"orange\",\"black\"],\"service_ids\":[5,7,1,2,8,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"28\"}}\n{\"doc\":{\"producer\":\"Mercedes-Benz\",\"model\":\"GT\",\"picture\":\"mercedes-benz-gt.jpg\",\"production_year\":2020,\"colors\":[\"red\"],\"service_ids\":[1,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"29\"}}\n{\"doc\":{\"producer\":\"Mercedes-Benz\",\"model\":\"AMG GT Coupé\",\"picture\":\"mercedes-benz-amg-gt-coupe.jpg\",\"production_year\":2020,\"colors\":[\"green\",\"black\"],\"service_ids\":[5,1,3,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"30\"}}\n{\"doc\":{\"producer\":\"Mercedes-McLaren\",\"model\":\"SLR 722 Stirling Moss\",\"picture\":\"mercedes-mclaren-slr-722-stirling-moss.jpg\",\"production_year\":2009,\"colors\":[\"white\",\"red\"],\"service_ids\":[2,4,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"31\"}}\n{\"doc\":{\"producer\":\"Mercedes-Benz\",\"model\":\"SLS AMG Coupé\",\"picture\":\"mercedes-benz-sls-amg-coupe.jpg\",\"production_year\":2014,\"colors\":[\"blue\"],\"service_ids\":[1,3,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"32\"}}\n{\"doc\":{\"producer\":\"Mazda\",\"model\":\"RX-Vision GT3 Concept\",\"picture\":\"mazda-rx-vision-gt3-concept.jpg\",\"production_year\":2020,\"colors\":[\"red\",\"black\"],\"service_ids\":[7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"33\"}}\n{\"doc\":{\"producer\":\"Mazda\",\"model\":\"MX-5 Miata\",\"picture\":\"mazda-mx5-miata.jpg\",\"production_year\":2016,\"colors\":[\"white\"],\"service_ids\":[1,2,5,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"34\"}}\n{\"doc\":{\"producer\":\"Mazda\",\"model\":\"MX-5 Z-Sport\",\"picture\":\"mazda-mx5-z-sport.jpg\",\"production_year\":2016,\"colors\":[\"silver\",\"red\"],\"service_ids\":[1,4,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"35\"}}\n{\"doc\":{\"producer\":\"Dodge\",\"model\":\"Viper GTS\",\"picture\":\"dodge-viper-gts.jpg\",\"production_year\":1997,\"colors\":[\"blue\",\"white\"],\"service_ids\":[5,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"36\"}}\n{\"doc\":{\"producer\":\"Dodge\",\"model\":\"Viper SRT10 Roadster\",\"picture\":\"dodge-viper-srt10-roadster.jpg\",\"production_year\":2017,\"colors\":[\"yellow\",\"black\"],\"service_ids\":[1,2,3,4,5,6,7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"37\"}}\n{\"doc\":{\"producer\":\"Dodge\",\"model\":\"Challenger\",\"picture\":\"dodge-challenger.jpg\",\"production_year\":2015,\"colors\":[\"green\",\"black\"],\"service_ids\":[8,5,4]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"38\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"550 Maranello\",\"picture\":\"ferrari-550-maranello.jpg\",\"production_year\":1999,\"colors\":[\"blue\"],\"service_ids\":[6,1,4,7,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"39\"}}\n{\"doc\":{\"producer\":\"Mitsubishi\",\"model\":\"Lancer Evo X\",\"picture\":\"mitsubishi-lancer-evo-x.jpg\",\"production_year\":2010,\"colors\":[\"red\",\"black\"],\"service_ids\":[5,4,7,1]},\"doc_as_upsert\":true}\n"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_ad16e83a26714c9a9acb1d41ba4ef1e2"}],"authentication":{},"metaSortKey":-1632956038670.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_2f329936be364640bdf64ac71d7a5f5b","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1632956480631,"created":1632956465917,"url":"{{ _.elasticsearch_host }}/{{ _.index }}","name":"Mappings","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956038664,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e1e080bdfa3042a1b952a436b445e736","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1632956413413,"created":1632955735770,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_count","name":"Count","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956038639,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a2d111f902a7431498e1d240bd6e170c","parentId":"fld_848de98705964627b6b99a4ce4965988","modified":1638984923550,"created":1632957008250,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_doc/39","name":"Create / Update","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\t\"producer\": \"Mitsubishi\",\n\t\t\"model\": \"Lancer Evo X\",\n\t\t\"picture\": \"mitsubishi-lancer-evo-x.jpg\",\n\t\t\"production_year\": 2010,\n\t\t\"colors\": [\"red\", \"black\"]\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_b8b7e87af42743c2bb0301fd5431e034"}],"authentication":{},"metaSortKey":-1632957008250,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_848de98705964627b6b99a4ce4965988","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956911174,"created":1632956847201,"name":"Document","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1632956240257.5,"_type":"request_group"},{"_id":"req_8bf493f90f8d4d01840b092445eb2476","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984922353,"created":1632957408326,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"All (1) // structure","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_a668f3ed97c9465d9686e2ae42d4cf4c"}],"authentication":{},"metaSortKey":-1632957408326,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_e77f4b53ba4244b28812221d85e201b7","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632957099461,"created":1632957091738,"name":"Search","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1632956240207.5,"_type":"request_group"},{"_id":"req_c81e645b45294217bffaa255dbf75762","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984916712,"created":1633167372022,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"Functions","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"_source\": true,\n\t\"explain\": false,\n\t\"from\": 0,\n\t\"size\": 3,\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": \"_score\"\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 10\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"filter\": {\n\t\t\t\t\t\t\"bool\": {\n\t\t\t\t\t\t\t\"must\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"match\": {\n\t\t\t\t\t\t\t\t\t\t\"producer\": \"Dodge\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 100\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": {\n\t\t\t\t\t\t\t\"source\": \"\\t\\t\\tif (params.requiredColors.isEmpty()) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\tif (false === doc['colors'].containsAll(params.requiredColors)) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n def requiredColorsCount = params.requiredColors.size();\\n\\t\\t\\tdef sum = params.requiredColors\\n\\t\\t\\t\\t.collect( requiredColor -> {\\n\\t\\t\\t\\t\\tif (false === doc['colors'].contains(requiredColor)) {\\t\\n\\t\\t\\t\\t\\t\\treturn 0;\\n\\t\\t\\t\\t\\t}\\n\\n def position = params._source['colors'].indexOf(requiredColor) + 1.0;\\n\\n\\t\\t\\t\\t\\treturn (params.maximumColorsPerDocument + 1.0 - position ) \\/ params.maximumColorsPerDocument;\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.sum();\\n\\n\\t\\t\\treturn sum \\/ requiredColorsCount;\",\n\t\t\t\t\t\t\t\"params\": {\n\t\t\t\t\t\t\t\t\"requiredColors\": [],\n\t\t\t\t\t\t\t\t\"maximumColorsPerDocument\": 3\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 50\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_a668f3ed97c9465d9686e2ae42d4cf4c"}],"authentication":{},"metaSortKey":-1632957308307,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4946d939634b40f0bf5bc0a78de82df7","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984918214,"created":1633359932970,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"Functions (colors)","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"_source\": true,\n\t\"explain\": true,\n\t\"from\": 3,\n\t\"size\": 3,\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": \"_score\"\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"filter\": {\n\t\t\t\t\t\t\"bool\": {\n\t\t\t\t\t\t\t\"must\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"match\": {\n\t\t\t\t\t\t\t\t\t\t\"producer\": \"Dodge\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 100\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": {\n\t\t\t\t\t\t\t\"source\": \"\\t\\t\\tif (params.requiredColors.isEmpty()) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\tif (false === doc['colors'].containsAll(params.requiredColors)) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n def colorExclusivnessFactor = (params.maximumColorsPerDocument + 1.0 - doc['colors'].size()) \\/ params.maximumColorsPerDocument * 0.25;\\n\\n def requiredColorsCount = params.requiredColors.size();\\n\\t\\t\\tdef positionsFactorSum = params.requiredColors\\n\\t\\t\\t\\t.collect( requiredColor -> {\\n\\t\\t\\t\\t\\tif (false === doc['colors'].contains(requiredColor)) {\\t\\n\\t\\t\\t\\t\\t\\treturn 0;\\n\\t\\t\\t\\t\\t}\\n\\n def position = params._source['colors'].indexOf(requiredColor) + 1.0;\\n\\n\\t\\t\\t\\t\\treturn (params.maximumColorsPerDocument + 1.0 - position) \\/ params.maximumColorsPerDocument;\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.sum() * 0.75;\\n\\n def colorPositionFactor = positionsFactorSum \\/ requiredColorsCount;\\n\\n\\t\\t\\treturn (colorExclusivnessFactor + colorPositionFactor);\",\n\t\t\t\t\t\t\t\"params\": {\n\t\t\t\t\t\t\t\t\"requiredColors\": [],\n\t\t\t\t\t\t\t\t\"maximumColorsPerDocument\": 3\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 50\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_a668f3ed97c9465d9686e2ae42d4cf4c"}],"authentication":{},"metaSortKey":-1632957258297.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ff9bf1ed939e48a5911a3df25cc84e51","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984918751,"created":1633085660702,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"Phrase","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"_source\": true,\n\t\"explain\": false,\n\t\"from\": 0,\n\t\"size\": 3,\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"query_string\": {\n\t\t\t\t\t\t\t\t\"query\": \"maclaren\",\n\t\t\t\t\t\t\t\t\"fields\": [\n\t\t\t\t\t\t\t\t\t\"producer\",\n\t\t\t\t\t\t\t\t\t\"model\"\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_6779c4a40d7b4d5b907bc1521ce73023"}],"authentication":{},"metaSortKey":-1632957208288,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_f91a63830840f829c9236b3d4131697a09da9600","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956097328,"created":1632946363165,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1632946363165,"_type":"environment"},{"_id":"jar_f91a63830840f829c9236b3d4131697a09da9600","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632946363169,"created":1632946363169,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_3b0f9e7318ff4f70908ca2d88c436111","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632946362745,"created":1632946362745,"fileName":"PHPers 2021","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_b3f370dafd964840835a09b7637dc8cc","parentId":"env_f91a63830840f829c9236b3d4131697a09da9600","modified":1632956386928,"created":1632956086502,"name":"LOCAL","data":{"elasticsearch_host":"http://localhost:9200","index":"cars"},"dataPropertyOrder":{"&":["elasticsearch_host","index"]},"color":"#00b30c","isPrivate":true,"metaSortKey":1632956086502,"_type":"environment"}]} \ No newline at end of file +{"_type":"export","__export_format":4,"__export_date":"2021-12-08T17:40:22.365Z","__export_source":"insomnia.desktop.app:v2021.6.0","resources":[{"_id":"req_78c3968be34e47009c7470b3c746099a","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956832575,"created":1632946374814,"url":"{{ _.elasticsearch_host }}","name":"Elasticsearch Installation Details","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956240295,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","parentId":null,"modified":1632946362740,"created":1632946362740,"name":"Painless Car Rental","description":"","scope":"collection","_type":"workspace"},{"_id":"req_5d55f86cc332447daf9efd7045e740f7","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1638984940660,"created":1632955999079,"url":"{{ _.elasticsearch_host }}/{{ _.index }}","name":"Create","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"mappings\": {\n\t\t\"_doc\": {\n\t\t\t\"properties\": {\n\t\t\t\t\"producer\": {\n\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t},\n\t\t\t\t\"model\": {\n\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t},\n\t\t\t\t\"picture\": {\n\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t},\n\t\t\t\t\"production_year\": {\n\t\t\t\t\t\"type\": \"integer\"\n\t\t\t\t},\n\t\t\t\t\"colors\": {\n\t\t\t\t\t\"type\": \"keyword\"\n\t\t\t\t},\n\t\t\t\t\"service_ids\": {\n\t\t\t\t\t\"type\": \"integer\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_ad16e83a26714c9a9acb1d41ba4ef1e2"}],"authentication":{},"metaSortKey":-1632956038689,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_c83d2d1896f44a74bcba0cee52544f6f","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956906541,"created":1632956240245,"name":"Index","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1632956240263.75,"_type":"request_group"},{"_id":"req_106ae444d16c4355b6be1da2c14344f8","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1632956785152,"created":1632956773423,"url":"{{ _.elasticsearch_host }}/{{ _.index }}","name":"Delete","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956038676.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d34eb38e16504d848914222f61a86a55","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1638984945799,"created":1633089831248,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_bulk","name":"Bulk","description":"","method":"POST","body":{"mimeType":"","text":"{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"1\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"SF90\",\"picture\":\"ferrari-sf90.jpg\",\"production_year\":2021,\"colors\":[\"red\"],\"service_ids\":[2,4,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"2\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"Roma\",\"picture\":\"ferrari-roma.jpg\",\"production_year\":2021,\"colors\":[\"silver\"],\"service_ids\":[1,3,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"3\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"F8 Spider\",\"picture\":\"ferrari-f8-spider.jpg\",\"production_year\":2021,\"colors\":[\"yellow\"],\"service_ids\":[7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"4\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"296 GTB\",\"picture\":\"ferrari-296-gtb.jpg\",\"production_year\":2021,\"colors\":[\"black\",\"yellow\"],\"service_ids\":[1,2,5,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"5\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"250 GT California\",\"picture\":\"ferrari-250-gt-california.jpg\",\"production_year\":1961,\"colors\":[\"blue\"],\"service_ids\":[1,4,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"6\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"Testarossa\",\"picture\":\"ferrari-testarossa.jpg\",\"production_year\":1988,\"colors\":[\"red\"],\"service_ids\":[5,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"7\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Huracán\",\"picture\":\"lamborghini-huracan.jpg\",\"production_year\":2021,\"colors\":[\"green\"],\"service_ids\":[1,2,3,4,5,6,7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"8\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"SC20\",\"picture\":\"lamborghini-sc20.jpg\",\"production_year\":2020,\"colors\":[\"white\",\"black\",\"blue\"],\"service_ids\":[8,5,4]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"9\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Aventador\",\"picture\":\"lamborghini-aventador.jpg\",\"production_year\":2021,\"colors\":[\"black\",\"red\"],\"service_ids\":[6,1,4,7,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"10\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Diablo\",\"picture\":\"lamborghini-diablo.jpg\",\"production_year\":1990,\"colors\":[\"yellow\"],\"service_ids\":[5,4,7,1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"11\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Countach\",\"picture\":\"lamborghini-countach.jpg\",\"production_year\":1980,\"colors\":[\"white\"],\"service_ids\":[3,8,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"12\"}}\n{\"doc\":{\"producer\":\"Lamborghini\",\"model\":\"Murciélago LP670\",\"picture\":\"lamborghini-murcielago-lp670.jpg\",\"production_year\":2007,\"colors\":[\"orange\"],\"service_ids\":[7,3,2,5,1,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"13\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"911 SWB\",\"picture\":\"porshe-911-swb.jpg\",\"production_year\":1968,\"colors\":[\"orange\"],\"service_ids\":[6,4,3,2,7,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"14\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"911 Turbo S\",\"picture\":\"porshe-911-turbo-s.jpg\",\"production_year\":2021,\"colors\":[\"green\"],\"service_ids\":[6,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"15\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"911 GTS\",\"picture\":\"porshe-911-gts.jpg\",\"production_year\":2017,\"colors\":[\"silver\"],\"service_ids\":[6]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"16\"}}\n{\"doc\":{\"producer\":\"Porshe\",\"model\":\"Macan\",\"picture\":\"porshe-macan.jpg\",\"production_year\":2021,\"colors\":[\"black\"],\"service_ids\":[5,2,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"17\"}}\n{\"doc\":{\"producer\":\"McLaren\",\"model\":\"570S\",\"picture\":\"mclaren-570s.jpg\",\"production_year\":2021,\"colors\":[\"orange\",\"black\"],\"service_ids\":[8,2,7,1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"18\"}}\n{\"doc\":{\"producer\":\"McLaren\",\"model\":\"F1\",\"picture\":\"mclaren-f1.jpg\",\"production_year\":1994,\"colors\":[\"blue\"],\"service_ids\":[4,3,7,6]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"19\"}}\n{\"doc\":{\"producer\":\"McLaren\",\"model\":\"720S\",\"picture\":\"mclaren-720s.jpg\",\"production_year\":2018,\"colors\":[\"blue\",\"orange\",\"black\"],\"service_ids\":[7,2,1,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"20\"}}\n{\"doc\":{\"producer\":\"Aston Martin\",\"model\":\"DB7 GT\",\"picture\":\"aston-martin-db7-gt.jpg\",\"production_year\":2003,\"colors\":[\"silver\"],\"service_ids\":[8,7,6,5,4,3,2,1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"21\"}}\n{\"doc\":{\"producer\":\"Aston Martin\",\"model\":\"DB7 Zagato\",\"picture\":\"aston-martin-db7-zagato.jpg\",\"production_year\":2003,\"colors\":[\"green\"],\"service_ids\":[1,2,3,8,7,6]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"22\"}}\n{\"doc\":{\"producer\":\"Aston Martin\",\"model\":\"DB7 Vantage\",\"picture\":\"aston-martin-db7-vantage.jpg\",\"production_year\":2002,\"colors\":[\"blue\"],\"service_ids\":[2,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"23\"}}\n{\"doc\":{\"producer\":\"Ford\",\"model\":\"Mustang RTR\",\"picture\":\"ford-mustang-rtr.jpg\",\"production_year\":2019,\"colors\":[\"black\",\"green\"],\"service_ids\":[4,5,6,7,3,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"24\"}}\n{\"doc\":{\"producer\":\"Ford\",\"model\":\"Mustang Boss 302\",\"picture\":\"ford-mustang-boss-302.jpg\",\"production_year\":2013,\"colors\":[\"yellow\",\"black\"],\"service_ids\":[2,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"25\"}}\n{\"doc\":{\"producer\":\"Ford\",\"model\":\"GT\",\"picture\":\"ford-gt.jpg\",\"production_year\":2021,\"colors\":[\"red\",\"white\"],\"service_ids\":[1]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"26\"}}\n{\"doc\":{\"producer\":\"BMW\",\"model\":\"i8 Roadster\",\"picture\":\"bmw-i8-roadster.jpg\",\"production_year\":2014,\"colors\":[\"silver\",\"black\",\"blue\"],\"service_ids\":[4]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"27\"}}\n{\"doc\":{\"producer\":\"BMW\",\"model\":\"i8 Roadster\",\"picture\":\"bmw-i8-roadster-2019.jpg\",\"production_year\":2019,\"colors\":[\"orange\",\"black\"],\"service_ids\":[5,7,1,2,8,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"28\"}}\n{\"doc\":{\"producer\":\"Mercedes-Benz\",\"model\":\"GT\",\"picture\":\"mercedes-benz-gt.jpg\",\"production_year\":2020,\"colors\":[\"red\"],\"service_ids\":[1,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"29\"}}\n{\"doc\":{\"producer\":\"Mercedes-Benz\",\"model\":\"AMG GT Coupé\",\"picture\":\"mercedes-benz-amg-gt-coupe.jpg\",\"production_year\":2020,\"colors\":[\"green\",\"black\"],\"service_ids\":[5,1,3,2]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"30\"}}\n{\"doc\":{\"producer\":\"Mercedes-McLaren\",\"model\":\"SLR 722 Stirling Moss\",\"picture\":\"mercedes-mclaren-slr-722-stirling-moss.jpg\",\"production_year\":2009,\"colors\":[\"white\",\"red\"],\"service_ids\":[2,4,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"31\"}}\n{\"doc\":{\"producer\":\"Mercedes-Benz\",\"model\":\"SLS AMG Coupé\",\"picture\":\"mercedes-benz-sls-amg-coupe.jpg\",\"production_year\":2014,\"colors\":[\"blue\"],\"service_ids\":[1,3,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"32\"}}\n{\"doc\":{\"producer\":\"Mazda\",\"model\":\"RX-Vision GT3 Concept\",\"picture\":\"mazda-rx-vision-gt3-concept.jpg\",\"production_year\":2020,\"colors\":[\"red\",\"black\"],\"service_ids\":[7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"33\"}}\n{\"doc\":{\"producer\":\"Mazda\",\"model\":\"MX-5 Miata\",\"picture\":\"mazda-mx5-miata.jpg\",\"production_year\":2016,\"colors\":[\"white\"],\"service_ids\":[1,2,5,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"34\"}}\n{\"doc\":{\"producer\":\"Mazda\",\"model\":\"MX-5 Z-Sport\",\"picture\":\"mazda-mx5-z-sport.jpg\",\"production_year\":2016,\"colors\":[\"silver\",\"red\"],\"service_ids\":[1,4,5]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"35\"}}\n{\"doc\":{\"producer\":\"Dodge\",\"model\":\"Viper GTS\",\"picture\":\"dodge-viper-gts.jpg\",\"production_year\":1997,\"colors\":[\"blue\",\"white\"],\"service_ids\":[5,6,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"36\"}}\n{\"doc\":{\"producer\":\"Dodge\",\"model\":\"Viper SRT10 Roadster\",\"picture\":\"dodge-viper-srt10-roadster.jpg\",\"production_year\":2017,\"colors\":[\"yellow\",\"black\"],\"service_ids\":[1,2,3,4,5,6,7,8]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"37\"}}\n{\"doc\":{\"producer\":\"Dodge\",\"model\":\"Challenger\",\"picture\":\"dodge-challenger.jpg\",\"production_year\":2015,\"colors\":[\"green\",\"black\"],\"service_ids\":[8,5,4]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"38\"}}\n{\"doc\":{\"producer\":\"Ferrari\",\"model\":\"550 Maranello\",\"picture\":\"ferrari-550-maranello.jpg\",\"production_year\":1999,\"colors\":[\"blue\"],\"service_ids\":[6,1,4,7,3]},\"doc_as_upsert\":true}\n{\"update\":{\"_index\":\"cars\",\"_type\":\"_doc\",\"_id\":\"39\"}}\n{\"doc\":{\"producer\":\"Mitsubishi\",\"model\":\"Lancer Evo X\",\"picture\":\"mitsubishi-lancer-evo-x.jpg\",\"production_year\":2010,\"colors\":[\"red\",\"black\"],\"service_ids\":[5,4,7,1]},\"doc_as_upsert\":true}\n"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_ad16e83a26714c9a9acb1d41ba4ef1e2"}],"authentication":{},"metaSortKey":-1632956038670.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_2f329936be364640bdf64ac71d7a5f5b","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1632956480631,"created":1632956465917,"url":"{{ _.elasticsearch_host }}/{{ _.index }}","name":"Mappings","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956038664,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e1e080bdfa3042a1b952a436b445e736","parentId":"fld_c83d2d1896f44a74bcba0cee52544f6f","modified":1632956413413,"created":1632955735770,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_count","name":"Count","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1632956038639,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a2d111f902a7431498e1d240bd6e170c","parentId":"fld_848de98705964627b6b99a4ce4965988","modified":1638984923550,"created":1632957008250,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_doc/39","name":"Create / Update","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\t\"producer\": \"Mitsubishi\",\n\t\t\"model\": \"Lancer Evo X\",\n\t\t\"picture\": \"mitsubishi-lancer-evo-x.jpg\",\n\t\t\"production_year\": 2010,\n\t\t\"colors\": [\"red\", \"black\"]\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_b8b7e87af42743c2bb0301fd5431e034"}],"authentication":{},"metaSortKey":-1632957008250,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_848de98705964627b6b99a4ce4965988","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956911174,"created":1632956847201,"name":"Document","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1632956240257.5,"_type":"request_group"},{"_id":"req_8bf493f90f8d4d01840b092445eb2476","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984922353,"created":1632957408326,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"All (1) // structure","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_a668f3ed97c9465d9686e2ae42d4cf4c"}],"authentication":{},"metaSortKey":-1632957408326,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_e77f4b53ba4244b28812221d85e201b7","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632957099461,"created":1632957091738,"name":"Search","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1632956240207.5,"_type":"request_group"},{"_id":"req_c81e645b45294217bffaa255dbf75762","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984916712,"created":1633167372022,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"Functions","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"_source\": true,\n\t\"explain\": false,\n\t\"from\": 0,\n\t\"size\": 3,\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": \"_score\"\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 10\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"filter\": {\n\t\t\t\t\t\t\"bool\": {\n\t\t\t\t\t\t\t\"must\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"match\": {\n\t\t\t\t\t\t\t\t\t\t\"producer\": \"Dodge\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 100\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": {\n\t\t\t\t\t\t\t\"source\": \"\\t\\t\\tif (params.requiredColors.isEmpty()) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\tif (false === doc['colors'].containsAll(params.requiredColors)) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n def requiredColorsCount = params.requiredColors.size();\\n\\t\\t\\tdef sum = params.requiredColors\\n\\t\\t\\t\\t.collect( requiredColor -> {\\n\\t\\t\\t\\t\\tif (false === doc['colors'].contains(requiredColor)) {\\t\\n\\t\\t\\t\\t\\t\\treturn 0;\\n\\t\\t\\t\\t\\t}\\n\\n def position = params._source['colors'].indexOf(requiredColor) + 1.0;\\n\\n\\t\\t\\t\\t\\treturn (params.maximumColorsPerDocument + 1.0 - position ) \\/ params.maximumColorsPerDocument;\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.sum();\\n\\n\\t\\t\\treturn sum \\/ requiredColorsCount;\",\n\t\t\t\t\t\t\t\"params\": {\n\t\t\t\t\t\t\t\t\"requiredColors\": [],\n\t\t\t\t\t\t\t\t\"maximumColorsPerDocument\": 3\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 50\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_a668f3ed97c9465d9686e2ae42d4cf4c"}],"authentication":{},"metaSortKey":-1632957308307,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4946d939634b40f0bf5bc0a78de82df7","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984918214,"created":1633359932970,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"Functions (colors)","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"_source\": true,\n\t\"explain\": true,\n\t\"from\": 3,\n\t\"size\": 3,\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": \"_score\"\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"filter\": {\n\t\t\t\t\t\t\"bool\": {\n\t\t\t\t\t\t\t\"must\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"match\": {\n\t\t\t\t\t\t\t\t\t\t\"producer\": \"Dodge\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 100\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"script_score\": {\n\t\t\t\t\t\t\"script\": {\n\t\t\t\t\t\t\t\"source\": \"\\t\\t\\tif (params.requiredColors.isEmpty()) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\tif (false === doc['colors'].containsAll(params.requiredColors)) {\\n \\t\\t\\treturn 0;\\n\\t\\t\\t}\\n\\n def colorExclusivnessFactor = (params.maximumColorsPerDocument + 1.0 - doc['colors'].size()) \\/ params.maximumColorsPerDocument * 0.25;\\n\\n def requiredColorsCount = params.requiredColors.size();\\n\\t\\t\\tdef positionsFactorSum = params.requiredColors\\n\\t\\t\\t\\t.collect( requiredColor -> {\\n\\t\\t\\t\\t\\tif (false === doc['colors'].contains(requiredColor)) {\\t\\n\\t\\t\\t\\t\\t\\treturn 0;\\n\\t\\t\\t\\t\\t}\\n\\n def position = params._source['colors'].indexOf(requiredColor) + 1.0;\\n\\n\\t\\t\\t\\t\\treturn (params.maximumColorsPerDocument + 1.0 - position) \\/ params.maximumColorsPerDocument;\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.sum() * 0.75;\\n\\n def colorPositionFactor = positionsFactorSum \\/ requiredColorsCount;\\n\\n\\t\\t\\treturn (colorExclusivnessFactor + colorPositionFactor);\",\n\t\t\t\t\t\t\t\"params\": {\n\t\t\t\t\t\t\t\t\"requiredColors\": [],\n\t\t\t\t\t\t\t\t\"maximumColorsPerDocument\": 3\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"weight\": 50\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_a668f3ed97c9465d9686e2ae42d4cf4c"}],"authentication":{},"metaSortKey":-1632957258297.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ff9bf1ed939e48a5911a3df25cc84e51","parentId":"fld_e77f4b53ba4244b28812221d85e201b7","modified":1638984918751,"created":1633085660702,"url":"{{ _.elasticsearch_host }}/{{ _.index }}/_search","name":"Phrase","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"_source\": true,\n\t\"explain\": false,\n\t\"from\": 0,\n\t\"size\": 3,\n\t\"query\": {\n\t\t\"function_score\": {\n\t\t\t\"query\": {\n\t\t\t\t\"bool\": {\n\t\t\t\t\t\"must\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"query_string\": {\n\t\t\t\t\t\t\t\t\"query\": \"maclaren\",\n\t\t\t\t\t\t\t\t\"fields\": [\n\t\t\t\t\t\t\t\t\t\"producer\",\n\t\t\t\t\t\t\t\t\t\"model\"\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"must_not\": [],\n\t\t\t\t\t\"should\": [],\n\t\t\t\t\t\"filter\": []\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"functions\": [],\n\t\t\t\"boost_mode\": \"replace\",\n\t\t\t\"score_mode\": \"sum\",\n\t\t\t\"min_score\": 0\n\t\t}\n\t},\n\t\"sort\": {\n\t\t\"_score\": \"desc\"\n\t}\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_6779c4a40d7b4d5b907bc1521ce73023"}],"authentication":{},"metaSortKey":-1632957208288,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_f91a63830840f829c9236b3d4131697a09da9600","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632956097328,"created":1632946363165,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1632946363165,"_type":"environment"},{"_id":"jar_f91a63830840f829c9236b3d4131697a09da9600","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632946363169,"created":1632946363169,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_3b0f9e7318ff4f70908ca2d88c436111","parentId":"wrk_12cabd0990c2431fa06f1275ba0d0a0f","modified":1632946362745,"created":1632946362745,"fileName":"Painless Car Rental","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_b3f370dafd964840835a09b7637dc8cc","parentId":"env_f91a63830840f829c9236b3d4131697a09da9600","modified":1632956386928,"created":1632956086502,"name":"LOCAL","data":{"elasticsearch_host":"http://localhost:9200","index":"cars"},"dataPropertyOrder":{"&":["elasticsearch_host","index"]},"color":"#00b30c","isPrivate":true,"metaSortKey":1632956086502,"_type":"environment"}]} diff --git a/app/default/src/ValueObject/Cars.php b/app/default/src/ValueObject/Cars.php index eb62588..6ee3b7f 100644 --- a/app/default/src/ValueObject/Cars.php +++ b/app/default/src/ValueObject/Cars.php @@ -44,7 +44,7 @@ public function total(): int return $this->total; } - public function empty(): bool + public function empty(): bool { return 0 === $this->count(); } diff --git a/app/default/src/ValueObject/ProductionYear.php b/app/default/src/ValueObject/ProductionYear.php index fd3b948..c5edf3c 100644 --- a/app/default/src/ValueObject/ProductionYear.php +++ b/app/default/src/ValueObject/ProductionYear.php @@ -7,7 +7,7 @@ final class ProductionYear { /** @link https://www.daimler.com/company/tradition/company-history/1885-1886.html */ private const MIN = 1886; - private const MAX = 2021; + private const MAX = 2022; public function __construct( private int $value From 0dbce9695f87f5f02d57bbdc44707741cc6474bd Mon Sep 17 00:00:00 2001 From: 212223 <33762345+212223@users.noreply.github.com> Date: Thu, 24 Mar 2022 08:39:38 +0100 Subject: [PATCH 23/23] Simplify elasticsearch-v7 - remove redundant files --- docker/service/elasticsearch-v7.yaml | 2 - .../config/elasticsearch-plugins.example.yml | 27 -- .../config/elasticsearch.keystore | Bin 199 -> 0 bytes .../elasticsearch/config/elasticsearch.yml | 2 - .../share/elasticsearch/config/jvm.options | 96 ------ .../config/log4j2.file.properties | 282 ------------------ .../elasticsearch/config/log4j2.properties | 159 ---------- .../elasticsearch/config/role_mapping.yml | 14 - .../usr/share/elasticsearch/config/roles.yml | 3 - .../usr/share/elasticsearch/config/users | 0 .../share/elasticsearch/config/users_roles | 0 11 files changed, 585 deletions(-) delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.keystore delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.yml delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/jvm.options delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/log4j2.file.properties delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/log4j2.properties delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/role_mapping.yml delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/roles.yml delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/users delete mode 100644 docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/users_roles diff --git a/docker/service/elasticsearch-v7.yaml b/docker/service/elasticsearch-v7.yaml index b18eb6f..1dc3217 100644 --- a/docker/service/elasticsearch-v7.yaml +++ b/docker/service/elasticsearch-v7.yaml @@ -107,5 +107,3 @@ services: volumes: - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/data:/usr/share/elasticsearch/data:rw - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/logs/:/usr/share/elasticsearch/logs/:rw - - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/config/:/usr/share/elasticsearch/config/:ro - - ${service_path:-.}/elasticsearch-v7/${image_files_path}/usr/share/elasticsearch/plugins/:/usr/share/elasticsearch/plugins/:ro diff --git a/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml b/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml deleted file mode 100644 index b6874e9..0000000 --- a/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch-plugins.example.yml +++ /dev/null @@ -1,27 +0,0 @@ -# Rename this file to `elasticsearch-plugins.yml` to use it. -# -# All plugins must be listed here. If you add a plugin to this list and run -# `elasticsearch-plugin sync`, that plugin will be installed. If you remove -# a plugin from this list, that plugin will be removed when Elasticsearch -# next starts. - -plugins: - # Each plugin must have an ID. Plugins with only an ID are official plugins and will be downloaded from Elastic. - - id: example-id - - # Plugins can be specified by URL (it doesn't have to be HTTP, you could use e.g. `file:`) - - id: example-with-url - location: https://some.domain/path/example4.zip - - # Or by maven coordinates: - - id: example-with-maven-url - location: org.elasticsearch.plugins:example-plugin:1.2.3 - - # A proxy can also be configured per-plugin, if necessary - - id: example-with-proxy - location: https://some.domain/path/example.zip - proxy: https://some.domain:1234 - -# Configures a proxy for all network access. Remove this if you don't need -# to use a proxy. -proxy: https://some.domain:1234 diff --git a/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.keystore b/docker/service/elasticsearch-v7/image/files/usr/share/elasticsearch/config/elasticsearch.keystore deleted file mode 100644 index a093a2f5c2cd8544d260526ac4cff61a6ad24064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmcD&o+B=nnv+;ul9^nbnpl*ap_iRnSzMA|l*+)szyib!lY!WwK&$9ijm4bbH+wsr zd|&QxkttP<%l>7w=O)+o83LYt=@)pS_f#D^@5cQ>a(>?mKl{`7-n(~e>UJ(UB%pH0 z@a!$189Xhm2Qp*7E_lkhJZ~$IZylGElOSeg;i6f8j{D2XYjaZXzvhm7W%ai?;^vMW wT6@ZSdjDLRz##rTPO|*vpN-Y)I64gGh*U>eyEDBwpfULc&