Điểm:0

Tải xuống tệp PHP khi sử dụng php-fpm và nginx với Docker

lá cờ in

Tôi đã xem các bài đăng khác ở đây về một vấn đề tương tự, nhưng tôi nghĩ tôi cần một giải pháp khác vì các bài đăng khác không giúp được gì.

Tôi đang chạy hai vùng chứa riêng biệt với Docker: Dành cho php-fpm va cho nginx. Khi tôi cố gắng hiển thị văn bản bằng cách sử dụng index.html tệp thì không sao, nhưng khi tôi đổi tên tệp thành index.php thay vào đó, nó tải xuống một tệp "tải xuống".

Tôi không chắc có phải chỉ vì tôi mặc định.conf tệp hoặc do cách tôi thiết lập vùng chứa của mình.

Đây là của tôi docker-compose.yml:

mạng:
    ấu trùng:


dịch vụ:
    nginx:
        hình ảnh: nginx:ổn định-alpine
        container_name: nginx
        cổng:
            - "8088:80"
        khối lượng:
            - ./src:/var/www/html 
            - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
        
        phụ thuộc:
            - php
            - mysql
            
        mạng:
            - ấu trùng
        
    
    mysql:
        hình ảnh: mysql
        container_name: mysql

        tty: đúng
        cổng:
            - "4306:3306"
        khối lượng:
            - ./src:/var/lib/mysql
        môi trường:
            MYSQL_DATABASE: ấu trùng
            MYSQL_ROOT_USER: gốc
            MYSQL_ROOT_PASSWORD: bí mật
            DỊCH VỤ_TAGS: nhà phát triển
            DỊCH VỤ_NAME: mysql            
        
        mạng:
            - ấu trùng
          
    
    php:
        xây dựng:
            bối cảnh: .
            dockerfile: dockerfile
        container_name: php
        khối lượng:
            - ./src:/var/www/html
        cổng:
            - "9000:9000"
        mạng:
            - ấu trùng
       

Đây là của tôi mặc định.conf:

người phục vụ {
    nghe 80;
    chỉ mục index.php index.html;
    máy chủ_tên máy chủ cục bộ;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    gốc /var/www/html/công khai;
    
    địa điểm / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    vị trí ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        bao gồm fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    
}
Điểm:1
lá cờ cn

Bạn dường như đang thiếu phần chính: fastcgi_pass để thực sự chuyển tiếp yêu cầu tới FPM. Thêm cái này dưới vị trí ~ \.php$ tiết diện:

fastcgi_pass php:9000;

Xem thêm ví dụ trong tài liệu Nginx.

Stackerito avatar
lá cờ in
Cảm ơn bạn! nó đã làm việc

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.