Score:0

มีคนแนะนำฉันเกี่ยวกับการใช้ symlink ใน nginx สำหรับโมดูล php ได้ไหม

ธง br

ดังนั้นฉันจึงใช้เซิร์ฟเวอร์ Ubuntu 20.04 โดยมี Nginx อยู่ หลังจากสัปดาห์ที่ยากลำบาก ฉันก็สามารถทำให้มันทำงานได้ตามปกติ รวมถึง php ถึง php-fpm

ปัญหาของฉันคือฉันไม่ต้องการให้มีโฟลเดอร์หลายร้อยโฟลเดอร์ในรูทของเว็บไซต์ (ตั้งค่าที่ /var/www/www.my-domain.com/) ดังนั้นฉันจึงต้องการใส่ส่วนขยายที่เกี่ยวข้องกับ php ทั้งหมดที่ฉันติดตั้ง (เช่น เป็น phpmyadmin และ IceCoder จนถึงตอนนี้) ในโฟลเดอร์อื่น (สมมติว่า /var/php/) และเชื่อมโยงคำขอทั้งหมดของดัชนี php จากโฟลเดอร์รูท (เช่นถ้าฉันพิมพ์ https://my-domain.com/icecoder หรือ https://my-domain.com/phpmyadmin) เพื่อเปลี่ยนเส้นทางฉันไปยังโฟลเดอร์ที่มีไฟล์ index.php อยู่

ปัญหาที่เกิดขึ้นคือ:

  • ก่อนอื่นฉันไม่รู้วิธีทำให้ symlink ทำงาน (ฉันรู้คำสั่ง "ln -s target destination") แต่มันไม่ทำงาน
  • ประการที่สองฉันไม่รู้วิธีกำหนดค่าไฟล์ default.conf เพื่อให้เกิดขึ้น

ฉันพยายามมุ่ย index.php อย่างง่ายด้วย <?php phpinfo();?> ภายในโฟลเดอร์ /php ในโฟลเดอร์รูทของฉัน แต่เมื่อฉันเข้าถึงผ่านเบราว์เซอร์ ฉันได้รับข้อผิดพลาด "ไม่มีการตั้งค่าอินพุตไฟล์" หากฉันพยายามเข้าถึงโฟลเดอร์ดังกล่าว (เช่น https://my-domain.com/icecoder) ฉันลงเอยที่เว็บไซต์ของฉัน และสำหรับอันนี้ ที่อยู่โดยตรงของไฟล์ index.php นี้ใช้ได้... ยกเว้นฉันจะได้รับสถานะ "ทำงาน" เป็นชั่วโมงเท่านั้น ข้อความ แต่ไม่มี css เครื่องมือสำหรับนักพัฒนาไม่โหลดด้วยซ้ำ

นี่คือไฟล์กำหนดค่าของฉัน (โดเมนจริงของฉันไม่ระบุตัวตนภายใต้โดเมนของฉัน):

  1. nginx.conf

     ผู้ใช้ www-data;
     worker_processes อัตโนมัติ
    
     error_log /var/log/nginx/error.log ประกาศ;
     pid /var/run/nginx.pid;
    
    
     เหตุการณ์ {
         worker_connections 1024;
     }
    
    
     http {
         รวม /etc/nginx/mime.types;
         #include /etc/nginx/sites-available/*.conf;
         #default_type แอปพลิเคชัน/octet-stream;
    
         #root /var/www;
         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;
     }
    
  2. default.conf

     เซิร์ฟเวอร์ {
         server_name my_domain.com;
    
         #access_log /var/log/nginx/host.access.log หลัก;
         รูท /var/www/www.my_domain.com;
         ดัชนี index.html index.php;
    
         ที่ตั้ง / {
             try_files $uri /index.html index.php =404;
         }
    
         # เปลี่ยนเส้นทางหน้าข้อผิดพลาดของเซิร์ฟเวอร์ไปยังหน้าสแตติก /50x.html
         #
         error_page 500 502 503 504 /50x.html;
         ตำแหน่ง = /50x.html {
             รูท /var/www/www.my_domain.com;
         }
    
         error_page 404 /40x.html;
         ตำแหน่ง = /40x.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_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
             fastcgi_split_path_info ^(.+\.php)(/.+)$;
             fastcgi_index index.php;
             fastcgi_param PHP_VALUE open_baseir="/var/www/www.my_domain.com/:/var/www/www.my_domain.com/php/";
             รวม fastcgi_params;
    
         }
         # พารามิเตอร์ SCRIPT_FILENAME ใช้สำหรับการกำหนด PHP FPM
         #ชื่อคริป. หากไม่ได้ตั้งค่าไว้ในไฟล์ fastcgi_params
         # เช่น /etc/nginx/fastcgi_params หรือในบริบทพาเรนต์
         #โปรดแสดงความคิดเห็นในบรรทัดต่อไปนี้:
         # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
         ที่ตั้ง ~ /\{ # le "~" indique une regex que "/" démarre, ici tout ce qui a un "." autre que php หรือ html
             ปฏิเสธทั้งหมด
             access_log off;
             ปิด log_not_found;
         }
    
         ฟัง 443 ssl; # จัดการโดย Certbot
         ssl_certificate /etc/letsencrypt/live/my_domain.com/fullchain.pem; # จัดการโดย Certbot
         ssl_certificate_key /etc/letsencrypt/live/my_domain.com/privkey.pem; # จัดการโดย Certbot
         รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
         ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
    
    
     }
    
     เซิร์ฟเวอร์ {
             ฟัง 80;
             server_name www.my_domain.com;
    
             ส่งคืน 301 https://$server_name$request_uri; # เปลี่ยนเส้นทางคำขอ HTTP ไปยังเว็บไซต์ https
     }
    
     เซิร์ฟเวอร์ {
            ฟัง 80;
            ฟัง 443 ssl;
            server_name my_domain.com;
            ส่งคืน 301 http://www.my_domain.com$request_uri;
     }
    

นี่คือ ls -l ของโฟลเดอร์รูท

-rw-r--r-- 1 www-data www-data 507 21 ก.ย. 20:03 40x.html
-rw-r--r-- 1 www-data www-data 507 21 ก.ย. 20:04 50x.html
drwxr-xr-x 6 www-data www-data 4096 26 ส.ค. 23:45 สินทรัพย์
-rw-r--r-- 1 www-data www-data 83243 27 ส.ค. 02:19 favicon.ico
-rw-r--r-- 1 www-data www-data 25942 27 ส.ค. 02:19 favicon.png
drwxr-xr-x 13 www-data www-data 4096 21 ก.ย. 17:34 น. ICE
-rw-r--r-- 1 www-data www-data 63175 21 ก.ย. 15:58 index.html
-rw-r--r-- 1 www-data www-data 19 ก.ย. 63 22:24 น. index.php
drwxr-xr-x 2 www-data www-data 4096 27 ส.ค. 00:31 น. การบำรุงรักษา
drwxr-xr-x 15 www-data www-data 4096 21 ก.ย. 16:08 น. หน้า
lrwxrwxrwx 1 รูทรูท 12 กันยายน 21 21:36 php -> /var/www/php
drwxr-xr-x 6 www-data www-data 4096 8 ก.ย. 16:13 ส่วน

และของโฟลเดอร์ /var/php

drwxr-xr-x 13 www-data www-data 4096 21 ก.ย. 17:34 น. icecoder
-rw-r--r-- 1 www-data www-data 19 ก.ย. 21 21:39 น. index.php
lrwxrwxrwx 1 รูทรูท 12 กันยายน 21 21:48 php -> /var/www/php
drwxr-xr-x 2 www-data www-data 4096 21 ก.ย. 21:37 น. phpmyadmin

โฟลเดอร์ทั้งหมดของฉันอยู่ใน 755 และไฟล์ใน 644 mod

ขอบคุณสำหรับความช่วยเหลือที่คุณสามารถให้ฉัน

โพสต์คำตอบ

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