Score:0

การดาวน์โหลดไฟล์ PHP เมื่อใช้ php-fpm และ nginx กับ Docker

ธง in

ฉันเห็นโพสต์อื่นที่นี่เกี่ยวกับปัญหาที่คล้ายกันแล้ว แต่ฉันคิดว่าฉันต้องการวิธีแก้ไขปัญหาอื่นเพราะโพสต์อื่นไม่ได้ช่วยอะไร

ฉันกำลังใช้งานสองคอนเทนเนอร์แยกกันด้วย Docker: For php-fpm และสำหรับ จิงซ์. เมื่อฉันพยายามแสดงข้อความโดยใช้ index.html ไฟล์มันก็โอเค แต่เมื่อฉันเปลี่ยนชื่อไฟล์เป็น index.php มันจะดาวน์โหลดไฟล์ "ดาวน์โหลด" แทน

ฉันไม่แน่ใจว่าเป็นเพราะฉันเท่านั้น default.conf ไฟล์หรือเนื่องจากวิธีการตั้งค่าคอนเทนเนอร์ของฉัน

นี่เป็นของฉัน นักเทียบท่า-compose.yml:

เครือข่าย:
    ลาราเวล:


บริการ:
    จิงซ์:
        รูปภาพ: nginx:stable-alpine
        ชื่อคอนเทนเนอร์: nginx
        พอร์ต:
            - "8088:80"
        ปริมาณ:
            - ./src:/var/www/html 
            - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
        
        ขึ้นอยู่กับ:
            - php
            - มายเอสคิวแอล
            
        เครือข่าย:
            - ลาราเวล
        
    
    มายเอสคิวแอล:
        รูป: mysql
        ชื่อคอนเทนเนอร์: mysql

        tty: จริง
        พอร์ต:
            - "4306:3306"
        ปริมาณ:
            - ./src:/var/lib/mysql
        สิ่งแวดล้อม:
            MYSQL_DATABASE: laravel
            MYSQL_ROOT_USER: รูท
            MYSQL_ROOT_PASSWORD: ความลับ
            SERVICE_TAGS: ผู้พัฒนา
            SERVICE_NAME: mysql            
        
        เครือข่าย:
            - ลาราเวล
          
    
    php:
        สร้าง:
            บริบท: .
            นักเทียบท่าไฟล์: Dockerfile
        ชื่อคอนเทนเนอร์: php.ini
        ปริมาณ:
            - ./src:/var/www/html
        พอร์ต:
            - "9000:9000"
        เครือข่าย:
            - ลาราเวล
       

นี่เป็นของฉัน default.conf:

เซิร์ฟเวอร์ {
    ฟัง 80;
    ดัชนี index.php index.html;
    server_name localhost;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    รูท /var/www/html/public;
    
    ที่ตั้ง / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    ตำแหน่ง ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        รวม fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    
}
Score:1
ธง cn

ดูเหมือนว่าคุณจะขาดส่วนหลัก: the fastcgi_pass คำสั่งเพื่อส่งต่อคำขอไปยัง FPM เพิ่มสิ่งนี้ภายใต้ ตำแหน่ง ~ \.php$ ส่วน:

fastcgi_pass php:9000;

ดูสิ่งนี้ด้วย ตัวอย่างในเอกสารประกอบของ Nginx.

Stackerito avatar
in flag
ขอขอบคุณ! มันได้ผล

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา