ดังนั้นฉันจึงโพสต์คำตอบ เพราะหลังจากติดตั้งใหม่ทั้งหมดสองครั้ง ฉันได้ตั้งค่า a แต่แตกต่างออกไป (ตามมุมมองของฉัน)
อย่างที่ฉันพูดไปข้างต้น ฉันเผชิญกับภาวะที่กลืนไม่เข้าคายไม่ออกเนื่องจากไม่มีการกำหนดค่าใดที่เหมือนกับคำตอบอื่น ๆ ที่ฉันสามารถหาได้
ตัวอย่างเช่น:
โฟลเดอร์ /etc/nginx ของฉันถูกสร้างขึ้นโดยทั่วไปดังนี้:
|- /etc/nginx/
| |-conf.d/
| | |-default.conf
| |
| |- fastcgi_params
| |- mime.types
| |- โมดูล/ -> /usr/lib/nginx/modules
| |- nginx.conf
| |-scgi_params
| |- uwsgi_params
ไม่มี /sites-available หรือ /sites-enabled ดังที่เห็นทุกที่ fastcgi-php.conf ที่กล่าวถึงนั้นเป็น fastcgi_params ในโฟลเดอร์รูท ดังนั้นค่าเริ่มต้นของฉันจึงไม่อยู่ในโฟลเดอร์ที่มีไซต์
นี่คือไฟล์กำหนดค่าสองไฟล์ที่ฉันมี (โดเมนซ่อนอยู่ภายใต้ my_domain.com):
อันดับแรก: nginx.conf (แทบไม่ถูกแตะต้อง)
ผู้ใช้ nginx;
worker_processes อัตโนมัติ
error_log /var/log/nginx/error.log ประกาศ;
pid /var/run/nginx.pid;
เหตุการณ์ {
worker_connections 1024;
}
http {
รวม /etc/nginx/mime.types;
รวม /etc/nginx/sites-available/*.conf;
แอปพลิเคชัน default_type/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$สถานะ $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log หลัก;
ส่งไฟล์บน;
#tcp_nopush บน;
keepalive_timeout 65;
#gzip บน;
รวม /etc/nginx/conf.d/*.conf;
}
ประการที่สอง /etc/nginx/conf.d/default.conf
เซิร์ฟเวอร์ {
ฟัง 80;
ชื่อเซิร์ฟเวอร์ my_domain.com www.my_domain.com;
ที่ตั้ง / {
รูท /var/www/www.my_domain.com;
ดัชนี index.php index.html index.htm;
}
#error_page 404 /404.html;
# เปลี่ยนเส้นทางหน้าข้อผิดพลาดของเซิร์ฟเวอร์ไปยังหน้าสแตติก /50x.html
#
error_page 500 502 503 504 /50x.html;
ตำแหน่ง = /50x.html {
รูท /var/www/www.my_domain.com;
}
# พร็อกซี่สคริปต์ PHP เพื่อ Apache ฟัง 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass http://127.0.0.1;
#}
# ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI ที่รับฟัง 127.0.0.1:9000
#
ตำแหน่ง ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
#if (!-f $document_root$fastcgi_script_name) {
# กลับ 404;
#}
รูท /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;
รวม fastcgi_params;
fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
}
}
ฉันยังเพิ่มบรรทัด
ข้อความ/php php;
ไปที่ mime.types
ฉันยังจำที่จะลบแคชของ my_domain ในเบราว์เซอร์ที่ฉันใช้ (Firefox, Opera และ Chrome)
แต่ถึงกระนั้นไฟล์จะถูกดาวน์โหลด
ฉันทำอะไรผิด ?
แก้ไข : เนื่องจากฉันต้องการสร้าง blog.my_domain.com, shop.my_domain.com และ forum._mydomain.com ฉันจึงสร้างโฟลเดอร์ /site-available และ /site-enabled ตั้งใจจะสร้าง blog/forum/shop .my_domain.com.conf ในแต่ละโฟลเดอร์ที่มีชื่อเดียวกันซึ่งอยู่ใน /sites-available แต่ฉันกำลังรอการกำหนดค่าที่ใช้งานได้เพื่อให้มองเห็นได้ใน nginx.conf (โดยมีบรรทัดรวมใช่ไหม)
ดังนั้นฉันจึงไม่ค่อยเข้าใจว่าโฟลเดอร์ทั้งสองนี้ทำงานอย่างไร โดเมนย่อยตั้งค่าระเบียน CNAME เป็น my_domain.com
ฉันยังอ่านเกี่ยวกับการทำ symlink สำหรับเว็บไซต์ย่อยเหล่านี้ แต่ฉันไม่รู้จริง ๆ ว่ามาจากไหน ?
ขอบคุณอีกครั้ง
บันทึกข้อผิดพลาดบอกฉันว่าการเชื่อมต่อกับ /var/run/php/ ถูกปฏิเสธ ผู้ใช้เริ่มต้นคือ www-data www-data แต่ผู้ใช้ nginx ดั้งเดิมของฉันคือ nginx (ถ้าฉันเปลี่ยน มันจะไม่เริ่มต้นด้วยซ้ำ)
ฉันควรทำ
chown nginx:nginx /var/run/php/
?