Điểm:0

Trình duyệt tải xuống tệp thay vì mở tệp php

lá cờ br

Vì vậy, tôi đang đăng một câu trả lời, bởi vì sau hai lần cài đặt lại sạch, tôi đã đặt mọi thứ nhưng khác (theo quan điểm của tôi). Như tôi đã nói ở trên, tôi phải đối mặt với một tình huống khó xử, vì không có cấu hình nào tôi có giống với bất kỳ câu trả lời nào khác mà tôi có thể tìm thấy. Ví dụ :

Thư mục /etc/nginx của tôi về cơ bản được cấu thành như sau:

|- /etc/nginx/
| |- conf.d/
| | |- mặc định.conf
| |
| |- fastcgi_params
| |- mime.types
| |- mô-đun/ -> /usr/lib/nginx/mô-đun
| |- nginx.conf
| |- scgi_params
| |- uwsgi_params

Không có /sites-available hoặc /sites-enabled như đã thấy ở khắp mọi nơi, fastcgi-php.conf được đề cập thực sự là một fastcgi_params trong thư mục gốc, do đó mặc định của tôi không có trong thư mục site-sẵn sàng.

Đây là hai tệp cấu hình tôi hiện có (tên miền ẩn dưới my_domain.com): Đầu tiên: nginx.conf (gần như không bị ảnh hưởng)

    người dùng nginx;

worker_processes tự động;

thông báo error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;


sự kiện {
    công_nhân kết_nối 1024 ;

}

http {
    bao gồm /etc/nginx/mime.types;
    bao gồm /etc/nginx/sites-available/*.conf;
    ứng dụng default_type/octet-stream;


    log_format chính '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';



    access_log /var/log/nginx/access.log chính;
    gửi tệp trên;
    #tcp_nopush bật;
    keepalive_timeout 65;
    #gzip trên;
    bao gồm /etc/nginx/conf.d/*.conf;

}

Thứ hai là /etc/nginx/conf.d/default.conf

    người phục vụ {
    nghe 80;
    server_name my_domain.com www.my_domain.com;

    địa điểm / {
        gốc /var/www/www.my_domain.com;
        chỉ mục index.php index.html index.htm;
    }

    #lỗi_trang 404 /404.html;

    # chuyển hướng trang lỗi máy chủ sang trang tĩnh /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    vị trí = /50x.html {
        gốc /var/www/www.my_domain.com;
    }

    # ủy quyền tập lệnh PHP để nghe Apache trên 127.0.0.1:80
    #
    #vị trí ~ \.php$ {
    # proxy_pass http://127.0.0.1;
    #}

    # chuyển tập lệnh PHP tới máy chủ FastCGI đang nghe trên 127.0.0.1:9000
    #
    vị trí ~ \.php$ {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        #if (!-f $document_root$fastcgi_script_name) {
        # trả về 404;
        #}
        gốc /var/www/www.my_domain.com;
    # fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
        bao gồm fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
    

}

Tôi cũng đã thêm một dòng

văn bản/php php;

đến mime.types Tôi cũng nhớ xóa bộ nhớ cache của my_domain trong các trình duyệt tôi sử dụng (Firefox, Opera và Chrome).

Tuy nhiên, tập tin vẫn được tải xuống.

Tôi đã làm gì sai ?

Chỉnh sửa: vì tôi muốn tạo một blog.my_domain.com, shop.my_domain.com và forum._mydomain.com, tôi đã tạo thư mục /site-available và /site-enabled, dự định tạo một blog/forum/shop .my_domain.com.conf trong mỗi thư mục cùng tên nằm trong /sites-available, nhưng tôi đang chờ một cấu hình hoạt động để hiển thị chúng trong nginx.conf (với một dòng bao gồm, phải không?).

Vì vậy, tôi thực sự không hiểu cách hoạt động của hai thư mục này. Các tên miền phụ có bản ghi CNAME được đặt thành my_domain.com. Tôi cũng đã đọc về cách tạo liên kết tượng trưng cho các trang web phụ này, nhưng tôi thực sự không biết từ đâu đến đâu? Cảm ơn một lần nữa

Nhật ký lỗi cho tôi biết kết nối tới /var/run/php/ bị từ chối. người dùng mặc định là www-data www-data, nhưng người dùng nginx mặc định của tôi là nginx (nếu tôi thay đổi nó, nó thậm chí không bắt đầu.) Tôi có nên làm một

chown nginx:nginx /var/run/php/

?

Điểm:0
lá cờ gu

Bạn thiếu trình thông dịch PHP, NGINX có một bài viết trên wiki của nó về FPM.

Kl3m Michard avatar
lá cờ br
Cảm ơn, nhưng tôi đã làm theo hướng dẫn của họ trên trang đó. Vẫn không thay đổi. Tôi không phải là một lập trình viên thử nghiệm, hầu hết những gì họ nói đều vô nghĩa đối với tôi. Ai đó sẽ quan tâm để giải thích nó nhiều hơn một chút? Cảm ơn rất nhiều.
Điểm:0
lá cờ th

Để định cấu hình php, bạn phải cài đặt phiên bản php-fpm trên hệ thống của mình. Và thêm đoạn mã này vào conf nginx của bạn trong người phục vụ chặn.

bạn phải thay đổi php5-fpm với phiên bản bạn đã cài đặt trên hệ thống của mình.

  vị trí ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    bao gồm fastcgi_params;
  }
Kl3m Michard avatar
lá cờ br
Cảm ơn, tôi sẽ thử điều đó trong một phút. Xin lỗi vì sự chậm trễ, tôi đã phải cài đặt lại hai lần trước khi đến đó lần nữa. Tôi có thể làm phiền bạn để giải thích thêm không? Tôi sẽ đăng chúng dưới đây như một câu trả lời để thực tế hơn.

Đă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.