From bbf3877959f391fbd8ae29dc80672d06288d0e6c Mon Sep 17 00:00:00 2001 From: fatihalp Date: Sun, 30 Apr 2023 20:40:35 +0300 Subject: [PATCH 01/36] Docker with Nginx and OPCache (Draft) --- .env-sail | 4 +- Dockerfile | 48 +++++++ composer.json | 1 - docker-compose.yml | 127 +++++++----------- docker/entrypoint.sh | 31 +++++ docker/nginx/nginx.conf | 45 +++++++ docker/nginx/site.conf | 25 ++++ docker/php/php-fpm.conf | 279 ++++++++++++++++++++++++++++++++++++++++ docker/php/php.ini | 6 + 9 files changed, 485 insertions(+), 81 deletions(-) create mode 100644 Dockerfile create mode 100644 docker/entrypoint.sh create mode 100644 docker/nginx/nginx.conf create mode 100644 docker/nginx/site.conf create mode 100644 docker/php/php-fpm.conf create mode 100644 docker/php/php.ini diff --git a/.env-sail b/.env-sail index 8762d0ffa..8a047b79a 100644 --- a/.env-sail +++ b/.env-sail @@ -1,10 +1,12 @@ +APP_NAME=Laravel APP_ENV=local INSTALLED="false" APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX APP_DEBUG=true DEBUG_BAR=false DB_CONNECTION=mysql -DB_HOST=mysql +#DB_HOST=mysql +DB_HOST=hostdocker.internal DB_DATABASE=oopenclassify DB_USERNAME=root DB_PASSWORD= diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..75e923131 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,48 @@ +#docker compose build --no-cache && docker compose up --force-recreate -d + +FROM php:7.4-fpm as php + +ENV PHP_OPCACHE_ENABLE=1 +ENV PHP_OPCACHE_ENABLE_CLI=1 +ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=1 +ENV PHP_OPCACHE_REVALIDATE_FREQ=1 + + + +RUN usermod -u 1000 www-data + +RUN apt-get update -y +RUN apt-get install -y unzip libpq-dev libcurl4-gnutls-dev nginx +RUN docker-php-ext-install pdo pdo_mysql bcmath + +#RUN pecl install -o -f redis \ +# && rm -rf /tmp/pear \ +# && docker-php-ext-enable redis + +WORKDIR /var/www +COPY --chown=www-data . . + +COPY ./docker/php/php.ini /usr/local/etc/php/php.ini +COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf + +COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf + + +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer + +ENV PORT=8000 +ENTRYPOINT [ "docker/entrypoint.sh" ] + +# ============================================================================== +# node +# FROM node:14-alpine as node + +# WORKDIR /var/www + + +# COPY . . + +#RUN npm install --global cross-env +#RUN npm install + +#VOLUME /var/www/node_modules diff --git a/composer.json b/composer.json index 0238b80bc..87c90f6b9 100644 --- a/composer.json +++ b/composer.json @@ -74,7 +74,6 @@ "visiosoft/integer-field_type": "~2.1.0", "visiosoft/list-field_type": "*", "visiosoft/addblock-extension": "^1.1", - "maatwebsite/excel": "*", "google/recaptcha": "1.2.*", "sentry/sentry-laravel": "2.3.1", "composer/composer": "2.*", diff --git a/docker-compose.yml b/docker-compose.yml index b94e54e5a..d1a464b3f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,82 +1,51 @@ -# For more information: https://laravel.com/docs/sail version: '3' -services: - laravel.test: - build: - context: ./docker/7.4 - dockerfile: Dockerfile - args: - WWWGROUP: '${WWWGROUP}' - image: sail-7.4/openclassify - extra_hosts: - - 'host.docker.internal:host-gateway' - ports: - - '${APP_PORT:-80}:80' - - '${HMR_PORT:-8080}:8080' - environment: - WWWUSER: '${WWWUSER}' - LARAVEL_SAIL: 1 - XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' - XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' - volumes: - - '.:/var/www/html' - networks: - - sail - phpmyadmin: - image: 'phpmyadmin:latest' - ports: - - 8888:80 - environment: - MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' - links: - - "mysql:db" - depends_on: - - mysql - networks: - - sail - mysql: - image: 'mysql/mysql-server:8.0' - ports: - - '${FORWARD_DB_PORT:-3306}:3306' - environment: - MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' - MYSQL_ROOT_HOST: "%" - MYSQL_DATABASE: '${DB_DATABASE}' - MYSQL_USER: '${DB_USERNAME}' - MYSQL_PASSWORD: '${DB_PASSWORD}' - MYSQL_ALLOW_EMPTY_PASSWORD: 1 - volumes: - - 'sail-mysql:/var/lib/mysql' - - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' - networks: - - sail - healthcheck: - test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"] - retries: 3 - timeout: 5s - redis: - image: 'redis:alpine' - ports: - - '${FORWARD_REDIS_PORT:-6379}:6379' - volumes: - - 'sail-redis:/data' - networks: - - sail - healthcheck: - test: ["CMD", "redis-cli", "ping"] - retries: 3 - timeout: 5s - memcached: - image: 'memcached:alpine' - ports: - - '11211:11211' - networks: - - sail + networks: - sail: - driver: bridge + webapp: + +services: + nginx: + image: nginx:stable-alpine + container_name: ${APP_NAME}_nginx + ports: + - "8000:80" + links: + - php + volumes: + - ./:/var/www/html + - ./docker/nginx/site.conf:/etc/nginx/conf.d/default.conf:rw + - ./docker/logs/nginx:/var/logs/nginx:rw + depends_on: + - php + - database + networks: + - webapp + php: + build: + context: . + dockerfile: Dockerfile + container_name: ${APP_NAME}_php + environment: + - CONTAINER_ROLE=app + volumes: + - ./:/var/www/html + ports: + - "9001:9000" + networks: + - webapp + # Database Server + database: + image: mysql:8.0 + ports: + - 3306:3306 + command: --max_allowed_packet=32505856 # Set max_allowed_packet to 256M (or any other value) + environment: + - MYSQL_DATABASE=oc + - MYSQL_USER=oc + - MYSQL_PASSWORD=oc + - MYSQL_ROOT_PASSWORD=oc + volumes: + - db-data:/var/lib/mysql + volumes: - sail-mysql: - driver: local - sail-redis: - driver: local + db-data: ~ \ No newline at end of file diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 000000000..5363547e3 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +if [ ! -f "vendor/autoload.php" ]; then + composer install --no-progress --no-interaction +fi + +if [ ! -f ".env" ]; then + echo "Creating env file for env $APP_ENV" + cp .env-sail .env +else + echo "env file exists." +fi + +# TODO make role based @fatihalp +role=${CONTAINER_ROLE:-app} + +if [ "$role" = "app" ]; then + php artisan install --ready + php artisan key:generate + php artisan cache:clear + php artisan config:clear + php artisan route:clear + exec docker-php-entrypoint "$@" +elif [ "$role" = "queue" ]; then + echo "Running the queue ... " + php /var/www/artisan queue:work --verbose --tries=3 --timeout=180 +elif [ "$role" = "websocket" ]; then + echo "Running the websocket server ... " + php artisan websockets:serve +fi + diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf new file mode 100644 index 000000000..9521b16aa --- /dev/null +++ b/docker/nginx/nginx.conf @@ -0,0 +1,45 @@ +user www-data; + +events { + worker_connections 2048; +} + +http { + keepalive_timeout 500; + keepalive_requests 5000; + + client_max_body_size 32m; + client_body_buffer_size 32m; + + sendfile on; + server_tokens off; + + upstream php-fpm { + server php:9000; + } + + server { + listen 8000; + server_name example.com; + + root /var/www/public; + index index.php; + + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + + include /etc/nginx/mime.types; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_pass php-fpm; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + include fastcgi_params; + } + } +} \ No newline at end of file diff --git a/docker/nginx/site.conf b/docker/nginx/site.conf new file mode 100644 index 000000000..5000f032f --- /dev/null +++ b/docker/nginx/site.conf @@ -0,0 +1,25 @@ +server { + listen 80; + index index.php index.html; + server_name localhost; + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + root /var/www/html/public; + + client_max_body_size 100M; + fastcgi_read_timeout 1800; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + fastcgi_pass php:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + } +} \ No newline at end of file diff --git a/docker/php/php-fpm.conf b/docker/php/php-fpm.conf new file mode 100644 index 000000000..fad4176da --- /dev/null +++ b/docker/php/php-fpm.conf @@ -0,0 +1,279 @@ +[www] +; Log level +; Possible Values: alert, error, warning, notice, debug +; Default Value: notice +;log_level = notice + +; If this number of child processes exit with SIGSEGV or SIGBUS within the time +; interval set by emergency_restart_interval then FPM will restart. A value +; of '0' means 'Off'. +; Default Value: 0 +;emergency_restart_threshold = 0 + +; Interval of time used by emergency_restart_interval to determine when +; a graceful restart will be initiated. This can be useful to work around +; accidental corruptions in an accelerator's shared memory. +; Available Units: s(econds), m(inutes), h(ours), or d(ays) +; Default Unit: seconds +; Default Value: 0 +;emergency_restart_interval = 0 + +; Time limit for child processes to wait for a reaction on signals from master. +; Available units: s(econds), m(inutes), h(ours), or d(ays) +; Default Unit: seconds +; Default Value: 0 +;process_control_timeout = 0 + +; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. +; Default Value: yes +;daemonize = yes + +;;;;;;;;;;;;;;;;;;;; +; Pool Definitions ; +;;;;;;;;;;;;;;;;;;;; + +; Multiple pools of child processes may be started with different listening +; ports and different management options. The name of the pool will be +; used in logs and stats. There is no limitation on the number of pools which +; FPM can handle. Your system will tell you anyway :) + +; Start a new pool named 'www'. +; the variable $pool can we used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /etc) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses on a +; specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = 127.0.0.1:8000 + +; Set listen(2) backlog. A value of '-1' means unlimited. +; Default Value: 128 (-1 on FreeBSD and OpenBSD) +;listen.backlog = -1 + +; List of ipv4 addresses of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. +; Default Values: user and group are set as the running user +; mode is set to 0666 +;listen.owner = nginx +;listen.group = nginx +;listen.mode = 0660 + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = www-data +group = www-data + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives: +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes to be created when pm is set to 'dynamic'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. +; Note: Used when pm is set to either 'static' or 'dynamic' +; Note: This value is mandatory. +pm.max_children = 50 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +pm.max_requests = 5000 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. By default, the status page shows the following +; information: +; accepted conn - the number of request accepted by the pool; +; pool - the name of the pool; +; process manager - static or dynamic; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes. +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic') +; The values of 'idle processes', 'active processes' and 'total processes' are +; updated each second. The value of 'accepted conn' is updated in real time. +; Example output: +; accepted conn: 12073 +; pool: www +; process manager: static +; idle processes: 35 +; active processes: 65 +; total processes: 100 +; max children reached: 1 +; By default the status page output is formatted as text/plain. Passing either +; 'html' or 'json' as a query string will return the corresponding output +; syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +pm.status_path = /phpstatus + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +ping.path = /phpping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +ping.response = pong + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /etc) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M +php_admin_value[disable_functions] = shell_exec \ No newline at end of file diff --git a/docker/php/php.ini b/docker/php/php.ini new file mode 100644 index 000000000..626b13ca6 --- /dev/null +++ b/docker/php/php.ini @@ -0,0 +1,6 @@ +zend_extension=opcache.so + +opcache.enable=${PHP_OPCACHE_ENABLE} +opcache.enable_cli=${PHP_OPCACHE_ENABLE_CLI} +opcache.validate_timestamp=${PHP_OPCACHE_VALIDATE_TIMESTAMPS} +opcache.revalidate_freq=${PHP_OPCACHE_REVALIDATE_FREQ} \ No newline at end of file From 1d1d08ea0768b50b4e51853dc4b82581c7fecd81 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Sun, 7 May 2023 19:21:55 +0300 Subject: [PATCH 02/36] Docker - Smooth installation conditions --- .env-sail | 6 +++--- Dockerfile | 34 +++++++++++----------------------- docker-compose.yml | 17 +++++++++++++++-- docker/entrypoint.sh | 21 +++++++++++++++------ docker/nginx/nginx.conf | 27 +-------------------------- docker/nginx/site.conf | 2 +- docker/php/opcache.ini | 11 +++++++++++ docker/php/php.ini | 7 +------ 8 files changed, 58 insertions(+), 67 deletions(-) mode change 100644 => 100755 docker/entrypoint.sh create mode 100644 docker/php/opcache.ini diff --git a/.env-sail b/.env-sail index 8a047b79a..442fa0764 100644 --- a/.env-sail +++ b/.env-sail @@ -7,9 +7,9 @@ DEBUG_BAR=false DB_CONNECTION=mysql #DB_HOST=mysql DB_HOST=hostdocker.internal -DB_DATABASE=oopenclassify -DB_USERNAME=root -DB_PASSWORD= +DB_DATABASE=oc +DB_USERNAME=oc +DB_PASSWORD=oc APPLICATION_NAME=Default APPLICATION_REFERENCE=default APPLICATION_DOMAIN=http://localhost diff --git a/Dockerfile b/Dockerfile index 75e923131..ae5ad7afe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ #docker compose build --no-cache && docker compose up --force-recreate -d +#docker compose down -v && docker compose up --build FROM php:7.4-fpm as php @@ -7,42 +8,29 @@ ENV PHP_OPCACHE_ENABLE_CLI=1 ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=1 ENV PHP_OPCACHE_REVALIDATE_FREQ=1 - - RUN usermod -u 1000 www-data RUN apt-get update -y RUN apt-get install -y unzip libpq-dev libcurl4-gnutls-dev nginx -RUN docker-php-ext-install pdo pdo_mysql bcmath +RUN docker-php-ext-install pdo pdo_mysql bcmath curl opcache -#RUN pecl install -o -f redis \ -# && rm -rf /tmp/pear \ -# && docker-php-ext-enable redis +RUN docker-php-ext-enable opcache WORKDIR /var/www -COPY --chown=www-data . . + +COPY --chown=www-data:www-data . . COPY ./docker/php/php.ini /usr/local/etc/php/php.ini COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf - -COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf +COPY ./docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini +COPY ./docker/nginx/site.conf /etc/nginx/default.conf COPY --from=composer:latest /usr/bin/composer /usr/bin/composer -ENV PORT=8000 -ENTRYPOINT [ "docker/entrypoint.sh" ] +RUN chmod -R 755 /var/www/storage +RUN chmod -R 755 /var/www/bootstrap -# ============================================================================== -# node -# FROM node:14-alpine as node +#ENTRYPOINT [ "docker/entrypoint.sh" ] -# WORKDIR /var/www - - -# COPY . . - -#RUN npm install --global cross-env -#RUN npm install - -#VOLUME /var/www/node_modules +CMD ["docker/entrypoint.sh","php-fpm","-F"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index d1a464b3f..025afd405 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,7 @@ version: '3' networks: webapp: + driver: bridge services: nginx: @@ -12,7 +13,7 @@ services: links: - php volumes: - - ./:/var/www/html + - ./:/var/www - ./docker/nginx/site.conf:/etc/nginx/conf.d/default.conf:rw - ./docker/logs/nginx:/var/logs/nginx:rw depends_on: @@ -28,14 +29,21 @@ services: environment: - CONTAINER_ROLE=app volumes: - - ./:/var/www/html + - ./:/var/www ports: - "9001:9000" networks: - webapp + links: + - database + depends_on: + database: + condition: service_healthy + # Database Server database: image: mysql:8.0 + container_name: database ports: - 3306:3306 command: --max_allowed_packet=32505856 # Set max_allowed_packet to 256M (or any other value) @@ -44,8 +52,13 @@ services: - MYSQL_USER=oc - MYSQL_PASSWORD=oc - MYSQL_ROOT_PASSWORD=oc + - DB_HOST=host.docker.internal volumes: - db-data:/var/lib/mysql + healthcheck: + test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] + timeout: 5s + retries: 10 volumes: db-data: ~ \ No newline at end of file diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh old mode 100644 new mode 100755 index 5363547e3..15a04953f --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,25 +1,35 @@ #!/bin/bash +echo "$APP_ENV" + if [ ! -f "vendor/autoload.php" ]; then composer install --no-progress --no-interaction +else + echo " nothing to do." fi if [ ! -f ".env" ]; then - echo "Creating env file for env $APP_ENV" + echo "Creating env file for env $APP_ENV from env-sail" cp .env-sail .env else - echo "env file exists." + echo "env file exists. nothing to do." fi # TODO make role based @fatihalp role=${CONTAINER_ROLE:-app} if [ "$role" = "app" ]; then - php artisan install --ready - php artisan key:generate + #INSTALLED=$(. ./.env; printf '%s' "$INSTALLED") + if [ "$INSTALLED" = "false" ]; then + echo ".env installed is false starting installing" + composer update + php artisan install --ready + fi php artisan cache:clear php artisan config:clear php artisan route:clear + chmod -R 777 /var/www/storage + chmod -R 777 /var/www/bootstrap exec docker-php-entrypoint "$@" elif [ "$role" = "queue" ]; then echo "Running the queue ... " @@ -27,5 +37,4 @@ elif [ "$role" = "queue" ]; then elif [ "$role" = "websocket" ]; then echo "Running the websocket server ... " php artisan websockets:serve -fi - +fi \ No newline at end of file diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf index 9521b16aa..9e084633e 100644 --- a/docker/nginx/nginx.conf +++ b/docker/nginx/nginx.conf @@ -17,29 +17,4 @@ http { upstream php-fpm { server php:9000; } - - server { - listen 8000; - server_name example.com; - - root /var/www/public; - index index.php; - - error_log /var/log/nginx/error.log; - access_log /var/log/nginx/access.log; - - include /etc/nginx/mime.types; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } - - location ~ \.php$ { - fastcgi_pass php-fpm; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param SCRIPT_NAME $fastcgi_script_name; - include fastcgi_params; - } - } -} \ No newline at end of file +} \ No newline at end of file diff --git a/docker/nginx/site.conf b/docker/nginx/site.conf index 5000f032f..056260844 100644 --- a/docker/nginx/site.conf +++ b/docker/nginx/site.conf @@ -4,7 +4,7 @@ server { server_name localhost; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; - root /var/www/html/public; + root /var/www/public; client_max_body_size 100M; fastcgi_read_timeout 1800; diff --git a/docker/php/opcache.ini b/docker/php/opcache.ini new file mode 100644 index 000000000..fc9ed4d15 --- /dev/null +++ b/docker/php/opcache.ini @@ -0,0 +1,11 @@ +[opcache] +opcache.enable=1 +; 0 means it will check on every request +; 0 is irrelevant if opcache.validate_timestamps=0 which is desirable in production +opcache.revalidate_freq=0 +opcache.validate_timestamps=1 +opcache.max_accelerated_files=10000 +opcache.memory_consumption=192 +opcache.max_wasted_percentage=10 +opcache.interned_strings_buffer=16 +opcache.fast_shutdown=1 \ No newline at end of file diff --git a/docker/php/php.ini b/docker/php/php.ini index 626b13ca6..aef30aa2f 100644 --- a/docker/php/php.ini +++ b/docker/php/php.ini @@ -1,6 +1 @@ -zend_extension=opcache.so - -opcache.enable=${PHP_OPCACHE_ENABLE} -opcache.enable_cli=${PHP_OPCACHE_ENABLE_CLI} -opcache.validate_timestamp=${PHP_OPCACHE_VALIDATE_TIMESTAMPS} -opcache.revalidate_freq=${PHP_OPCACHE_REVALIDATE_FREQ} \ No newline at end of file +#zend_extension=opcache.so \ No newline at end of file From bad7d2130af5dda45061b1cbc654fe5da0472640 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Sun, 7 May 2023 19:26:00 +0300 Subject: [PATCH 03/36] Docker - Smooth installation conditions --- .env-sail | 2 +- Dockerfile | 8 ++++---- composer.json | 10 +--------- docker-compose.yml | 2 ++ docker/entrypoint.sh | 3 +-- 5 files changed, 9 insertions(+), 16 deletions(-) diff --git a/.env-sail b/.env-sail index 442fa0764..1d2cf66ba 100644 --- a/.env-sail +++ b/.env-sail @@ -3,7 +3,7 @@ APP_ENV=local INSTALLED="false" APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX APP_DEBUG=true -DEBUG_BAR=false +DEBUG_BAR=true DB_CONNECTION=mysql #DB_HOST=mysql DB_HOST=hostdocker.internal diff --git a/Dockerfile b/Dockerfile index ae5ad7afe..a0a95ecab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,8 +17,8 @@ RUN docker-php-ext-install pdo pdo_mysql bcmath curl opcache RUN docker-php-ext-enable opcache WORKDIR /var/www - -COPY --chown=www-data:www-data . . + +COPY --chown=www-data:www-data --chmod=777 . . COPY ./docker/php/php.ini /usr/local/etc/php/php.ini COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf @@ -28,8 +28,8 @@ COPY ./docker/nginx/site.conf /etc/nginx/default.conf COPY --from=composer:latest /usr/bin/composer /usr/bin/composer -RUN chmod -R 755 /var/www/storage -RUN chmod -R 755 /var/www/bootstrap +RUN chmod -R 777 /var/www/storage +RUN chmod -R 777 /var/www/bootstrap #ENTRYPOINT [ "docker/entrypoint.sh" ] diff --git a/composer.json b/composer.json index 87c90f6b9..d5ae2fd2a 100644 --- a/composer.json +++ b/composer.json @@ -57,10 +57,7 @@ "anomaly/navigation-module": "~2.4.0", "anomaly/dashboard-module": "~2.2.0", "anomaly/redirects-module": "~2.3.0", - "anomaly/variables-module": "~2.4.0", "anomaly/settings-module": "~2.4.0", - "anomaly/blocks-module": "~1.3.0", - "anomaly/search-module": "~3.0.0", "anomaly/users-module": "~2.5.0", "anomaly/pages-module": "~2.6.0", "anomaly/posts-module": "~2.6.0", @@ -78,8 +75,6 @@ "sentry/sentry-laravel": "2.3.1", "composer/composer": "2.*", "visiosoft/composer-merge-plugin": "2.*", - "pusher/pusher-php-server": "^5.0", - "simplepie/simplepie": "^1.5.0", "guzzlehttp/guzzle": "^7.3", "visiosoft/connect-module": "^1.0", "visiosoft/singlefile-field_type": "^1.0", @@ -94,7 +89,6 @@ "visiosoft/advs-module": "^1.0", "visiosoft/json-field_type": "^1.0", "visiosoft/language_switcher-plugin": "^1.0", - "fruitcake/laravel-cors": "^2.0", "visiosoft/global_helper-extension": "*" }, "replace": { @@ -104,9 +98,7 @@ "filp/whoops": "~2.0", "fzaninotto/faker": "~1.4", "symfony/css-selector": "3.1.*", - "symfony/dom-crawler": "3.1.*", - "anomaly/installer-module": "~2.4.0", - "laravel/sail": "^1.14" + "symfony/dom-crawler": "3.1.*" }, "repositories": [ { diff --git a/docker-compose.yml b/docker-compose.yml index 025afd405..a28ceb271 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,6 +39,8 @@ services: depends_on: database: condition: service_healthy + env_file: .env + # Database Server database: diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 15a04953f..87486ae2a 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -5,7 +5,7 @@ echo "$APP_ENV" if [ ! -f "vendor/autoload.php" ]; then composer install --no-progress --no-interaction else - echo " nothing to do." + echo "composer. nothing to do." fi if [ ! -f ".env" ]; then @@ -19,7 +19,6 @@ fi role=${CONTAINER_ROLE:-app} if [ "$role" = "app" ]; then - #INSTALLED=$(. ./.env; printf '%s' "$INSTALLED") if [ "$INSTALLED" = "false" ]; then echo ".env installed is false starting installing" composer update From 15aca28ce26b32acec49f9938a70814ac70302a6 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Sun, 21 May 2023 16:52:24 +0300 Subject: [PATCH 04/36] Pusher error fixed --- .env-sail | 4 ++-- config/broadcasting.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.env-sail b/.env-sail index 1d2cf66ba..217499863 100644 --- a/.env-sail +++ b/.env-sail @@ -1,4 +1,4 @@ -APP_NAME=Laravel +APP_NAME=OC APP_ENV=local INSTALLED="false" APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX @@ -6,7 +6,7 @@ APP_DEBUG=true DEBUG_BAR=true DB_CONNECTION=mysql #DB_HOST=mysql -DB_HOST=hostdocker.internal +DB_HOST=host.docker.internal DB_DATABASE=oc DB_USERNAME=oc DB_PASSWORD=oc diff --git a/config/broadcasting.php b/config/broadcasting.php index 5d8b7df8b..2c599d6b8 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -15,7 +15,7 @@ return [ | */ - 'default' => env('BROADCAST_DRIVER', 'pusher'), + 'default' => env('BROADCAST_DRIVER', 'null'), /* |-------------------------------------------------------------------------- From f0279bb883b24f353702104164528526829b08b4 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Sun, 21 May 2023 17:05:59 +0300 Subject: [PATCH 05/36] Bash script install and uninstall for Docker --- install.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ uninstall.sh | 7 +++++++ 2 files changed, 52 insertions(+) create mode 100644 install.sh create mode 100644 uninstall.sh diff --git a/install.sh b/install.sh new file mode 100644 index 000000000..19b4015b2 --- /dev/null +++ b/install.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +echo "================================================" +echo "----------------- Openclassify -----------------" +echo "----- Automated install script with Docker -----" +echo "================================================" + +if [[ $(which docker) && $(docker --version) ]]; then + docker --version + else + #if ubuntu install docker + if [ -n "$(uname -a | grep Ubuntu)" ]; then + sudo apt-get install -y \ + apt-transport-https \ + ca-certificates \ + curl \ + software-properties-common + curl -fsSL https://yum.dockerproject.org/gpg | sudo apt-key add - + sudo add-apt-repository \ + "deb https://apt.dockerproject.org/repo/ \ + ubuntu-$(lsb_release -cs) \ + main" + sudo apt-get update + sudo apt-get -y install docker-engine + # add current user to docker group so there is no need to use sudo when running docker + sudo usermod -aG docker $(whoami) + else + echo "Install docker and come back later" + exit + fi +fi + +cp -u .env-sail .env + +#docker compose build +#--no-cache + +docker compose up --force-recreate -d + +docker exec -it oc_php php artisan install --ready + +#php artisan migrate --all-addons --force + +#composer config http-basic.abc.aaa.com openclassify pass +#composer config repositories.repo-name composer https://abc.aaa.com \ No newline at end of file diff --git a/uninstall.sh b/uninstall.sh new file mode 100644 index 000000000..dc4d79615 --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +echo "|| ## Openclassify ## || " +echo "|| Removing Bye bye || " + +docker compose down -v +# TODO @fatihalp \ No newline at end of file From 5561be3ebfcfd2b01983abf4e09d8e060f04de13 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Sun, 21 May 2023 17:10:04 +0300 Subject: [PATCH 06/36] Cleaned & removed files from root directory --- Envoy.blade.php | 62 -------------------------------------------- INSTALL.md | 69 ------------------------------------------------- Procfile | 1 - SECURITY.md | 15 ----------- _config.yml | 1 - app.json | 20 -------------- build.xml | 46 --------------------------------- nginx_app.conf | 7 ----- 8 files changed, 221 deletions(-) delete mode 100644 Envoy.blade.php delete mode 100644 INSTALL.md delete mode 100644 Procfile delete mode 100644 SECURITY.md delete mode 100644 _config.yml delete mode 100644 app.json delete mode 100644 build.xml delete mode 100644 nginx_app.conf diff --git a/Envoy.blade.php b/Envoy.blade.php deleted file mode 100644 index be765124e..000000000 --- a/Envoy.blade.php +++ /dev/null @@ -1,62 +0,0 @@ -@servers(['web' => 'yoursite@50.59.80.150 -p 22400']) - -@task('update', ['on' => 'web']) -cd /home/yoursite -php /usr/bin/composer update -o --no-dev -php artisan migrate --all-addons --force -php artisan migrate --force -@endtask - -@task('pull', ['on' => 'web']) -cd /home/yoursite -git pull -@endtask - -@task('migrate', ['on' => 'web']) -cd /home/yoursite -php artisan migrate --all-addons --force -php artisan migrate --force -@endtask - -@task('compile', ['on' => 'web']) -cd /home/yoursite -php artisan streams:compile -@endtask - -@task('clear', ['on' => 'web']) -cd /home/yoursite -php artisan httpcache:clear -php artisan assets:clear -php artisan cache:clear -php artisan route:clear -php artisan view:clear -php artisan twig:clear -@endtask - -@task('install', ['on' => 'web']) -cd /home/yoursite -php artisan addon:install {{$addon}} -@endtask - -@task('uninstall', ['on' => 'web']) -cd /home/yoursite -php artisan addon:uninstall {{$addon}} -@endtask - -@task('reinstall', ['on' => 'web']) -cd /home/yoursite -php artisan addon:reinstall {{$addon}} -@endtask - -@macro('push') -pull -clear -migrate -@endmacro - -@macro('deploy') -push -update -compile -clear -@endmacro diff --git a/INSTALL.md b/INSTALL.md deleted file mode 100644 index 5b7819683..000000000 --- a/INSTALL.md +++ /dev/null @@ -1,69 +0,0 @@ -# Installation - -## Server Requirements - -- PHP >= 7.2 -- XML PHP Extension -- PDO PHP Extension -- cURL PHP Extension -- JSON PHP Extension -- Ctype PHP Extension -- BCMath PHP Extension -- SQLite PHP Extension -- OpenSSL PHP Extension -- Mbstring PHP Extension -- Fileinfo PHP Extension -- Tokenizer PHP Extension -- GD Library (>=2.0) **OR** Imagick PHP extension (>=6.5.7) - - -### Via Composer - -> Do not create an `.env` file just yet - Installer will generate one for you.{.important} - -```bash -composer create-project openclassify/openclassify -``` - -### Host Configuration - -When you setup your web host be sure to point the web root to `public` directory. Just as you would a normal Laravel installation. - -#### Alternate Directories for cPanel or Virtualmin - -In some environments like cPanel or Virtualmin it may be difficult to use the `public` directory as the web root. In these cases we suggest symlinking the `public` directory to `public_html`: - -```bash -ln -s public public_html -``` - -You may also simply rename the `public` directory to `public_html`. Path hints will automatically use the correct path. - -### Directory Permissions - -After installing, you may need to configure some permissions in order to proceed. Directories within the `storage`, `public/app`, and the `bootstrap/cache` directories should be writable by your web server. If you are using the [Homestead](http://laravel.com/docs/homestead) virtual machine, these permissions should already be set. - - -## Installing - -### Running the Installation Wizard - -After downloading and it's dependencies with: - -```bash -composer install -``` -you will need to install the software in order to get started. -By this time you should be able to visit your site's URL which will - redirect you to the installer: `http://yoursite.com/installer` - -### Using the CLI Installer - - -```bash -php artisan install - -``` - -You will be prompted for details in order to proceed with the installation process. - diff --git a/Procfile b/Procfile deleted file mode 100644 index 7892955c3..000000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: INSTALLED=false php artisan streams:compile && INSTALLED=true bin/heroku-php-apache2 public/ diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index dde06e865..000000000 --- a/SECURITY.md +++ /dev/null @@ -1,15 +0,0 @@ -# Security Policy - -## Supported Versions - - - -| Version | Supported | -| ------- | ------------------ | -| 2.x | :x: | -| 1.x | :white_check_mark: | - -## Reporting a Vulnerability - - -If you discover any security related issues, please email info@openclassify.com instead of using the issue tracker. diff --git a/_config.yml b/_config.yml deleted file mode 100644 index c4192631f..000000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-cayman \ No newline at end of file diff --git a/app.json b/app.json deleted file mode 100644 index 1945d327b..000000000 --- a/app.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "PyroCMS", - "description": "A barebones Pyro install.", - "repository": "https://github.com/pyrocms/pyrocms", - "logo": "https://pyrocms.com/files/vendors/logo-inverted_512@2x.jpg", - "keywords": [ - "pyrocms", - "laravel", - "cms", - "php" - ], - "addons": [ - { - "plan": "heroku-postgresql", - } - ], - "scripts": { - "postdeploy": "composer install" - } -} diff --git a/build.xml b/build.xml deleted file mode 100644 index 21584f383..000000000 --- a/build.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/nginx_app.conf b/nginx_app.conf deleted file mode 100644 index 4ab4e70c9..000000000 --- a/nginx_app.conf +++ /dev/null @@ -1,7 +0,0 @@ -location / { - try_files $uri @rewriteapp; -} - -location @rewriteapp { - rewrite ^(.*)$ /index.php$1 last; -} From 4973bd08e87101b8f1ba13c5d7c43891f6d7c07e Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Sun, 21 May 2023 17:17:46 +0300 Subject: [PATCH 07/36] Cleaned & removed files from root directory --- .env-sail | 2 +- docker-compose.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.env-sail b/.env-sail index 217499863..a623e02dc 100644 --- a/.env-sail +++ b/.env-sail @@ -1,4 +1,4 @@ -APP_NAME=OC +APP_NAME=oc APP_ENV=local INSTALLED="false" APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX diff --git a/docker-compose.yml b/docker-compose.yml index a28ceb271..7d2d57604 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,7 +25,7 @@ services: build: context: . dockerfile: Dockerfile - container_name: ${APP_NAME}_php + container_name: oc_php environment: - CONTAINER_ROLE=app volumes: @@ -45,7 +45,7 @@ services: # Database Server database: image: mysql:8.0 - container_name: database + container_name: ${APP_NAME}_database ports: - 3306:3306 command: --max_allowed_packet=32505856 # Set max_allowed_packet to 256M (or any other value) From 6adf68474b971121199ceb9df0e26124bac7e58b Mon Sep 17 00:00:00 2001 From: fatihalp Date: Tue, 23 May 2023 21:00:19 +0300 Subject: [PATCH 08/36] Changes for Docker --- .gitignore | 11 +- Dockerfile | 33 +- composer.json | 1 + docker-compose.yml | 9 +- docker/entrypoint.sh | 6 - docker/nginx/nginx.conf | 29 +- docker/nginx/site.conf | 25 - docker/php/php.ini | 1948 ++++++++++++++++++++++++++++++++++++++- install.sh | 18 +- 9 files changed, 2014 insertions(+), 66 deletions(-) delete mode 100644 docker/nginx/site.conf diff --git a/.gitignore b/.gitignore index 723ef36f4..399d09242 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,10 @@ -.idea \ No newline at end of file +.idea +.env +.coverage +/bin +/core +/build +/vendor +/coverage +/node_modules +/bower_components \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index a0a95ecab..6caa55799 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,25 @@ -#docker compose build --no-cache && docker compose up --force-recreate -d -#docker compose down -v && docker compose up --build - -FROM php:7.4-fpm as php - -ENV PHP_OPCACHE_ENABLE=1 -ENV PHP_OPCACHE_ENABLE_CLI=1 -ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=1 -ENV PHP_OPCACHE_REVALIDATE_FREQ=1 +FROM php:7.4-fpm as php RUN usermod -u 1000 www-data RUN apt-get update -y -RUN apt-get install -y unzip libpq-dev libcurl4-gnutls-dev nginx -RUN docker-php-ext-install pdo pdo_mysql bcmath curl opcache - -RUN docker-php-ext-enable opcache +RUN apt-get install -y unzip libpq-dev libcurl4-gnutls-dev +RUN docker-php-ext-install pdo pdo_mysql bcmath WORKDIR /var/www COPY --chown=www-data:www-data --chmod=777 . . -COPY ./docker/php/php.ini /usr/local/etc/php/php.ini -COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf -COPY ./docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini -COPY ./docker/nginx/site.conf /etc/nginx/default.conf +#COPY ./docker/php/php.ini /usr/local/etc/php/php.ini +#COPY ./docker/php/php.ini /usr/local/etc/php/php.ini +#COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf +#COPY ./docker/nginx/site.conf /etc/nginx/default.conf + +COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf COPY --from=composer:latest /usr/bin/composer /usr/bin/composer -RUN chmod -R 777 /var/www/storage -RUN chmod -R 777 /var/www/bootstrap +ENTRYPOINT [ "docker/entrypoint.sh" ] -#ENTRYPOINT [ "docker/entrypoint.sh" ] - -CMD ["docker/entrypoint.sh","php-fpm","-F"] \ No newline at end of file +#CMD ["docker/entrypoint.sh","php-fpm","-F"] \ No newline at end of file diff --git a/composer.json b/composer.json index d5ae2fd2a..887600ed9 100644 --- a/composer.json +++ b/composer.json @@ -58,6 +58,7 @@ "anomaly/dashboard-module": "~2.2.0", "anomaly/redirects-module": "~2.3.0", "anomaly/settings-module": "~2.4.0", + "anomaly/search-module": "~3.0.0", "anomaly/users-module": "~2.5.0", "anomaly/pages-module": "~2.6.0", "anomaly/posts-module": "~2.6.0", diff --git a/docker-compose.yml b/docker-compose.yml index 7d2d57604..5393d6fdc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,7 @@ -version: '3' +version: '3.8' networks: webapp: - driver: bridge services: nginx: @@ -14,7 +13,7 @@ services: - php volumes: - ./:/var/www - - ./docker/nginx/site.conf:/etc/nginx/conf.d/default.conf:rw + # - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:rw - ./docker/logs/nginx:/var/logs/nginx:rw depends_on: - php @@ -47,7 +46,7 @@ services: image: mysql:8.0 container_name: ${APP_NAME}_database ports: - - 3306:3306 + - "3306:3306" command: --max_allowed_packet=32505856 # Set max_allowed_packet to 256M (or any other value) environment: - MYSQL_DATABASE=oc @@ -56,7 +55,7 @@ services: - MYSQL_ROOT_PASSWORD=oc - DB_HOST=host.docker.internal volumes: - - db-data:/var/lib/mysql + - db-data:/var/lib/mysql:delegated healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 5s diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 87486ae2a..0b1f9ad6a 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -21,14 +21,8 @@ role=${CONTAINER_ROLE:-app} if [ "$role" = "app" ]; then if [ "$INSTALLED" = "false" ]; then echo ".env installed is false starting installing" - composer update php artisan install --ready fi - php artisan cache:clear - php artisan config:clear - php artisan route:clear - chmod -R 777 /var/www/storage - chmod -R 777 /var/www/bootstrap exec docker-php-entrypoint "$@" elif [ "$role" = "queue" ]; then echo "Running the queue ... " diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf index 9e084633e..c8bd20485 100644 --- a/docker/nginx/nginx.conf +++ b/docker/nginx/nginx.conf @@ -15,6 +15,31 @@ http { server_tokens off; upstream php-fpm { - server php:9000; + server 127.0.0.1:9000 max_fails=5 fail_timeout=5s; } -} \ No newline at end of file + + server { + listen 8000; + server_name example.com; + + root /var/www/public; + index index.php; + + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + + include /etc/nginx/mime.types; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_pass php-fpm; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + include fastcgi_params; + } + } +} \ No newline at end of file diff --git a/docker/nginx/site.conf b/docker/nginx/site.conf deleted file mode 100644 index 056260844..000000000 --- a/docker/nginx/site.conf +++ /dev/null @@ -1,25 +0,0 @@ -server { - listen 80; - index index.php index.html; - server_name localhost; - error_log /var/log/nginx/error.log; - access_log /var/log/nginx/access.log; - root /var/www/public; - - client_max_body_size 100M; - fastcgi_read_timeout 1800; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } - - location ~ \.php$ { - try_files $uri =404; - fastcgi_split_path_info ^(.+?\.php)(/.*)$; - fastcgi_pass php:9000; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param PATH_INFO $fastcgi_path_info; - } -} \ No newline at end of file diff --git a/docker/php/php.ini b/docker/php/php.ini index aef30aa2f..01b558ba3 100644 --- a/docker/php/php.ini +++ b/docker/php/php.ini @@ -1 +1,1947 @@ -#zend_extension=opcache.so \ No newline at end of file +[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 + +; 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. +; Note: if open_basedir is set, the cache is disabled +; 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 = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default: Off +zend.exception_ignore_args = Off + +;;;;;;;;;;;;;;;;; +; 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 +; 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 is only effective 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 +; 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 (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; http://php.net/syslog.filter +;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 effect. +; 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=ffi +;extension=ftp +;extension=fileinfo +;extension=gd2 +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;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 = + +[imap] +; rsh/ssh logins are disabled by default. Use this INI entry if you want to +; enable them. Note that the IMAP library does not filter mailbox names before +; passing them to rsh/ssh command, thus passing untrusted data to this function +; with rsh/ssh enabled is insecure. +;imap.enable_insecure_rsh=0 + +[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] +; Directory pointing to SQLite3 extensions +; http://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[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 + +[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 mysqli_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_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 "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; 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, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each 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 gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 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 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 < mbstring.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= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +; Default: 100000 +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +; Default: 1000000 +;mbstring.regex_retry_limit=1000000 + +[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= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; 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 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; http://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; http://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[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= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= diff --git a/install.sh b/install.sh index 19b4015b2..df2ddc48c 100644 --- a/install.sh +++ b/install.sh @@ -7,6 +7,15 @@ echo "================================================" if [[ $(which docker) && $(docker --version) ]]; then docker --version + + #if ubuntu install docker + if [ -n "$(uname -a | grep Ubuntu)" ]; then + if ! docker info > /dev/null 2>&1; then + systemctl --user start docker-desktop + echo "Docker is not running. I've started for you. Run it again" + exit + fi + fi else #if ubuntu install docker if [ -n "$(uname -a | grep Ubuntu)" ]; then @@ -26,18 +35,19 @@ if [[ $(which docker) && $(docker --version) ]]; then sudo usermod -aG docker $(whoami) else echo "Install docker and come back later" - exit + exit fi fi cp -u .env-sail .env -#docker compose build +docker compose build #--no-cache -docker compose up --force-recreate -d +docker compose up -d -docker exec -it oc_php php artisan install --ready +# +#docker exec -it oc_php php artisan install --ready #php artisan migrate --all-addons --force From 714c444d8f82b11c928eb6596b12300fa9e6369e Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 23 May 2023 19:37:56 +0000 Subject: [PATCH 09/36] Codespace Draft --- .devcontainer/devcontainer.json | 5 +++++ .gitignore | 4 +++- docker-compose.yml | 11 +++++------ install.sh | 34 ++++++++++++++++----------------- 4 files changed, 30 insertions(+), 24 deletions(-) create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..86a096ac0 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,5 @@ +{ + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", // Any generic, debian-based image. + "features": { + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 399d09242..2ce671bee 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,6 @@ /vendor /coverage /node_modules -/bower_components \ No newline at end of file +/bower_components +composer.lock +package-lock.json \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 5393d6fdc..83d4ede56 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,15 +2,16 @@ version: '3.8' networks: webapp: + driver: bridge + aliases: + - mysql.local services: nginx: image: nginx:stable-alpine container_name: ${APP_NAME}_nginx ports: - - "8000:80" - links: - - php + - "8000:80" volumes: - ./:/var/www # - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:rw @@ -32,9 +33,7 @@ services: ports: - "9001:9000" networks: - - webapp - links: - - database + - webapp depends_on: database: condition: service_healthy diff --git a/install.sh b/install.sh index df2ddc48c..c669fecd0 100644 --- a/install.sh +++ b/install.sh @@ -19,20 +19,19 @@ if [[ $(which docker) && $(docker --version) ]]; then else #if ubuntu install docker if [ -n "$(uname -a | grep Ubuntu)" ]; then - sudo apt-get install -y \ - apt-transport-https \ - ca-certificates \ - curl \ - software-properties-common - curl -fsSL https://yum.dockerproject.org/gpg | sudo apt-key add - - sudo add-apt-repository \ - "deb https://apt.dockerproject.org/repo/ \ - ubuntu-$(lsb_release -cs) \ - main" - sudo apt-get update - sudo apt-get -y install docker-engine - # add current user to docker group so there is no need to use sudo when running docker - sudo usermod -aG docker $(whoami) + sudo apt-get update + sudo apt-get install ca-certificates curl gnupg + sudo install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg + sudo chmod a+r /etc/apt/keyrings/docker.gpg + echo \ + "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + sudo apt-get update + sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + + else echo "Install docker and come back later" exit @@ -41,10 +40,11 @@ fi cp -u .env-sail .env -docker compose build -#--no-cache +docker compose down -v -docker compose up -d +docker compose build --no-cache + +docker compose up --force-recreate # #docker exec -it oc_php php artisan install --ready From c6c9fa51a5d7e81fa7b0679acc6d2561550f1652 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 23 May 2023 19:43:23 +0000 Subject: [PATCH 10/36] docker --- docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 83d4ede56..a397e0c6f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,8 +3,6 @@ version: '3.8' networks: webapp: driver: bridge - aliases: - - mysql.local services: nginx: From 4f90ae94f2ab587ca381ff85e67f3d5bff1b56a3 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Wed, 24 May 2023 10:14:43 +0000 Subject: [PATCH 11/36] docker --- .devcontainer/devcontainer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 86a096ac0..7d9275c9f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,4 @@ { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", // Any generic, debian-based image. "features": { } } \ No newline at end of file From dcc6126e5a764e9a6ba148ea0a90cfe43c58d593 Mon Sep 17 00:00:00 2001 From: emrullahardc Date: Tue, 13 Jun 2023 01:20:33 +0300 Subject: [PATCH 12/36] Update docker-compose.yml --- docker-compose.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a397e0c6f..3b8162cda 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,8 +35,6 @@ services: depends_on: database: condition: service_healthy - env_file: .env - # Database Server database: @@ -59,4 +57,4 @@ services: retries: 10 volumes: - db-data: ~ \ No newline at end of file + db-data: ~ From d95bd3bf4d75e0ee15366fd4fa0ed6b963282627 Mon Sep 17 00:00:00 2001 From: emrullahardc Date: Tue, 13 Jun 2023 01:21:01 +0300 Subject: [PATCH 13/36] Update install.sh --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index c669fecd0..65ef9c80d 100644 --- a/install.sh +++ b/install.sh @@ -38,7 +38,7 @@ if [[ $(which docker) && $(docker --version) ]]; then fi fi -cp -u .env-sail .env +cp .env-sail .env docker compose down -v @@ -52,4 +52,4 @@ docker compose up --force-recreate #php artisan migrate --all-addons --force #composer config http-basic.abc.aaa.com openclassify pass -#composer config repositories.repo-name composer https://abc.aaa.com \ No newline at end of file +#composer config repositories.repo-name composer https://abc.aaa.com From 1f647857197d30b7feb34d358c411d94dcf42b3d Mon Sep 17 00:00:00 2001 From: emrullahardc Date: Tue, 13 Jun 2023 01:21:28 +0300 Subject: [PATCH 14/36] Update entrypoint.sh --- docker/entrypoint.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 0b1f9ad6a..309e069ba 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -19,10 +19,8 @@ fi role=${CONTAINER_ROLE:-app} if [ "$role" = "app" ]; then - if [ "$INSTALLED" = "false" ]; then echo ".env installed is false starting installing" php artisan install --ready - fi exec docker-php-entrypoint "$@" elif [ "$role" = "queue" ]; then echo "Running the queue ... " @@ -30,4 +28,4 @@ elif [ "$role" = "queue" ]; then elif [ "$role" = "websocket" ]; then echo "Running the websocket server ... " php artisan websockets:serve -fi \ No newline at end of file +fi From a6f6810dd19853f53b736fea0cbeba3d36b3f4aa Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Mon, 26 Jun 2023 19:10:01 +0300 Subject: [PATCH 15/36] Docker Isolated new --- Dockerfile | 25 - docker-compose.yml | 114 +- docker/7.4/.env | 2 - docker/7.4/Dockerfile | 68 -- docker/7.4/php.ini | 4 - docker/7.4/scheduler | 1 - docker/7.4/start-container | 17 - docker/7.4/supervisord.conf | 17 - docker/entrypoint.sh | 31 - docker/mysql/Dockerfile | 7 + docker/mysql/my.cnf | 37 + docker/nginx/Dockerfile | 9 + docker/nginx/default.conf | 35 + docker/nginx/nginx.conf | 45 - docker/php/Dockerfile | 60 + docker/php/entrypoint.sh | 31 + docker/php/php-fpm.conf | 279 ----- docker/php/php.deploy.ini | 25 + docker/php/php.development.ini | 25 + docker/php/php.ini | 1947 -------------------------------- docker/php/xdebug.ini | 7 + install.sh | 12 +- 22 files changed, 314 insertions(+), 2484 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker/7.4/.env delete mode 100644 docker/7.4/Dockerfile delete mode 100644 docker/7.4/php.ini delete mode 100644 docker/7.4/scheduler delete mode 100644 docker/7.4/start-container delete mode 100644 docker/7.4/supervisord.conf delete mode 100755 docker/entrypoint.sh create mode 100644 docker/mysql/Dockerfile create mode 100644 docker/mysql/my.cnf create mode 100644 docker/nginx/Dockerfile create mode 100644 docker/nginx/default.conf delete mode 100644 docker/nginx/nginx.conf create mode 100644 docker/php/Dockerfile create mode 100755 docker/php/entrypoint.sh delete mode 100644 docker/php/php-fpm.conf create mode 100644 docker/php/php.deploy.ini create mode 100644 docker/php/php.development.ini delete mode 100644 docker/php/php.ini create mode 100644 docker/php/xdebug.ini diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6caa55799..000000000 --- a/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM php:7.4-fpm as php - -RUN usermod -u 1000 www-data - -RUN apt-get update -y -RUN apt-get install -y unzip libpq-dev libcurl4-gnutls-dev -RUN docker-php-ext-install pdo pdo_mysql bcmath - -WORKDIR /var/www - -COPY --chown=www-data:www-data --chmod=777 . . - -#COPY ./docker/php/php.ini /usr/local/etc/php/php.ini - -#COPY ./docker/php/php.ini /usr/local/etc/php/php.ini -#COPY ./docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf -#COPY ./docker/nginx/site.conf /etc/nginx/default.conf - -COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf - -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer - -ENTRYPOINT [ "docker/entrypoint.sh" ] - -#CMD ["docker/entrypoint.sh","php-fpm","-F"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 3b8162cda..ffd9f73dd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,60 +1,86 @@ -version: '3.8' +volumes: + db-store: + psysh-store: -networks: - webapp: - driver: bridge +configs: + db-config: + file: ./docker/mysql/my.cnf services: - nginx: - image: nginx:stable-alpine - container_name: ${APP_NAME}_nginx - ports: - - "8000:80" - volumes: - - ./:/var/www - # - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:rw - - ./docker/logs/nginx:/var/logs/nginx:rw - depends_on: - - php - - database - networks: - - webapp php: build: context: . - dockerfile: Dockerfile + dockerfile: ./docker/php/Dockerfile + target: ${APP_BUILD_TARGET:-development} container_name: oc_php - environment: - - CONTAINER_ROLE=app volumes: - - ./:/var/www - ports: - - "9001:9000" - networks: - - webapp + - type: bind + source: ./ + target: /workspace + - type: volume + source: psysh-store + target: /root/.config/psysh + volume: + nocopy: true + environment: + - APP_DEBUG=${APP_DEBUG:-true} + - APP_ENV=${APP_ENV:-local} + - APP_URL=${APP_URL:-http://localhost} + - LOG_CHANNEL=${LOG_CHANNEL:-stderr} + - LOG_STDERR_FORMATTER=${LOG_STDERR_FORMATTER:-Monolog\Formatter\JsonFormatter} + - DB_CONNECTION=${DB_CONNECTION:-mysql} + - DB_HOST=${DB_HOST:-db} + - DB_PORT=${DB_PORT:-3306} + - DB_DATABASE=${DB_DATABASE:-laravel} + - DB_USERNAME=${DB_USERNAME:-phper} + - DB_PASSWORD=${DB_PASSWORD:-secret} depends_on: database: - condition: service_healthy + condition: service_healthy - # Database Server - database: - image: mysql:8.0 - container_name: ${APP_NAME}_database + nginx: + build: + context: . + dockerfile: ./docker/nginx/Dockerfile + container_name: ${APP_NAME}_nginx ports: - - "3306:3306" - command: --max_allowed_packet=32505856 # Set max_allowed_packet to 256M (or any other value) - environment: - - MYSQL_DATABASE=oc - - MYSQL_USER=oc - - MYSQL_PASSWORD=oc - - MYSQL_ROOT_PASSWORD=oc - - DB_HOST=host.docker.internal + - target: 80 + published: ${WEB_PUBLISHED_PORT:-80} + protocol: tcp + mode: host volumes: - - db-data:/var/lib/mysql:delegated + - type: bind + source: ./ + target: /workspace + depends_on: + - php + - database + + database: + build: + context: . + dockerfile: ./docker/mysql/Dockerfile + command: --max_allowed_packet=32505856 # Set max_allowed_packet to 256M (or any other value) + ports: + - target: 3306 + published: ${DB_PUBLISHED_PORT:-3306} + protocol: tcp + mode: host + configs: + - source: db-config + target: /etc/my.cnf + volumes: + - type: volume + source: db-store + target: /var/lib/mysql + volume: + nocopy: true + environment: + - MYSQL_DATABASE=${DB_DATABASE:-laravel} + - MYSQL_USER=${DB_USERNAME:-phper} + - MYSQL_PASSWORD=${DB_PASSWORD:-secret} + - MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-secret} healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 5s - retries: 10 - -volumes: - db-data: ~ + retries: 10 \ No newline at end of file diff --git a/docker/7.4/.env b/docker/7.4/.env deleted file mode 100644 index e3a6e1fed..000000000 --- a/docker/7.4/.env +++ /dev/null @@ -1,2 +0,0 @@ -WWWGROUP=1000 -WWWUSER=1000 diff --git a/docker/7.4/Dockerfile b/docker/7.4/Dockerfile deleted file mode 100644 index 5f675fb00..000000000 --- a/docker/7.4/Dockerfile +++ /dev/null @@ -1,68 +0,0 @@ -FROM ubuntu:20.04 - -LABEL maintainer="Taylor Otwell" - -ARG WWWGROUP -ARG NODE_VERSION=16 -ARG POSTGRES_VERSION=14 - -WORKDIR /var/www/html - -ENV DEBIAN_FRONTEND noninteractive -ENV TZ=UTC - -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -RUN apt-get update \ - && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \ - && mkdir -p ~/.gnupg \ - && chmod 600 ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && echo "keyserver hkp://keyserver.ubuntu.com:80" >> ~/.gnupg/dirmngr.conf \ - && gpg --recv-key 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c \ - && gpg --export 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c > /usr/share/keyrings/ppa_ondrej_php.gpg \ - && echo "deb [signed-by=/usr/share/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && apt-get update \ - && apt-get install -y php7.4-cli php7.4-dev \ - php7.4-pgsql php7.4-sqlite3 php7.4-gd \ - php7.4-curl php7.4-memcached \ - php7.4-imap php7.4-mysql php7.4-mbstring \ - php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap \ - php7.4-intl php7.4-readline php7.4-pcov \ - php7.4-msgpack php7.4-igbinary php7.4-ldap \ - php7.4-redis php7.4-xdebug \ - && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \ - && curl -sLS https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \ - && apt-get install -y nodejs \ - && npm install -g npm \ - && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null \ - && echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ - && curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /usr/share/keyrings/pgdg.gpg >/dev/null \ - && echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ - && apt-get update \ - && apt-get install -y yarn \ - && apt-get install -y mysql-client \ - && apt-get install -y postgresql-client-$POSTGRES_VERSION \ - && apt-get update \ - && apt-get install -y cron \ - && apt-get -y autoremove \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -RUN setcap "cap_net_bind_service=+ep" /usr/bin/php7.4 - -RUN groupadd --force -g $WWWGROUP sail -RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail - -COPY start-container /usr/local/bin/start-container -COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf -COPY php.ini /etc/php/7.4/cli/conf.d/99-sail.ini -RUN chmod +x /usr/local/bin/start-container - -COPY scheduler /etc/cron.d/scheduler -RUN chmod 0644 /etc/cron.d/scheduler -RUN crontab /etc/cron.d/scheduler - -EXPOSE 8000 - -ENTRYPOINT ["start-container"] diff --git a/docker/7.4/php.ini b/docker/7.4/php.ini deleted file mode 100644 index 66d04d5be..000000000 --- a/docker/7.4/php.ini +++ /dev/null @@ -1,4 +0,0 @@ -[PHP] -post_max_size = 100M -upload_max_filesize = 100M -variables_order = EGPCS diff --git a/docker/7.4/scheduler b/docker/7.4/scheduler deleted file mode 100644 index 69e95f100..000000000 --- a/docker/7.4/scheduler +++ /dev/null @@ -1 +0,0 @@ -* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1 diff --git a/docker/7.4/start-container b/docker/7.4/start-container deleted file mode 100644 index b86439907..000000000 --- a/docker/7.4/start-container +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -if [ ! -z "$WWWUSER" ]; then - usermod -u $WWWUSER sail -fi - -if [ ! -d /.composer ]; then - mkdir /.composer -fi - -chmod -R ugo+rw /.composer - -if [ $# -gt 0 ]; then - exec gosu $WWWUSER "$@" -else - exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf -fi diff --git a/docker/7.4/supervisord.conf b/docker/7.4/supervisord.conf deleted file mode 100644 index a3b42f623..000000000 --- a/docker/7.4/supervisord.conf +++ /dev/null @@ -1,17 +0,0 @@ -[supervisord] -nodaemon=true -user=root -logfile=/var/log/supervisor/supervisord.log -pidfile=/var/run/supervisord.pid - -[program:php] -command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80 -user=sail -environment=LARAVEL_SAIL="1" -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 - -[include] -files=/var/www/html/supervisord/*.conf \ No newline at end of file diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh deleted file mode 100755 index 309e069ba..000000000 --- a/docker/entrypoint.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -echo "$APP_ENV" - -if [ ! -f "vendor/autoload.php" ]; then - composer install --no-progress --no-interaction -else - echo "composer. nothing to do." -fi - -if [ ! -f ".env" ]; then - echo "Creating env file for env $APP_ENV from env-sail" - cp .env-sail .env -else - echo "env file exists. nothing to do." -fi - -# TODO make role based @fatihalp -role=${CONTAINER_ROLE:-app} - -if [ "$role" = "app" ]; then - echo ".env installed is false starting installing" - php artisan install --ready - exec docker-php-entrypoint "$@" -elif [ "$role" = "queue" ]; then - echo "Running the queue ... " - php /var/www/artisan queue:work --verbose --tries=3 --timeout=180 -elif [ "$role" = "websocket" ]; then - echo "Running the websocket server ... " - php artisan websockets:serve -fi diff --git a/docker/mysql/Dockerfile b/docker/mysql/Dockerfile new file mode 100644 index 000000000..0125006d5 --- /dev/null +++ b/docker/mysql/Dockerfile @@ -0,0 +1,7 @@ +FROM mysql/mysql-server:8.0 + +ENV TZ=UTC + +RUN mkdir /var/log/mysql \ + && chown mysql:mysql $_ \ + && chmod 777 $_ \ No newline at end of file diff --git a/docker/mysql/my.cnf b/docker/mysql/my.cnf new file mode 100644 index 000000000..ec28d94e7 --- /dev/null +++ b/docker/mysql/my.cnf @@ -0,0 +1,37 @@ +[mysqld] +# default +skip-host-cache +skip-name-resolve +datadir = /var/lib/mysql +socket = /var/lib/mysql/mysql.sock +secure-file-priv = /var/lib/mysql-files +user = mysql + +pid-file = /var/run/mysqld/mysqld.pid + +# character set / collation +character_set_server = utf8mb4 +collation_server = utf8mb4_0900_ai_ci + +# timezone +default-time-zone = SYSTEM +log_timestamps = SYSTEM + +# Error Log +log-error = /var/log/mysql/mysql-error.log + +# Slow Query Log +slow_query_log = 1 +slow_query_log_file = /var/log/mysql/mysql-slow.log +long_query_time = 1.0 +log_queries_not_using_indexes = 0 + +# General Log +general_log = 1 +general_log_file = /var/log/mysql/mysql-general.log + +[mysql] +default-character-set = utf8mb4 + +[client] +default-character-set = utf8mb4 \ No newline at end of file diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile new file mode 100644 index 000000000..eb8f6bb79 --- /dev/null +++ b/docker/nginx/Dockerfile @@ -0,0 +1,9 @@ +FROM nginx:1.25 + +WORKDIR /workspace + +ENV TZ=UTC + +COPY ./docker/nginx/*.conf /etc/nginx/conf.d/ + + diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf new file mode 100644 index 000000000..0160616a8 --- /dev/null +++ b/docker/nginx/default.conf @@ -0,0 +1,35 @@ +access_log /dev/stdout main; +error_log /dev/stderr warn; + +server { + listen 80; + listen [::]:80; + root /workspace/public; + + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-XSS-Protection "1; mode=block"; + add_header X-Content-Type-Options "nosniff"; + + index index.php; + + charset utf-8; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location = /favicon.ico { access_log off; log_not_found off; } + location = /robots.txt { access_log off; log_not_found off; } + + error_page 404 /index.php; + + location ~ \.php$ { + fastcgi_pass php:9000; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + include fastcgi_params; + } + + location ~ /\.(?!well-known).* { + deny all; + } +} \ No newline at end of file diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf deleted file mode 100644 index c8bd20485..000000000 --- a/docker/nginx/nginx.conf +++ /dev/null @@ -1,45 +0,0 @@ -user www-data; - -events { - worker_connections 2048; -} - -http { - keepalive_timeout 500; - keepalive_requests 5000; - - client_max_body_size 32m; - client_body_buffer_size 32m; - - sendfile on; - server_tokens off; - - upstream php-fpm { - server 127.0.0.1:9000 max_fails=5 fail_timeout=5s; - } - - server { - listen 8000; - server_name example.com; - - root /var/www/public; - index index.php; - - error_log /var/log/nginx/error.log; - access_log /var/log/nginx/access.log; - - include /etc/nginx/mime.types; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } - - location ~ \.php$ { - fastcgi_pass php-fpm; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param SCRIPT_NAME $fastcgi_script_name; - include fastcgi_params; - } - } -} \ No newline at end of file diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile new file mode 100644 index 000000000..6e53a319c --- /dev/null +++ b/docker/php/Dockerfile @@ -0,0 +1,60 @@ +FROM php:8.2-fpm-bullseye AS base + +WORKDIR /workspace + +# timezone environment +ENV TZ=UTC \ + # locale + LANG=en_US.UTF-8 \ + LANGUAGE=en_US:en \ + LC_ALL=en_US.UTF-8 \ + # composer environment + COMPOSER_ALLOW_SUPERUSER=1 \ + COMPOSER_HOME=/composer + +COPY --from=composer:2.5 /usr/bin/composer /usr/bin/composer + +RUN apt-get update \ + && apt-get -y install --no-install-recommends \ + locales \ + git \ + unzip \ + libzip-dev \ + libicu-dev \ + libonig-dev \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* \ + && locale-gen en_US.UTF-8 \ + && localedef -f UTF-8 -i en_US en_US.UTF-8 \ + && docker-php-ext-install \ + intl \ + pdo_mysql \ + zip \ + bcmath \ + && composer config -g process-timeout 3600 \ + && composer config -g repos.packagist composer https://packagist.org + +COPY . . + +CMD ["docker/php/entrypoint.sh"] + +FROM base AS development + +COPY ./docker/php/php.development.ini /usr/local/etc/php/php.ini + +FROM development AS development-xdebug + +RUN pecl install xdebug && \ + docker-php-ext-enable xdebug + +COPY ./docker/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini + +FROM base AS deploy + +COPY ./docker/php/php.deploy.ini /usr/local/etc/php/php.ini +COPY ./ /workspace + +RUN composer install -q -n --no-ansi --no-dev --no-scripts --no-progress --prefer-dist \ + && chmod -R 777 storage bootstrap/cache \ + && php artisan optimize:clear \ + && php artisan optimize \ No newline at end of file diff --git a/docker/php/entrypoint.sh b/docker/php/entrypoint.sh new file mode 100755 index 000000000..5bf18cf80 --- /dev/null +++ b/docker/php/entrypoint.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +if [ ! -f "vendor/autoload.php" ]; then + composer install --no-progress --no-interaction +else + echo "composer. nothing to do." +fi + +if [ ! -f ".env" ]; then + echo "Creating env file for env from env-sail" + cp .env-sail .env +else + echo "env file exists. nothing to do." +fi + +# .env dosyasını oku ve değişkenleri tanımla +while IFS= read -r line || [[ -n "$line" ]]; do + if [[ "$line" == "INSTALLED="* ]]; then + installed="${line#*=}" + installed=$(echo "$installed" | tr -d '[:space:]' | tr -d '[:punct:]') # Boşlukları ve özel karakterleri sil + break + fi +done < .env + +# installed değişkenini kontrol et +if [ "$installed" = "false" ]; then + echo ".env installed is false starting installing" + php artisan install --ready +fi + +php-fpm -R \ No newline at end of file diff --git a/docker/php/php-fpm.conf b/docker/php/php-fpm.conf deleted file mode 100644 index fad4176da..000000000 --- a/docker/php/php-fpm.conf +++ /dev/null @@ -1,279 +0,0 @@ -[www] -; Log level -; Possible Values: alert, error, warning, notice, debug -; Default Value: notice -;log_level = notice - -; If this number of child processes exit with SIGSEGV or SIGBUS within the time -; interval set by emergency_restart_interval then FPM will restart. A value -; of '0' means 'Off'. -; Default Value: 0 -;emergency_restart_threshold = 0 - -; Interval of time used by emergency_restart_interval to determine when -; a graceful restart will be initiated. This can be useful to work around -; accidental corruptions in an accelerator's shared memory. -; Available Units: s(econds), m(inutes), h(ours), or d(ays) -; Default Unit: seconds -; Default Value: 0 -;emergency_restart_interval = 0 - -; Time limit for child processes to wait for a reaction on signals from master. -; Available units: s(econds), m(inutes), h(ours), or d(ays) -; Default Unit: seconds -; Default Value: 0 -;process_control_timeout = 0 - -; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. -; Default Value: yes -;daemonize = yes - -;;;;;;;;;;;;;;;;;;;; -; Pool Definitions ; -;;;;;;;;;;;;;;;;;;;; - -; Multiple pools of child processes may be started with different listening -; ports and different management options. The name of the pool will be -; used in logs and stats. There is no limitation on the number of pools which -; FPM can handle. Your system will tell you anyway :) - -; Start a new pool named 'www'. -; the variable $pool can we used in any directive and will be replaced by the -; pool name ('www' here) -[www] - -; Per pool prefix -; It only applies on the following directives: -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or /etc) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses on a -; specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = 127.0.0.1:8000 - -; Set listen(2) backlog. A value of '-1' means unlimited. -; Default Value: 128 (-1 on FreeBSD and OpenBSD) -;listen.backlog = -1 - -; List of ipv4 addresses of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0666 -;listen.owner = nginx -;listen.group = nginx -;listen.mode = 0660 - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = www-data -group = www-data - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives: -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes to be created when pm is set to 'dynamic'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. -; Note: Used when pm is set to either 'static' or 'dynamic' -; Note: This value is mandatory. -pm.max_children = 50 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -pm.max_requests = 5000 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. By default, the status page shows the following -; information: -; accepted conn - the number of request accepted by the pool; -; pool - the name of the pool; -; process manager - static or dynamic; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes. -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic') -; The values of 'idle processes', 'active processes' and 'total processes' are -; updated each second. The value of 'accepted conn' is updated in real time. -; Example output: -; accepted conn: 12073 -; pool: www -; process manager: static -; idle processes: 35 -; active processes: 65 -; total processes: 100 -; max children reached: 1 -; By default the status page output is formatted as text/plain. Passing either -; 'html' or 'json' as a query string will return the corresponding output -; syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -pm.status_path = /phpstatus - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -ping.path = /phpping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -ping.response = pong - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_terminate_timeout = 0 - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_slowlog_timeout = 0 - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -;slowlog = log/$pool.log.slow - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -;chdir = /var/www - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -;catch_workers_output = yes - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /etc) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M -php_admin_value[disable_functions] = shell_exec \ No newline at end of file diff --git a/docker/php/php.deploy.ini b/docker/php/php.deploy.ini new file mode 100644 index 000000000..c1e65559f --- /dev/null +++ b/docker/php/php.deploy.ini @@ -0,0 +1,25 @@ +zend.exception_ignore_args = off +expose_php = off +max_execution_time = 30 +max_input_vars = 1000 +upload_max_filesize = 64M +post_max_size = 128M +memory_limit = 256M +error_reporting = E_ALL +display_errors = off +display_startup_errors = off +log_errors = on +error_log = /dev/stderr +default_charset = UTF-8 + +[Date] +date.timezone = ${TZ} + +[mysqlnd] +mysqlnd.collect_memory_statistics = off + +[Assertion] +zend.assertions = -1 + +[mbstring] +mbstring.language = Neutral \ No newline at end of file diff --git a/docker/php/php.development.ini b/docker/php/php.development.ini new file mode 100644 index 000000000..026f1fcd9 --- /dev/null +++ b/docker/php/php.development.ini @@ -0,0 +1,25 @@ +zend.exception_ignore_args = off +expose_php = on +max_execution_time = 30 +max_input_vars = 1000 +upload_max_filesize = 64M +post_max_size = 128M +memory_limit = 256M +error_reporting = E_ALL +display_errors = on +display_startup_errors = on +log_errors = on +error_log = /dev/stderr +default_charset = UTF-8 + +[Date] +date.timezone = ${TZ} + +[mysqlnd] +mysqlnd.collect_memory_statistics = on + +[Assertion] +zend.assertions = 1 + +[mbstring] +mbstring.language = Neutral \ No newline at end of file diff --git a/docker/php/php.ini b/docker/php/php.ini deleted file mode 100644 index 01b558ba3..000000000 --- a/docker/php/php.ini +++ /dev/null @@ -1,1947 +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 - -; 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. -; Note: if open_basedir is set, the cache is disabled -; 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 = - -; Allows to include or exclude arguments from stack traces generated for exceptions. -; In production, it is recommended to turn this setting on to prohibit the output -; of sensitive information in stack traces -; Default: Off -zend.exception_ignore_args = Off - -;;;;;;;;;;;;;;;;; -; 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 -; 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 is only effective 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 -; 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 (all printable ASCII characters and NL) -; no-ctrl (all characters except control characters) -; all (all characters) -; raw (like "all", but messages are not split at newlines) -; http://php.net/syslog.filter -;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 effect. -; 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=ffi -;extension=ftp -;extension=fileinfo -;extension=gd2 -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;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 = - -[imap] -; rsh/ssh logins are disabled by default. Use this INI entry if you want to -; enable them. Note that the IMAP library does not filter mailbox names before -; passing them to rsh/ssh command, thus passing untrusted data to this function -; with rsh/ssh enabled is insecure. -;imap.enable_insecure_rsh=0 - -[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] -; Directory pointing to SQLite3 extensions -; http://php.net/sqlite3.extension-dir -;sqlite3.extension_dir = - -; SQLite defensive mode flag (only available from SQLite 3.26+) -; When the defensive flag is enabled, language features that allow ordinary -; SQL to deliberately corrupt the database file are disabled. This forbids -; writing directly to the schema, shadow tables (eg. FTS data tables), or -; the sqlite_dbpage virtual table. -; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html -; (for older SQLite versions, this flag has no use) -;sqlite3.defensive = 1 - -[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 - -[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 mysqli_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysqli_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 "Strict", "Lax" or "None". When using "None", -; make sure to include the quotes, as `none` is interpreted like `false` in ini files. -; 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, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each 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 gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; For high volume production servers, using a value of 1000 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 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 < mbstring.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= - -; This directive specifies maximum stack depth for mbstring regular expressions. It is similar -; to the pcre.recursion_limit for PCRE. -; Default: 100000 -;mbstring.regex_stack_limit=100000 - -; This directive specifies maximum retry count for mbstring regular expressions. It is similar -; to the pcre.backtrack_limit for PCRE. -; Default: 1000000 -;mbstring.regex_retry_limit=1000000 - -[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= - -; Facilitates multiple OPcache instances per user (for Windows only). All PHP -; processes with the same cache ID and user share an OPcache instance. -;opcache.cache_id= - -; 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 - -; Specifies a PHP script that is going to be compiled and executed at server -; start-up. -; http://php.net/opcache.preload -;opcache.preload= - -; Preloading code as root is not allowed for security reasons. This directive -; facilitates to let the preloading to be run as another user. -; http://php.net/opcache.preload_user -;opcache.preload_user= - -; Prevents caching files that are less than this number of seconds old. It -; protects from caching of incompletely updated files. In case all file updates -; on your site are atomic, you may increase performance by setting it to "0". -;opcache.file_update_protection=2 - -; Absolute path used to store shared lockfiles (for *nix only). -;opcache.lockfile_path=/tmp - -[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= - -[ffi] -; FFI API restriction. Possible values: -; "preload" - enabled in CLI scripts and preloaded files (default) -; "false" - always disabled -; "true" - always enabled -;ffi.enable=preload - -; List of headers files to preload, wildcard patterns allowed. -;ffi.preload= diff --git a/docker/php/xdebug.ini b/docker/php/xdebug.ini new file mode 100644 index 000000000..549ccaa28 --- /dev/null +++ b/docker/php/xdebug.ini @@ -0,0 +1,7 @@ +[xdebug] +xdebug.mode = debug +xdebug.start_with_request = yes +xdebug.client_host = host.docker.internal +xdebug.client_port = 9003 +xdebug.log = /tmp/xdebug.log +xdebug.idekey = "PHPSTORM" \ No newline at end of file diff --git a/install.sh b/install.sh index 65ef9c80d..3378adf5a 100644 --- a/install.sh +++ b/install.sh @@ -40,14 +40,18 @@ fi cp .env-sail .env -docker compose down -v +#docker compose down -v -docker compose build --no-cache +#docker compose build -docker compose up --force-recreate +#--no-cache + +docker compose up + +#--force-recreate -# #docker exec -it oc_php php artisan install --ready +#docker exec -it oc_nginx COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf #php artisan migrate --all-addons --force From 7e920366e4e01b09a166a1c28f7eeb3d7947c04b Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Mon, 26 Jun 2023 17:25:00 +0000 Subject: [PATCH 16/36] Add GD --- docker-compose.yml | 5 ++++- docker/php/Dockerfile | 7 +++++++ install.sh | 18 +++--------------- uninstall.sh | 8 +++++++- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ffd9f73dd..8bfc38090 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,7 +36,10 @@ services: - DB_PASSWORD=${DB_PASSWORD:-secret} depends_on: database: - condition: service_healthy + condition: service_healthy + extra_hosts: + - "host.docker.internal:host-gateway" + nginx: build: diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 6e53a319c..7f4be184e 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -22,6 +22,13 @@ RUN apt-get update \ libzip-dev \ libicu-dev \ libonig-dev \ + libpq-dev \ + libcurl4-gnutls-dev \ + libfreetype6-dev libjpeg62-turbo-dev libpng-dev && \ + docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \ + docker-php-ext-install gd + + && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && locale-gen en_US.UTF-8 \ diff --git a/install.sh b/install.sh index 3378adf5a..ed0db27f8 100644 --- a/install.sh +++ b/install.sh @@ -38,22 +38,10 @@ if [[ $(which docker) && $(docker --version) ]]; then fi fi -cp .env-sail .env - -#docker compose down -v - -#docker compose build - -#--no-cache - -docker compose up - -#--force-recreate - -#docker exec -it oc_php php artisan install --ready -#docker exec -it oc_nginx COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf - +cp -u .env-sail .env +docker compose up #php artisan migrate --all-addons --force +#docker exec -it oc_php php artisan install --ready #composer config http-basic.abc.aaa.com openclassify pass #composer config repositories.repo-name composer https://abc.aaa.com diff --git a/uninstall.sh b/uninstall.sh index dc4d79615..4191aff1f 100644 --- a/uninstall.sh +++ b/uninstall.sh @@ -4,4 +4,10 @@ echo "|| ## Openclassify ## || " echo "|| Removing Bye bye || " docker compose down -v -# TODO @fatihalp \ No newline at end of file +# TODO @fatihalp + +# reinstall +docker compose build --no-cache + +docker compose up --force-recreate + From 124d138edf58d33796c2370b1f423d263e165899 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 08:24:37 +0000 Subject: [PATCH 17/36] GD Fix --- docker/php/Dockerfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 7f4be184e..957416cfe 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -12,7 +12,7 @@ ENV TZ=UTC \ COMPOSER_ALLOW_SUPERUSER=1 \ COMPOSER_HOME=/composer -COPY --from=composer:2.5 /usr/bin/composer /usr/bin/composer +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer RUN apt-get update \ && apt-get -y install --no-install-recommends \ @@ -24,11 +24,9 @@ RUN apt-get update \ libonig-dev \ libpq-dev \ libcurl4-gnutls-dev \ - libfreetype6-dev libjpeg62-turbo-dev libpng-dev && \ - docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \ - docker-php-ext-install gd - - + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && locale-gen en_US.UTF-8 \ @@ -41,6 +39,9 @@ RUN apt-get update \ && composer config -g process-timeout 3600 \ && composer config -g repos.packagist composer https://packagist.org +RUN docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ +RUN docker-php-ext-install gd + COPY . . CMD ["docker/php/entrypoint.sh"] From 5d507e7be7c26a87abf1643c426568c3ef617394 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 08:29:37 +0000 Subject: [PATCH 18/36] docker app url --- .env-sail | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.env-sail b/.env-sail index a623e02dc..0add39241 100644 --- a/.env-sail +++ b/.env-sail @@ -11,8 +11,7 @@ DB_DATABASE=oc DB_USERNAME=oc DB_PASSWORD=oc APPLICATION_NAME=Default -APPLICATION_REFERENCE=default -APPLICATION_DOMAIN=http://localhost +APPLICATION_REFERENCE=default ADMIN_USERNAME=admin ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD=admin From 58a9093464506659f6e91ae19e4fbc903b6b1576 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 09:20:54 +0000 Subject: [PATCH 19/36] dev container --- .devcontainer/devcontainer.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7d9275c9f..2c859f023 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,4 +1,9 @@ { - "features": { - } + "name": "My Space", + // Your code path from the .devcontainer directory + "workspaceFolder": "../app", + // List of ports that you want to preview + "forwardPorts": [80], + // Script to run to bootstrap the app when the space is created + "postCreateCommand": ". ../install.sh" } \ No newline at end of file From 2fc9d623f6c81e71eb873e5c8a9eef27e7db3a9d Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 10:27:40 +0000 Subject: [PATCH 20/36] Dev container name --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2c859f023..fe1d0fb70 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "name": "My Space", + "name": "Openclassify", // Your code path from the .devcontainer directory "workspaceFolder": "../app", // List of ports that you want to preview From 7eb4ef29326d762929364dc1b616bba486fad96b Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 13:31:36 +0300 Subject: [PATCH 21/36] Update devcontainer.json --- .devcontainer/devcontainer.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fe1d0fb70..4489ec198 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,9 +1,7 @@ { - "name": "Openclassify", - // Your code path from the .devcontainer directory - "workspaceFolder": "../app", + "name": "Openclassify", // List of ports that you want to preview "forwardPorts": [80], // Script to run to bootstrap the app when the space is created "postCreateCommand": ". ../install.sh" -} \ No newline at end of file +} From 8f735c046ba9108c0468dd1f5d0c135a2b4997f1 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 13:40:14 +0300 Subject: [PATCH 22/36] Update devcontainer.json --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4489ec198..584cf6466 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,5 +3,5 @@ // List of ports that you want to preview "forwardPorts": [80], // Script to run to bootstrap the app when the space is created - "postCreateCommand": ". ../install.sh" + "postCreateCommand": "bash install.sh" } From 201d39d645f54587d674935ed8d7667704f4e009 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 10:56:55 +0000 Subject: [PATCH 23/36] Rename --- .devcontainer/devcontainer.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 584cf6466..0cbcacd61 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,7 +1,5 @@ { "name": "Openclassify", - // List of ports that you want to preview - "forwardPorts": [80], // Script to run to bootstrap the app when the space is created "postCreateCommand": "bash install.sh" } From 8ae88e954a11804214a9c9ea17e000a4c47a416d Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Tue, 27 Jun 2023 13:59:13 +0300 Subject: [PATCH 24/36] Update devcontainer.json --- .devcontainer/devcontainer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 0cbcacd61..429600c3c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,6 @@ { "name": "Openclassify", // Script to run to bootstrap the app when the space is created - "postCreateCommand": "bash install.sh" + "postCreateCommand": "bash install.sh", + "outputCapture": "std" } From a45f83ef231ff6db24b771bb2e12d9c217457bf9 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Thu, 29 Jun 2023 13:35:29 +0000 Subject: [PATCH 25/36] localhost URL --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index 92ea8017d..28067a4d8 100644 --- a/config/app.php +++ b/config/app.php @@ -78,7 +78,7 @@ return [ | */ - 'url' => env('APP_URL', 'http://localhost'), + 'url' => env('APP_URL', '/'), /* |-------------------------------------------------------------------------- From 121af05159f19ab1481aeca7d0ca72add31b994b Mon Sep 17 00:00:00 2001 From: emrullahardc Date: Tue, 4 Jul 2023 23:27:58 +0300 Subject: [PATCH 26/36] Update .env-sail app_url added --- .env-sail | 1 + 1 file changed, 1 insertion(+) diff --git a/.env-sail b/.env-sail index a623e02dc..07345af7f 100644 --- a/.env-sail +++ b/.env-sail @@ -1,6 +1,7 @@ APP_NAME=oc APP_ENV=local INSTALLED="false" +APP_URL="https://localhost" APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX APP_DEBUG=true DEBUG_BAR=true From fb8c14f6439bd3665b7c785b7a3e8754e1914858 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Wed, 5 Jul 2023 15:30:03 +0300 Subject: [PATCH 27/36] Update .env-sail --- .env-sail | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env-sail b/.env-sail index a871495b4..4768f83f0 100644 --- a/.env-sail +++ b/.env-sail @@ -1,5 +1,5 @@ APP_NAME=oc -APP_ENV=local +APP_ENV=production INSTALLED="false" APP_URL="https://localhost" APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX From 229350ad1d645918e50b7445c210deeedca14202 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Wed, 5 Jul 2023 22:00:48 +0000 Subject: [PATCH 28/36] Make it work with github link --- .env-sail | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env-sail b/.env-sail index 4768f83f0..6556227c9 100644 --- a/.env-sail +++ b/.env-sail @@ -1,7 +1,7 @@ APP_NAME=oc APP_ENV=production INSTALLED="false" -APP_URL="https://localhost" +APP_URL_TYPE="HTTP_X_FORWARDED_HOST" APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX APP_DEBUG=true DEBUG_BAR=true From 601311beefe089deb615ef2d3ed9c029fadd7905 Mon Sep 17 00:00:00 2001 From: Fatih Alp Date: Sat, 8 Jul 2023 23:09:02 +0300 Subject: [PATCH 29/36] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ed0db27f8..890b9e604 100644 --- a/install.sh +++ b/install.sh @@ -38,7 +38,7 @@ if [[ $(which docker) && $(docker --version) ]]; then fi fi -cp -u .env-sail .env +cp .env-sail .env docker compose up #php artisan migrate --all-addons --force #docker exec -it oc_php php artisan install --ready From 4390603cdd2fb8897928fe18340930e463171551 Mon Sep 17 00:00:00 2001 From: fatihalp Date: Sun, 23 Jul 2023 16:52:33 +0300 Subject: [PATCH 30/36] Fix for windows Docker --- docker/php/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 957416cfe..9b19c7c94 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -44,7 +44,8 @@ RUN docker-php-ext-install gd COPY . . -CMD ["docker/php/entrypoint.sh"] +RUN ["chmod", "+x", "./docker/php/entrypoint.sh"] +#CMD ["docker/php/entrypoint.sh"] FROM base AS development From ca916e445570d4c7de2a9a0c96347fb25027a0bb Mon Sep 17 00:00:00 2001 From: fatihalp Date: Sun, 23 Jul 2023 21:33:38 +0300 Subject: [PATCH 31/36] Readme update --- README.md | 111 ++++++++-------------------------- docker/php/entrypoint.sh | 2 - docs/cli-commands.md | 25 ++++++++ docs/other-install-methods.md | 84 +++++++++++++++++++++++++ install.sh | 7 +-- 5 files changed, 135 insertions(+), 94 deletions(-) create mode 100644 docs/other-install-methods.md diff --git a/README.md b/README.md index 2f2d69852..18ffee0d1 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@


- + + + Scrutinizer Code Quality @@ -14,18 +16,18 @@ -## About OpenClassify +### About OpenClassify -OpenClassify is modular and most advanced open source classified platform build with Laravel 8 & PHP 8.1 Supported. Included Pyrocms 3.9 +OpenClassify is modular and most advanced open source classified platform build with Laravel included Pyrocms. -## Translation +### Translation Openclassify support 22+ languages. If you'd like to contribute translations, please check out our [Crowdin](https://crowdin.com/project/openclassify) project. -## Server Requirements +### Server Requirements -- Supports PHP 7.3 and later (8.1 Supported) +- Only PHP > 8.2 Officially Supported! - XML PHP Extension - PDO PHP Extension - cURL PHP Extension @@ -40,99 +42,38 @@ Openclassify support 22+ languages. If you'd like to contribute translations, pl - GD Library (>=2.0) **OR** Imagick PHP extension (>=6.5.7) -## Via Composer -> Do not create an `.env` file just yet - Installer will generate one for you.{.important} +## Install Via Docker +We suggest to use Docker. Install Docker and run it. + +1- Clone project ```bash -composer create-project openclassify/openclassify +git clone https://github.com/openclassify/openclassify.git ``` +or use your IDE (like VS Code Or PHPStorm) -### Via Docker - -We suggest to use Docker. - -https://github.com/openclassify/openclassify/wiki/Installing-Openclassify-on-windows-docker-desktop - -### Host Configuration - -When you setup your web host be sure to point the web root to `public` directory. Just as you would a normal Laravel installation. - -#### Alternate Directories for cPanel or Virtualmin - -In some environments like cPanel or Virtualmin it may be difficult to use the `public` directory as the web root. In these cases we suggest symlinking the `public` directory to `public_html`: - +2- Run install.sh ```bash -ln -s public public_html +bash install.sh ``` +Open project at [localhost](http://localhost) -You may also simply rename the `public` directory to `public_html`. Path hints will automatically use the correct path. +Nginx, Mysql and PHP 8.2 installed. MacOS, Windows and Ubuntu is supported. -### Directory Permissions +Watch in on [Youtube](https://www.youtube.com/watch?v=vVpVmsxq-Z0&t=27s&pp=ygUTb3BlbmNsYXNzaWZ5IGRvY2tlcg%3D%3D) -After installing, you may need to configure some permissions in order to proceed. Directories within the `storage`, `public/app`, and the `bootstrap/cache` directories should be writable by your web server. If you are using the [Homestead](http://laravel.com/docs/homestead) virtual machine, these permissions should already be set. +## Other Installation Methods + +Check [here](https://github.com/openclassify/openclassify/blob/master/docs/other-install-methods.md) for more. -## Installation - -### Running the Installation Wizard - -After downloading and it's dependencies with: - -```bash -composer install -``` -you will need to install the software in order to get started. -By this time you should be able to visit your site's URL which will - redirect you to the installer: `http://yoursite.com/installer` - -### Using the CLI Installer - - -```bash -php artisan install - -``` - -You will be prompted for details in order to proceed with the installation process. - -> You may need to run `ulimit -n 1024` before installing via CLI to temporarily increase your max open files limit. - -#### Automating the CLI Installer - -You can automate the installer by creating your own .env file with something like this: - -```bash -APP_ENV=local -APP_DEBUG=true -APP_KEY=zfesbnTkXvooWVcsKMw2r4SmPVNGbFoS -DB_CONNECTION=mysql -DB_HOST=localhost -DB_DATABASE=workbench -DB_USERNAME=root -DB_PASSWORD=root -APPLICATION_NAME=Default -APPLICATION_REFERENCE=default -APPLICATION_DOMAIN=localhost -ADMIN_EMAIL=info@openclassify.com -ADMIN_USERNAME=admin -ADMIN_PASSWORD=password -LOCALE=en -TIMEZONE=Turkey/Istanbul -``` -> The APP_KEY must be exactly 32 characters in length. - -Then run the installer and indicate that the system is ready to install: - -```bash -php artisan install --ready -``` - -## CLI Commands +### CLI Commands If you couldn't find a solution for any problem, please review our CLI Command document. [View CLI Command Document](https://github.com/openclassify/openclassify/blob/master/docs/cli-commands.md) + ## Code Contributors This project exists thanks to all the people who [contribute](https://github.com/openclassify/openclassify/graphs/contributors) and more. @@ -143,6 +84,4 @@ This project exists thanks to all the people who [contribute](https://github.com -

- -Thanks to Ryan and his stream platform PyroCMS which makes OpenClassify more powerful. +

\ No newline at end of file diff --git a/docker/php/entrypoint.sh b/docker/php/entrypoint.sh index 5bf18cf80..ae8873b7b 100755 --- a/docker/php/entrypoint.sh +++ b/docker/php/entrypoint.sh @@ -13,7 +13,6 @@ else echo "env file exists. nothing to do." fi -# .env dosyasını oku ve değişkenleri tanımla while IFS= read -r line || [[ -n "$line" ]]; do if [[ "$line" == "INSTALLED="* ]]; then installed="${line#*=}" @@ -22,7 +21,6 @@ while IFS= read -r line || [[ -n "$line" ]]; do fi done < .env -# installed değişkenini kontrol et if [ "$installed" = "false" ]; then echo ".env installed is false starting installing" php artisan install --ready diff --git a/docs/cli-commands.md b/docs/cli-commands.md index fe36b7e6a..810a87429 100644 --- a/docs/cli-commands.md +++ b/docs/cli-commands.md @@ -231,3 +231,28 @@ Use the `--force` flag to overwrite the files should they already exist. ```bash php artisan addon:publish anomaly.module.store --force ``` + + +### Migrate All Addons + +```bash +php artisan migrate --all-addons --force +``` + +### Run Command Inside Docker + +```bash +docker exec -it oc_php php artisan install --ready +``` + +### Composer set private repo + +```bash +composer config repositories.repo-name composer https://abc.aaa.com +``` + + +### Composer set username and password for repo +```bash +composer config http-basic.abc.aaa.com openclassify pass +``` \ No newline at end of file diff --git a/docs/other-install-methods.md b/docs/other-install-methods.md new file mode 100644 index 000000000..37e8886f3 --- /dev/null +++ b/docs/other-install-methods.md @@ -0,0 +1,84 @@ + +## Via Composer + +> Do not create an `.env` file just yet - Installer will generate one for you.{.important} + +```bash +composer create-project openclassify/openclassify +``` + +### Host Configuration + +When you setup your web host be sure to point the web root to `public` directory. Just as you would a normal Laravel installation. + +#### Alternate Directories for cPanel or Virtualmin + +In some environments like cPanel or Virtualmin it may be difficult to use the `public` directory as the web root. In these cases we suggest symlinking the `public` directory to `public_html`: + +```bash +ln -s public public_html +``` + +You may also simply rename the `public` directory to `public_html`. Path hints will automatically use the correct path. + +### Directory Permissions + +After installing, you may need to configure some permissions in order to proceed. +Directories within the `storage`, `public/app`, and the `bootstrap/cache` directories should be writable by your web server. +If you are using the [Homestead](http://laravel.com/docs/homestead) virtual machine, these permissions should already be set. + + +## Installation + +### Running the Installation Wizard + +After downloading and it's dependencies with: + +```bash +composer install +``` +you will need to install the software in order to get started. +By this time you should be able to visit your site's URL which will +redirect you to the installer: `http://yoursite.com/installer` + +### Using the CLI Installer + + +```bash +php artisan install + +``` + +You will be prompted for details in order to proceed with the installation process. + +> You may need to run `ulimit -n 1024` before installing via CLI to temporarily increase your max open files limit. + +#### Automating the CLI Installer + +You can automate the installer by creating your own .env file with something like this: + +```bash +APP_ENV=local +APP_DEBUG=true +APP_KEY=zfesbnTkXvooWVcsKMw2r4SmPVNGbFoS +DB_CONNECTION=mysql +DB_HOST=localhost +DB_DATABASE=workbench +DB_USERNAME=root +DB_PASSWORD=root +APPLICATION_NAME=Default +APPLICATION_REFERENCE=default +APPLICATION_DOMAIN=localhost +ADMIN_EMAIL=info@openclassify.com +ADMIN_USERNAME=admin +ADMIN_PASSWORD=password +LOCALE=en +TIMEZONE=Turkey/Istanbul +``` +> The APP_KEY must be exactly 32 characters in length. + +Then run the installer and indicate that the system is ready to install: + +```bash +php artisan install --ready +``` diff --git a/install.sh b/install.sh index 890b9e604..1204cd7a3 100644 --- a/install.sh +++ b/install.sh @@ -39,9 +39,4 @@ if [[ $(which docker) && $(docker --version) ]]; then fi cp .env-sail .env -docker compose up -#php artisan migrate --all-addons --force -#docker exec -it oc_php php artisan install --ready - -#composer config http-basic.abc.aaa.com openclassify pass -#composer config repositories.repo-name composer https://abc.aaa.com +docker compose up \ No newline at end of file From 12aa5d84abaaaaa750a3acd3ed4d10532e1386e1 Mon Sep 17 00:00:00 2001 From: fatihalp Date: Sun, 23 Jul 2023 21:55:23 +0300 Subject: [PATCH 32/36] Readme update --- docker-compose.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8bfc38090..e30c85aaa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,25 +22,12 @@ services: target: /root/.config/psysh volume: nocopy: true - environment: - - APP_DEBUG=${APP_DEBUG:-true} - - APP_ENV=${APP_ENV:-local} - - APP_URL=${APP_URL:-http://localhost} - - LOG_CHANNEL=${LOG_CHANNEL:-stderr} - - LOG_STDERR_FORMATTER=${LOG_STDERR_FORMATTER:-Monolog\Formatter\JsonFormatter} - - DB_CONNECTION=${DB_CONNECTION:-mysql} - - DB_HOST=${DB_HOST:-db} - - DB_PORT=${DB_PORT:-3306} - - DB_DATABASE=${DB_DATABASE:-laravel} - - DB_USERNAME=${DB_USERNAME:-phper} - - DB_PASSWORD=${DB_PASSWORD:-secret} depends_on: database: condition: service_healthy extra_hosts: - "host.docker.internal:host-gateway" - nginx: build: context: . From bfe604a880bf69b2f4983162759c09e756298c2e Mon Sep 17 00:00:00 2001 From: fatihalp Date: Sun, 23 Jul 2023 22:15:25 +0300 Subject: [PATCH 33/36] Readme update --- README.md | 75 ++++++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 9ef0ef2f1..5fe759912 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,40 @@ OpenClassify is modular and most advanced open source classified platform build with Laravel included Pyrocms. +### Install with Docker + +We suggest to use Docker. Nginx, Mysql and PHP 8.2 pre-installed. MacOS, Windows and Ubuntu is supported. +Install Docker and run it. Install by watching 2 min video on [Youtube](https://www.youtube.com/watch?v=vVpVmsxq-Z0&t=27s&pp=ygUTb3BlbmNsYXNzaWZ5IGRvY2tlcg%3D%3D) + + +1- Clone project +```bash +git clone https://github.com/openclassify/openclassify.git +``` + +2- Run install.sh +```bash +bash install.sh +``` +3- That's it! + +Open project at [localhost](http://localhost) + + +### Documentation + +You can visit this link for detailed documentation. +https://visiosoft.gitbook.io/v2/ + +### CLI Commands + +If you couldn't find a solution for any problem, please review our CLI Command document. +[View CLI Command Document](https://github.com/openclassify/openclassify/blob/master/docs/cli-commands.md) + +### Other Installation Methods + +Check [here](https://github.com/openclassify/openclassify/blob/master/docs/other-install-methods.md) for more. + ### Translation @@ -40,53 +74,14 @@ Openclassify support 22+ languages. If you'd like to contribute translations, pl - Fileinfo PHP Extension - Tokenizer PHP Extension - GD Library (>=2.0) **OR** Imagick PHP extension (>=6.5.7) - - - -## Install Via Docker - -We suggest to use Docker. Install Docker and run it. - -1- Clone project -```bash -git clone https://github.com/openclassify/openclassify.git -``` -or use your IDE (like VS Code Or PHPStorm) - -2- Run install.sh -```bash -bash install.sh -``` -Open project at [localhost](http://localhost) - -Nginx, Mysql and PHP 8.2 installed. MacOS, Windows and Ubuntu is supported. - -Watch in on [Youtube](https://www.youtube.com/watch?v=vVpVmsxq-Z0&t=27s&pp=ygUTb3BlbmNsYXNzaWZ5IGRvY2tlcg%3D%3D) - -## Other Installation Methods - -Check [here](https://github.com/openclassify/openclassify/blob/master/docs/other-install-methods.md) for more. -### CLI Commands - -If you couldn't find a solution for any problem, please review our CLI Command document. -[View CLI Command Document](https://github.com/openclassify/openclassify/blob/master/docs/cli-commands.md) - - -## Documentation - -You can visit this link for detailed documentation. -https://visiosoft.gitbook.io/v2/ - -## Code Contributors +### Code Contributors This project exists thanks to all the people who [contribute](https://github.com/openclassify/openclassify/graphs/contributors) and more.

- -

\ No newline at end of file From dbc62a329e3fc9666ec41dde26906c995b8c8baa Mon Sep 17 00:00:00 2001 From: emrullahardc Date: Sun, 23 Jul 2023 22:15:30 +0300 Subject: [PATCH 34/36] Update docker-compose.yml --- docker-compose.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e30c85aaa..5c65e6702 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -73,4 +73,13 @@ services: healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 5s - retries: 10 \ No newline at end of file + retries: 10 + + phpmyadmin: + image: phpmyadmin/phpmyadmin:latest + ports: + - "8081:80" + depends_on: + - database + environment: + MYSQL_ROOT_PASSWORD: oc From b48a163a89110dab50a69041d97d98c528677dc1 Mon Sep 17 00:00:00 2001 From: fatihalp Date: Sun, 23 Jul 2023 22:50:40 +0300 Subject: [PATCH 35/36] Phpmyadmin update --- docker-compose.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5c65e6702..84116cd93 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -82,4 +82,6 @@ services: depends_on: - database environment: - MYSQL_ROOT_PASSWORD: oc + PMA_USER: oc + PMA_PASSWORD: oc + PMA_HOSTS: database,localhost \ No newline at end of file From 54e841cbae8a14f19cace5f429583fe69d885a5f Mon Sep 17 00:00:00 2001 From: fatihalp Date: Sun, 23 Jul 2023 22:58:58 +0300 Subject: [PATCH 36/36] Phpmyadmin update --- CODE_OF_CONDUCT.md => docs/CODE_OF_CONDUCT.md | 0 CONTRIBUTING.md => docs/CONTRIBUTING.md | 0 LICENSE.md => docs/LICENSE.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename CODE_OF_CONDUCT.md => docs/CODE_OF_CONDUCT.md (100%) rename CONTRIBUTING.md => docs/CONTRIBUTING.md (100%) rename LICENSE.md => docs/LICENSE.md (100%) diff --git a/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to docs/CODE_OF_CONDUCT.md diff --git a/CONTRIBUTING.md b/docs/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to docs/CONTRIBUTING.md diff --git a/LICENSE.md b/docs/LICENSE.md similarity index 100% rename from LICENSE.md rename to docs/LICENSE.md