Приложение изначально было написано без включения в Docker, и если я просто запускаю его как локальный сервер, оно работает просто отлично. Однако, когда он был упакован в контейнер, я получаю страницу ошибки MissingControllerException, переходящую на домашнюю страницу сайта. Для справки, CfDocumentController является контроллером «домашней страницы» для этого приложения.
Полагаю, это проблема с включением файлов, но я не совсем уверен.
Вот мой docker -compose.yaml файл:
version: '3.7'
networks:
app-tier:
driver: bridge
services:
db:
image: mariadb
container_name: application_db
restart: always
networks:
- app-tier
environment:
MYSQL_ROOT_PASSWORD: Application
MYSQL_USER: Application
MYSQL_PASS: Application
MYSQL_TABLE: Application
mongodb:
image: mongo:3.4.23-xenial
container_name: application_mongodb
restart: always
networks:
- app-tier
phpfpm:
build: phpfpm
# image: tbelknap/cakephp-fpm:latest
container_name: application_phpfpm
restart: always
volumes:
- "../:/etc/nginx/html:rw"
- "./phpfpm/overrides.ini:/usr/local/etc/php/conf.d/overrides.ini:ro"
ports:
- "9000:9000"
networks:
- app-tier
depends_on:
- db
web:
image: nginx
container_name: application_web
restart: always
networks:
- app-tier
depends_on:
- phpfpm
volumes:
- "../:/etc/nginx/html"
- "./nginx/nginx.conf:/etc/nginx/nginx.conf:ro"
- "./nginx/fastcgi.conf:/etc/nginx/fastcgi.conf:ro"
ports:
- "8080:80"
crontab:
image: willfarrell/crontab
container_name: application_crontab
restart: always
networks:
- app-tier
depends_on:
- phpfpm
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./crontab/config.json:/opt/crontab/config.json:rw"
environment:
LOG_FILE: /dev/stdout
Вот мой файл ngnix.conf:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 0.0.0.0:80;
server_name skillauthr.com;
root /etc/nginx/html/webroot;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$uri&$args;
}
location ~ \.php$ {
# fastcgi_pass [PHP_FPM_LINK_NAME]:9000;
# fastcgi_pass application_phpfpm:9000;
# fastcgi_index index.php;
# include /etc/nginx/fastcgi.conf;
fastcgi_pass application_phpfpm:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include /etc/nginx/fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
Вот fastcgi.conf:
#fastcgi.conf
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
# fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT /var/nginx/www;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
Заранее благодарен за любую помощь, которую вы можете мне оказать!