Điểm:0

nginx hoạt động tốt trong localhost nhưng hiển thị 404 trên máy chủ

lá cờ ru

Tôi có một dự án dựa trên laravel mà tôi phải lưu trữ trên Digital Ocean bằng docker. docker đang hoạt động tốt trên localhost nhưng hiển thị 404 trên máy chủ nhưng phpmyadmin cũng hoạt động tốt trên máy chủ đang chạy trên 8080 Hải cảng.

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

 phiên bản: '3'

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:5.7.22
    khởi động lại: trừ khi dừng
    tty: đúng
    cổng:
      - "4306:3306"
    khối lượng:
      - ./mysql:/var/lib/mysql
    môi trường:
      MYSQL_ROOT_PASSWORD: "gốc"
      MYSQL_DATABASE: "laravel_test"
      MYSQL_USER: "gốc"
      MYSQL_PASSWORD: "gốc"
      SERVICE_TAGS: "nhà phát triển"
      SERVICE_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"
    khởi động lại: trừ khi dừng

    mạng:
      - ấu trùng

  phpmyadmin:
    hình ảnh: phpmyadmin
    khởi động lại: luôn luôn
    cổng:
      - 8080:80
    môi trường:
      - PMA_ARBITRARY=1
    liên kết:
      - mysql
    mạng:
      - ấu trùng

  npm:
    hình ảnh: nút:18-alpine3.14
    container_name: npm
    khối lượng:
      - ./src:/var/www/html
    working_dir: /var/www/html
    điểm vào: [ 'npm', '--no-bin-links' ]
    mạng:
      - ấu trùng

  nhà soạn nhạc:
    hình ảnh: nhà soạn nhạc: mới nhất
    container_name: nhà soạn nhạc
    khối lượng:
      - ./src:/var/www/html
    working_dir: /var/www/html
    phụ thuộc:
      - php
    mạng:
      - ấu trùng

Dockerfile

TỪ php:8.1.0-fpm

CHẠY docker-php-ext-install pdo pdo_mysql

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_pass php:9000;
        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;
    }
}

tập tin php của tôi là trong ./src/công khai/

lá cờ ge
(1) Bạn có chắc là bạn đang nói chuyện trực tiếp với máy chủ chứ không phải với proxy bộ nhớ đệm không? (2) Đường dẫn nào trong URL mà bạn đang thử nghiệm? (3) Đường dẫn đó có khớp với tên tệp liên quan đến `/var/www/html/public` không? (4) `/var/www/html/public/index.php` có tồn tại không?
rootShiv avatar
lá cờ ru
có tệp tồn tại và tệp này đang hoạt động trên máy chủ cục bộ. tôi không hiểu câu hỏi 1,2 của bạn. tôi mới làm việc với docker và máy chủ nói chung
lá cờ ge
Để xác nhận (1) chỉ cần kiểm tra xem _something_ có xuất hiện trong `/var/log/nginx/access.log` hoặc `/var/log/nginx/error.log` khi bạn cố truy cập từ bên ngoài không. Nếu không thì bạn không thực sự kết nối với máy chủ _this_, một thứ khác đang gây ra lỗi 403 cho bạn. Bởi (2) Ý tôi là, URL có `https://domain.name/` bị loại bỏ ở phía trước và bất kỳ `?query=string` và `#anchor` nào bị loại bỏ ở cuối.Câu hỏi khác: bằng cách "làm việc trên máy chủ cục bộ", ý bạn là bạn đang chạy một ứng dụng khách (chẳng hạn như `curl` hoặc `wget`) với một URL như `https://localhost/src/public/yourpage.php`?
rootShiv avatar
lá cờ ru
làm cách nào để truy cập `/var/log/nginx/access.log` . tôi mới sử dụng linux và ops bên phát triển
lá cờ ge
Có nhiều tùy chọn _many_, vì vậy cách đơn giản nhất là nói "giống như cách bạn truy cập `./src/public/yourscript`"

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