Score:0

การตั้งค่าพื้นที่จัดเก็บไฟล์ส่วนตัวใน Drupal 9.3 ($settings['file_private_path'] =)

ธง de
Abe

ฉันใช้ Drupal 9.3 และสร้างโฟลเดอร์ส่วนตัวนอกไดเรกทอรีราก ฉันทำตามเอกสาร [ลิงค์] และเพิ่มบรรทัดต่อไปนี้ในไฟล์ settings.php ของฉันใน drupal:

$settings['file_private_path'] = '../ส่วนตัว';

ไฟล์ส่วนตัวอยู่นอกไดเร็กทอรีเว็บรูทของฉันดังนี้: /var/www/example.com/private ด้วยเว็บรูทใน/var/www/example.com/html.

ฉันใช้ nginx และฉันต้องการแน่ใจว่าฉันได้รักษาความปลอดภัยของไฟล์ส่วนตัวอย่างถูกต้องแล้ว ในการทำเช่นนั้น ฉันได้เพิ่มบล็อคนี้:

ที่ตั้ง ^~ {
    ภายใน;
    นามแฝง /var/www/example.com/private;
}

ถูกต้องหรือไม่ และฉันได้รักษาความปลอดภัยของไฟล์/โฟลเดอร์ส่วนตัวอย่างถูกต้องหรือไม่ เอกสารกล่าวถึงสิ่งนี้: โปรดทราบว่าเว็บเซิร์ฟเวอร์ที่ไม่ใช่ Apache อาจต้องการการกำหนดค่าเพิ่มเติมเพื่อรักษาความปลอดภัยไดเรกทอรีไฟล์ส่วนตัว

โฮสต์เสมือน Nginx ที่สมบูรณ์ของฉัน (เช่น ไฟล์กำหนดค่า) อยู่ด้านล่าง:

เซิร์ฟเวอร์ {
    รูท /var/www/example.com/html;
    ดัชนี index.html index.htm index.nginx-debian.html index.php;
    server_name example.com www.example.com;
    ที่ตั้ง / {
        try_files $uri $uri/ /index.php?$args;
    }
    ตำแหน่ง = /favicon.ico { ปิด log_not_found; access_log off; }
        ตำแหน่ง = /robots.txt { ปิด log_not_found; access_log off; อนุญาตทั้งหมด }
        ตำแหน่ง ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        หมดอายุสูงสุด
        ปิด log_not_found;
        }

    # ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
    #
    ตำแหน่ง ~ \.php$ {
        try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass ยูนิกซ์:/var/run/php/php8.1-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            รวม fastcgi_params;
    }

    # ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
    # เห็นด้วยกับของ nginx
    #
    ตำแหน่ง ~ /\.ht {
        ปฏิเสธทั้งหมด
    }
    ที่ตั้ง ^~ {
        ภายใน;
        นามแฝง /var/www/example.com/private;
    }

    ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย Certbot
    ฟัง 443 ssl; # จัดการโดย Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot
    รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

}

เซิร์ฟเวอร์ {
    ถ้า ($host = example.com) {
        ส่งคืน 301 https://$host$request_uri;
    } # จัดการโดย Certbot


    ฟัง 80 ;
    ฟัง [::]:80 ;

    server_name example.com www.example.com;
    กลับ 404; # จัดการโดย Certbot


}
Score:1
ธง de
Abe

หลังจากการทดสอบอย่างละเอียด ฉันสามารถยืนยันได้ว่าในสถานการณ์นี้ ไม่จำเป็นต้องเพิ่มบล็อกเพื่อจำกัดการเข้าถึงไฟล์ส่วนตัว เนื่องจากการเข้าถึงนั้นถูกจำกัดแล้วและส่งคืน 404 ในกรณีที่คุณยังต้องการเพิ่มบล็อกเพื่อจำกัดการเข้าถึง โฟลเดอร์ส่วนตัวนี้ตามที่อธิบายไว้ข้างต้น ฉันทดสอบด้านล่างและใช้งานได้ คุณสามารถใช้ ราก หรือ นามแฝง และทั้งสองทำงาน:

## เข้าถึงไฟล์ส่วนตัวอย่างปลอดภัย
    สถานที่ ^~ /ส่วนตัว {
# นามแฝง /var/www/example.com; ## ตัวเลือกนี้ยังใช้งานได้
    รูท /var/www/example.com;
    ภายใน;
    }

ควรลบสิ่งนี้ออกจากบล็อกด้านบนเนื่องจากไม่ถูกต้องและไม่มีผลกระทบใดๆ:

ที่ตั้ง ^~ {
        ภายใน;
        นามแฝง /var/www/example.com/private;
    }

โพสต์คำตอบ

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