在帮助下docker-compose up,我运行以下配置:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- /home/ilya/projects/main:/code
- /home/ilya/projects/main/site.conf:/etc/nginx/conf.d/site.conf
links:
- php
- mysql
php:
# docker-php-ext-install pdo pdo_mysql --- need exec this
image: php:7-fpm
volumes:
- /home/ilya/projects/main:/code
links:
- mysql
mysql:
image: mysql:5.7
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=pass
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql:db
ports:
- "8082:80"
environment:
- PMA_USER=root
- PMA_PASSWORD=pass
- PHP_UPLOAD_MAX_FILESIZE=100MB
然后,将以下 Nginx 配置放在项目目录中:
server {
index index.php;
server_name dune.com pro.dune.com;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
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;
}
}
一切正常,但只打开起始页。当试图打开任何其他:
404 未找到
如何修复 nginx 配置以打开像 dune.com/hello 这样的 URL?
多亏了 Suvitruf 和 Maksim Fedorov,问题才真正出现在
location /.刚刚添加:
一切正常。