В контейнере Docker под управлением PHP71-FPM и Nginx у меня есть следующие настройки для Nginx:
server {
listen 80 default_server;
listen 81 default_server http2 proxy_protocol; ## Needed when behind HAProxy with SSL termination + HTTP/2 support
listen 443 default_server ssl http2;
ssl_certificate /etc/nginx/ssl/dummy.crt;
ssl_certificate_key /etc/nginx/ssl/dummy.key;
root /data/www/demos/jqgrid;
index index.php index.html index.htm;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php-upstream;
}
include /etc/nginx/conf.d/stub-status.conf;
include /etc/nginx/conf.d/default-*.conf;
}
Доступ http://localhost
показывает index
страница, но без стилей или загруженного файла JS. Я не могу найти, что мешает доступу к статическим файлам.
Вот результат ls -la
на хосте (помните, что это контейнер Docker, на котором запущены PHP-FPM и Nginx):
$ ls -la ~/dev/
total 96
drwxrwxr-x 11 80 80 4096 Dec 15 14:36 .
drwx------. 40 rperez rperez 4096 Dec 15 15:01 ..
drwxr-xr-x 5 80 80 4096 Mar 13 2015 css
drwxr-xr-x 7 80 80 4096 Aug 5 2015 demos
drwxr-xr-x 6 80 80 4096 Mar 26 2015 js
drwxr-xr-x 2 80 80 4096 Mar 27 2015 northwindSQL
drwxr-xr-x 4 80 80 4096 Mar 16 2015 php
Разрешения исходят от Docker (для меня это странно, но я открыл другой разместить здесь для этого)
Эти файлы из моего репозитория и это взяты из репозитория, где FROM
входит в Dockerfile.
Могу я получить помощь с этим?
Обновить
Как предположил @Michael, я проверил журналы Nginx в контейнере и вижу следующее:
php71-fpm-nginx | 2016-12-15 20:02:40,483 DEBG 'nginx' stderr output:
php71-fpm-nginx | 2016/12/15 20:02:40 [error] 33#33: *46 open() "/data/www/demos/jqgrid/css/jquery-ui.css" failed (2: No such file or directory), client: 172.20.0.1, server: , request: "GET /css/jquery-ui.css HTTP/1.1", host: "localhost:8080", referrer: "http://localhost:8080/index.php"
php71-fpm-nginx |
php71-fpm-nginx | 2016-12-15 20:02:40,830 DEBG 'nginx' stderr output:
php71-fpm-nginx | 2016/12/15 20:02:40 [error] 33#33: *46 open() "/data/www/demos/jqgrid/css/control_icon.png" failed (2: No such file or directory), client: 172.20.0.1, server: , request: "GET /css/control_icon.png HTTP/1.1", host: "localhost:8080", referrer: "http://localhost:8080/index.php"
php71-fpm-nginx |
Но как это может быть возможно, если код говорит обратное?
<script src="../../js/jquery.min.js" type="text/javascript"></script>
<script src="../../js/jquery-ui.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../../css/jquery-ui.css" media="screen" />
Ваше приложение разработано таким образом, что корень вашего документа должен быть:
корень / данные / www / demos / jqgrid;
И тогда вы получите доступ к приложению с URL-адресом http://www.example.com/demos/jqgrid
. Почему это было разработано таким образом, вы должны спросить людей, которые это сделали.