diff --git a/.env b/.env index 83ac3c687..3f0ce1603 100644 --- a/.env +++ b/.env @@ -7,8 +7,6 @@ APP_ENV=development # PHP/PHP-FPM 配置 PHP_VERSION=7.4 PHP_FPM_VERSION=7.4-fpm -PHP_FPM_PORT=9100 -XDEBUG_POST=9103 # 数据库配置 MYSQL_ROOT_HOST=% diff --git a/.env.development b/.env.development index 8929627cc..2be4c5f1f 100644 --- a/.env.development +++ b/.env.development @@ -7,8 +7,6 @@ APP_ENV=development # PHP/PHP-FPM 配置 PHP_VERSION=7.4 PHP_FPM_VERSION=7.4-fpm -PHP_FPM_PORT=9105 -XDEBUG_POST=9108 # 数据库配置 MYSQL_ROOT_HOST=% diff --git a/.env.example b/.env.example index 3c24b229d..bc9c1a52a 100644 --- a/.env.example +++ b/.env.example @@ -7,8 +7,6 @@ APP_ENV=development # PHP/PHP-FPM 配置 PHP_VERSION=7.4 PHP_FPM_VERSION=7.4-fpm -PHP_FPM_PORT=9100 -XDEBUG_POST=9103 # 数据库配置 MYSQL_ROOT_HOST=% diff --git a/.env.local b/.env.local index 0a066562c..9613e477c 100644 --- a/.env.local +++ b/.env.local @@ -7,8 +7,6 @@ APP_ENV=local # PHP/PHP-FPM 配置 PHP_VERSION=7.4 PHP_FPM_VERSION=7.4-fpm -PHP_FPM_PORT=9100 -XDEBUG_POST=9103 # 数据库配置 MYSQL_ROOT_HOST=% diff --git a/docker-compose.local.yml b/docker-compose.local.yml index 8f59f557a..8401e4e0a 100644 --- a/docker-compose.local.yml +++ b/docker-compose.local.yml @@ -27,8 +27,6 @@ services: # 不然,ThinkPHP 6.x 系列,会只加载 .env 文件,而不会加载 .env.local 文件,导致 .env.local 文件中的配置不会生效 APP_ENV: ${APP_ENV:-local} APP_DEBUG: ${APP_DEBUG:-true} - ports: - - "${PHP_FPM_PORT:-9000}:9000" # PHP-FPM volumes: - ./:/var/www/all_source - ./src:/var/www/html diff --git a/docker-compose.yml b/docker-compose.yml index cde9ea229..f90b4b378 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,8 +25,6 @@ services: # 不然,ThinkPHP 6.x 系列,会只加载 .env 文件,而不会加载 .env.local 文件,导致 .env.local 文件中的配置不会生效 APP_ENV: ${APP_ENV:-development} APP_DEBUG: ${APP_DEBUG:-true} - ports: - - "${PHP_FPM_PORT:-9000}:9000" # PHP-FPM volumes: - ./:/var/www/all_source - ./src:/var/www/html diff --git a/docker/nginx/conf.c/enable-websocket.conf b/docker/nginx/conf.c/enable-websocket.conf new file mode 100644 index 000000000..a8bce07a7 --- /dev/null +++ b/docker/nginx/conf.c/enable-websocket.conf @@ -0,0 +1,7 @@ + location /ws { + proxy_pass http://php-fpm:8080; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + } \ No newline at end of file diff --git a/docker/nginx/sites-enabled/app.conf b/docker/nginx/sites-enabled/app.conf index bdf3882ec..105c7c9ed 100644 --- a/docker/nginx/sites-enabled/app.conf +++ b/docker/nginx/sites-enabled/app.conf @@ -24,6 +24,9 @@ include conf.c/enable-php-74.conf; #PHP-INFO-END + # 启用 WebSocket 支持 + include conf.c/enable-websocket.conf; + # --- REWRITE-START --- URL重写规则引用,修改后将导致面板设置的伪静态规则失效 # include /www/server/panel/vhost/rewrite/xcx30.5g-quickapp.com.conf; # 等于下面的内容 location / { diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 0ca930912..eeeb5ea71 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -54,15 +54,15 @@ RUN composer --version # 修改 PHP 配置 RUN echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory-limit.ini \ - && echo "upload_max_filesize=50M" >> /usr/local/etc/php/conf.d/uploads.ini \ - && echo "post_max_size=50M" >> /usr/local/etc/php/conf.d/uploads.ini + && echo "upload_max_filesize=150M" >> /usr/local/etc/php/conf.d/uploads.ini \ + && echo "post_max_size=150M" >> /usr/local/etc/php/conf.d/uploads.ini # # 使用Composer安装项目依赖(可选,根据需要启用, 更多的时候,会出错,要在容器中执行操作) # RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ # RUN composer install --no-dev --optimize-autoloader --working-dir=/var/www/html -# 暴露端口 -EXPOSE 9000 +# 暴露端口,9000 为 PHP-FPM 端口,8080 为 WebSocket 端口 +EXPOSE 9000 8080 ############ 查看 cron 进程 ## 查看 cron 进程 diff --git a/docker/php/supervisord.conf b/docker/php/supervisord.conf index 8091ae58e..5a874a711 100644 --- a/docker/php/supervisord.conf +++ b/docker/php/supervisord.conf @@ -6,12 +6,14 @@ logfile_backups=10 loglevel=info pidfile=/var/run/supervisord.pid -[program:chmod] -command=/bin/bash -c "while true; do chmod -R 775 /var/www/html/runtime/ /var/www/html/upload/ 2>/dev/null || true; sleep 30; done" +[program:php-permission-change] +command=/bin/bash -c "sleep 15 && /usr/local/bin/entrypoint.sh" autostart=true autorestart=true -stopasgroup=true +stopasgroup=true killasgroup=true +stdout_logfile=/var/log/supervisor/php-permission-change.log +stderr_logfile=/var/log/supervisor/php-permission-change-error.log [program:php-fpm] command=php-fpm @@ -42,4 +44,19 @@ stderr_logfile=/var/log/supervisor/think-cron-error.log stderr_logfile_maxbytes=10MB stderr_logfile_backups=10 startsecs=3 -stopwaitsecs=10 \ No newline at end of file +stopwaitsecs=10 + +[program:websocket-server] +command=php src/ws_server.php +workdir=/var/www/html +autostart=true +autorestart=true +startretries=3 +stdout_logfile=/var/log/supervisor/websocket-server.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=10 +stderr_logfile=/var/log/supervisor/websocket-server-error.log +stderr_logfile_maxbytes=10MB +stderr_logfile_backups=10 +startsecs=3 +stopwaitsecs=10