Nginx - Thực thi các tệp php trong bộ chứa docker khác nhau


2

Tôi đang sử dụng một hình ảnh docker tự động cho php-fpm và nginx ( https://hub.docker.com/r/tobi312/rpi-php/ https://hub.docker.com/r/tobi312/rpi-nginx/ ) chạy trên pi mâm xôi với libreelec trên đầu.

Bộ chứa php khởi động thành công với cổng 9000 mở bằng cách chạy lệnh sau:

docker run --name php -v /var/www/restTools:/var/www/html -d 3dd6ff8c0d58

Sau đó, tôi bắt đầu nginx-container như thế này:

docker run --name nginx -d -p 8081:80 --link php:9000 -v /var/www/restTools:/var/www/html 0d90cc6eb00f

Cả hai container đều đang chạy nhưng nginx không thực thi các tệp php, nó chỉ cung cấp chúng để tải xuống.

Sau một thời gian, tôi đã cố gắng cam kết các chi tiết kết nối với máng chứa php default.conf bằng cách thêm -v /var/www/.config/nginx:/etc/nginx/conf.d:ro ra lệnh.

Đoạn trích từ default.conf:

root /var/www/html;

location / {
    root /var/www/html;
    index index.html index.htm index.php;
}

location ~ \.php$ {
    root /var/www/html;
    fastcgi_pass php:9000;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    fastcgi_param REMOTE_ADDR $http_x_real_ip;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    include fastcgi_params;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
}

Tôi đang thiếu gì?

Câu trả lời:


1

Bạn đang cố gắng sử dụng tùy chọn "liên kết" bị phản đối !!) của docker, đây không phải là vấn đề, nhưng bạn phải tôn trọng cú pháp

--link <name or id>:alias

vì vậy, bạn phải thay thế

--link php:9000

với chính xác

--link php

bạn không cần bí danh vì bạn đã đặt tên cho bộ chứa fpm giống như bạn đã gọi nó trong default.conf. Điều quan trọng khác là gắn thư mục tệp php vào bộ chứa fpm nhưng bạn đã làm điều này đúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.