Помогите разобраться с путями, PHP показывает неправильный путь.
Форум — Admin
Привет. Только начал изучать Docker с установления WEB-сервера. Структура такая:
- dockerDir compose.yaml
- etc
- nginx/conf.d/vhost.conf
- php/conf.d/uploads.ini
- images/php74/Dockerfile
- mysql-data
- phpmyadmin
- www/site.my/public_html/index.php
- www/site.my/script
- etc/nginx/conf.d/vhost.conf:
server{
#error_log /var/www/public_html error.log debug;
listen 80;
server_name site.my;
index index.php;
root /var/www/public_html/;
#alias /www/site.my/public_html;
#access_log access.log;
#error_log error.log;
location ~ \.php$ {
#alias ./www/site.my/public_html/;
#error_log "error.log" debug;
try_files $uri = 404;
fastcgi_pass php_74:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME www/site.my/public_html$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_param REMOTE_ADDR 127.0.0.1;
include fastcgi_params;
#fastcgi_param PHP_VALUE open_basedir="/var/www/public_html:/new/path";
}
}
- compose.yml
networks:
nginx_p74m8:
#name: nginx_p74m8
services:
nginx:
container_name: nginx
image: nginx
ports:
- 80:80
volumes:
- ./etc/nginx/conf.d/vhost.conf:/etc/nginx/conf.d/default.conf
- ./www/site.my/public_html:/var/www/public_html
#- ./www:/var/www/public_html
#- ./www/site.my/public_html:/www/site.my/public_html
networks:
- nginx_p74m8
command: [ nginx-debug, '-g', 'daemon off;' ]
depends_on:
- php_74
- mysql_8
php_74:
container_name: php74
build: ./images/php74
#image: php:7.4-fpm
volumes:
#- ./site.my/public_html/:/var/www
- ./www/site.my/public_html:/var/www/public_html
- ./etc/php/conf.d/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
networks:
- nginx_p74m8
Здесь еще конфиги для mysql и phpmyadmin
Вопрос такой. Когда я вызываю в php текущий адрес файла index.php : echo 'FILE: '.__FILE__.'<br>';
он мне возвращает: FILE: /var/www/public_html/index.php а должен FILE: /www/site.my/public_html/index.php
Когда я пытаюсб проверить наличие каталога script, который на том же уровне что и public_html он возвращает что каталога нет:
if(is_dir(dirname(__DIR__).'/scripts'))echo 'No dir';
Хотя каталог есть: www/site.my/script
В конфигах же я сделал переадресацию. Почему так? Подскажите пожалуйста.
По-моему не туда разместил тему. Извините.
Перемещено hobbit из general