คำถามติดแท็ก fastcgi

FastCGI เป็นเว็บเซิร์ฟเวอร์แบบเปิดที่สามารถใช้เพื่อเรียกใช้งานแอปพลิเคชันได้อย่างปลอดภัยและแยกได้

1
ความแตกต่างและแตกต่าง / แตกต่างระหว่าง: Fast-CGI, CGI, Mod-PHP, SuPHP, PHP-FPM
มี "wrappers" php ที่แตกต่างกันไม่กี่ (?) ความแตกต่างระหว่างพวกเขาคืออะไร? พยายามที่จะ google บางอย่าง แต่ดูเหมือนจะไม่พบข้อมูล (mod-php ไม่สามารถใช้ google ได้) ทำไมฉันถึงเลือกอันใดอันหนึ่ง?

3
ตัวเลือก PHP 'cgi.fix_pathinfo' อันตรายจริง ๆ กับ Nginx + PHP-FPM หรือไม่
มีการจำนวนมากของการพูดคุยเกี่ยวกับปัญหาด้านความปลอดภัยเมื่อเทียบกับตัวเลือก PHP ใช้กับ Nginx (ปกติ PHP-FPM, CGI เร็ว) cgi.fix_pathinfo ดังนั้นไฟล์กำหนดค่า nginx เริ่มต้นที่ใช้ในการพูด: # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini อย่างไรก็ตามตอนนี้วิกิ Nginx "เป็นทางการ" ระบุว่า PATH_INFO สามารถจัดการได้อย่างถูกต้องโดยไม่ปิดใช้งานตัวเลือก PHP ด้านบน แล้วอะไรล่ะ คำถาม คุณช่วยอธิบายได้อย่างชัดเจนว่าcgi.fix_pathinfoทำอะไร? ( doc อย่างเป็นทางการเพิ่งพูดว่า : "สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ PATH_INFO ดูรายละเอียด CGI") PHP จะทำอะไรกับตัวแปรPATH_INFOและสิ่งเหล่านี้SCRIPT_FILENAME? ทำไมและอย่างไรจึงจะเป็นอันตรายกับ Nginx ( ตัวอย่างโดยละเอียด ) ปัญหายังคงมีอยู่ในโปรแกรมเหล่านี้รุ่นล่าสุดหรือไม่? Apache …


8
Nginx + php-fpm ข้อผิดพลาด“ 504 เกตเวย์หมดเวลา” ข้อผิดพลาดที่มีภาระเกือบเป็นศูนย์ (บนเซิร์ฟเวอร์ทดสอบ)
หลังจากดีบั๊กเป็นเวลา 6 ชั่วโมง - ฉันยอมแพ้: | เรามี nginx + php-fpm + mysql ในระบบ LAN ด้วยเกือบ 100 wordpress (สร้างและใช้โดยนักออกแบบ / นักพัฒนาที่แตกต่างกันทั้งหมดที่ทำงานในการตั้งค่า wordpres ทดสอบ) เราใช้ nginx โดยไม่มีปัญหาใด ๆ จากความยาว วันนี้ทุกอย่างฉับพลัน - nginx เริ่มกลับมา "504 Gateway Time-out" จากสีน้ำเงิน ... ฉันตรวจสอบบันทึกข้อผิดพลาด nginx สำหรับโฮสต์เสมือน ... 2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection …

3
Apache vs Nginx
ฉันได้ตรวจสอบความแตกต่างระหว่าง Apache และ Nginx เมื่อเร็ว ๆ นี้และสับสนเกี่ยวกับสิ่งที่ฉันควรเลือก ฉันทำการค้นหาบางอย่างแล้ว แต่ไม่มีการเปรียบเทียบที่ชัดเจนระหว่างทั้งสองและฉันสงสัยว่าใครบางคนที่นี่สามารถให้มุมมองเกี่ยวกับความแตกต่างระหว่างทั้งสอง ความรู้ในปัจจุบันของฉันทำให้ฉันเข้าใจว่า mod_php นั้นเร็วกว่าและปลอดภัยกว่า fastcgi อย่างไรก็ตาม Apache นั้นแย่กว่ามากเมื่อมันมาถึงการเชื่อมต่อและการใช้หน่วยความจำพร้อมกัน เว็บไซต์ของฉันใช้โพลจำนวนมาก แต่มีเว็บที่ไม่ใช่ AJAX (เช่น Apache ที่มีโพลแบบยาวอยู่ด้านบน) โซลูชันดั้งเดิมของฉันสำหรับปัญหาหน่วยความจำของ Apaches คือการส่งการสำรวจแบบยาวผ่าน node.js จากนั้นรับ node.js เพื่อเข้าถึง Apache ทุก 2 วินาทีในกรณีนี้ Apache จะไม่มีการเชื่อมต่อที่เปิดอยู่ แต่แทนที่จะเป็น node.js ฉันได้ตระหนักว่านี่อาจไม่ดีพอและกำลังมองหาวิธีแก้ไขปัญหาที่แตกต่างกัน ฉันยังคงสนใจว่าแนวคิดดั้งเดิมของฉันจะใช้ได้หรือไม่ แล้วเว็บไหนดีกว่ากัน? Apache หรือ Nginx อัปเดต: คำแนะนำทั้งหมดที่ให้ไว้นั้นดีและถูกต้อง ฉันได้ไปกับแนวคิดที่สองดั้งเดิมซึ่งใช้เซิร์ฟเวอร์ Nginx แบบเต็ม ฉันพอใจที่เป็นเซิร์ฟเวอร์เฉพาะฉันไม่สามารถประสบปัญหาด้านความปลอดภัยจาก fastcgi …

1
การกำหนดค่า Nginx + WSGI ที่แนะนำ
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 7 ปีที่ผ่านมา โปรดอธิบายข้อดี / ข้อเสียเมื่อใช้อินเทอร์เฟซ Nginx WSGI อื่น โปรดอธิบายโดยละเอียดว่าอะไรคือความแตกต่างของการกำหนดค่าแต่ละอย่าง การกำหนดค่าใดควรปรับขนาดที่ดีที่สุด หากเกี่ยวข้องคุณกำลังทำงานอะไรอยู่ตอนนี้และเพราะอะไร เทคนิคบางอย่างที่ฉันเคยเห็น แต่โปรดบอกฉันหากฉันพลาด: mod_wsgi uWSGIผ่านNginx uWSGI FastCGI + flup พร็อกซีเซิร์ฟเวอร์ WSGI อื่น ( gevent , gunicorn , tornado , FAPWS3 )

4
nginx + PHP-FPM = ข้อผิดพลาด“ สิทธิ์ถูกปฏิเสธ” 13 ในบันทึก nginx; ข้อผิดพลาดในการกำหนดค่า?
ฉันมี nginx 0.7x + PHP-FPM ทำงานภายใต้ PHP 5.2.10 บนเซิร์ฟเวอร์ RHEL5 หนึ่งตัว แต่พยายามทำซ้ำการตั้งค่านั้นภายใต้ PHP-FPM ที่รวมอยู่ใน PHP 5.3.3 บนเซิร์ฟเวอร์ตัวที่สองฉันมี ปัญหาบางอย่างเกี่ยวกับข้อผิดพลาดการอนุญาตทุกครั้งที่มี GET FPM เริ่มต้นแล้วและยืนยันว่า fastcgi กำลังรับฟัง 9000 แต่ทุกครั้งที่ฉันรับ GET ฉันเห็นข้อผิดพลาดนี้ในบันทึก nginx: 2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com" Barebones …

2
หลายรุ่น php พร้อมกันบน Ubuntu
ฉันต้องการให้สามารถใช้งาน php หลายรุ่นบนกล่องพัฒนาของฉันที่ใช้ Ubuntu 12.04 สิ่งที่ฉันต้องการทำให้สำเร็จคือเมื่อฉันใช้ localhost เป็นโดเมนจะใช้ค่าเริ่มต้น (สมมติว่า php 5.3.17) เมื่อฉันใช้ 547.localhost เป็นโดเมน php 5.4.7 ถูกใช้ ฉันเห็นบางบทช่วยสอนเพื่อให้ทำงานโดยใช้ fastcgi แต่จนถึงตอนนี้ฉันไม่สามารถทำงานได้ ฉันดูบทเรียนเหล่านี้: http://dbforch.wordpress.com/2010/05/21/apache2-fastcgi-multiple-php-versions-ubuntulucid-10-04/ http://www.metod.si/multiple-php-versions-with-apache-2-fastcgi-phpfarm-on-ubuntu/ สำหรับเท่าที่ฉันเห็นฉันได้ทำทุกอย่างที่จำเป็น ปัญหาคือ php ไม่ทำงาน เมื่อฉันไปที่http://localhost/somephpfile.phpมันก็แค่เอาท์พุทแหล่งที่มาของไฟล์ php http://547.localhost/somephpfile.phpสำหรับเดียวกัน ฉันจะพังขั้นตอนที่ฉันทำด้วยความหวังว่าใครบางคนสามารถมองเห็นสิ่งที่ฉันพลาด sudo apt-get install lamp-server^ phpmyadminครั้งแรกที่ฉันติดตั้งกองไฟเริ่มต้นใช้ หลังจากนี้ฉันมีเซิร์ฟเวอร์การพัฒนาที่ใช้งานได้ใช้เวอร์ชั่นที่เก็บของ php จากนั้นฉันใช้ phpfarm เพื่อสร้างการติดตั้ง php สองครั้งหนึ่งรายการสำหรับ 5.3.17 และอีกหนึ่งสำหรับ 5.4.7 โลคัลไลเซชันของ phpfarm คือ /etc/php/phpfarmดังนั้น …

2
ฉันควรเลียนแบบ PHP ผ่าน FastCGI หรือไม่
ฉันกำลังติดตั้ง PHP เวอร์ชันล่าสุดลงบน IIS 7.5 ผ่าน FastCGI และคำแนะนำทั้งหมดบอกว่า FastCGI ควรแอบอ้างเป็นลูกค้าที่โทรโดยการตั้งค่า fastcgi.impersonate = 1 หากเว็บไซต์ของฉันจะมีการกำหนดค่านี้ พูลแอ็พพลิเคชันเฉพาะ application pool identity ของ ApplicationPoolIdentity การพิสูจน์ตัวตนแบบไม่ระบุชื่อเท่านั้น (เป็น IUSR) เหตุใดฉันจึงต้องการแอบอ้างบุคคลอื่น ฉันมาจากพื้นหลัง ASP.NET ที่ IUSR ได้รับสิทธิ์อ่านอย่างเดียวและข้อมูลประจำตัวของกลุ่มแอพลิเคชันได้รับสิทธิ์ในการเขียนใด ๆ การให้สิทธิ์การเข้าถึงแบบเขียนไปยัง IUSR มักเปิดประตูสำหรับช่องโหว่ WebDAV ดังนั้นฉันลังเลที่จะปล่อยให้ PHP ทำงานเป็น IUSR ฉันไม่สามารถหาคนมากมายที่ถามคำถามนี้ ( 1 | 2 ) ดังนั้นฉันคิดว่าฉันต้องคิดถึงบางสิ่ง บางคนสามารถอธิบายเรื่องนี้ให้ฉันได้ไหม

3
Nginx $ document_root $ fastcgi_script_name เทียบกับ $ request_filename
ฉันไม่สามารถสังเกตเห็นความแตกต่างใด ๆ หากอยู่ในไฟล์ปรับแต่งของฉัน fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; หรือ: fastcgi_param SCRIPT_FILENAME $request_filename; พวกเขาทำอะไรตามลำดับ เป็นหนึ่งในสองที่ดีกว่าอีกหรือไม่ ขอบคุณล่วงหน้า.

4
คุณจะรวมไฟล์ไว้ใน Nginx vhost แบบมีเงื่อนไขได้อย่างไร
ในบรรทัดด้านล่างฉันอาจมีไฟล์กำหนดค่าเฉพาะไซต์ที่มีfastcgi_paramsเพิ่มเติมที่ไม่ซ้ำกับไซต์นั้น หากไฟล์นี้มีอยู่ฉันต้องการโหลด server { listen 80 default; server_name _; root /path/www/$host; # Pass PHP scripts to php-fastcgi listening on port 9000 location ~ \.php { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; if (-f /path/www/$host/nginx.conf) { include /path/www/$host/nginx.conf; } } } อย่างไรก็ตามสิ่งนี้ไม่ได้ผลและข้อผิดพลาดที่ฉันได้รับคือ: nginx: [ฉุกเฉิน] "รวม" ไม่อนุญาตให้สั่งที่นี่ใน ... ปรับปรุง ฉันคิดว่าแทนที่จะตรวจสอบแยกฉันสามารถให้รวมถึงการตรวจสอบสำหรับฉัน server { listen 80 …

2
วิธีการเปิดใช้งานบันทึกข้อผิดพลาดใน lighttpd อย่างถูกต้อง?
ฉันมีระบบ Centos 5 ที่เปิดใช้งาน Lighttpd และ fastcgi มันเข้าสู่ระบบ แต่ไม่เข้าสู่ข้อผิดพลาด ฉันมีข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 และไม่มีข้อมูลในบันทึกและเมื่อฉันพยายามที่จะเปิดไฟล์ที่ไม่มีอยู่ด้วย - ไม่มีข้อมูลในบันทึกข้อผิดพลาด วิธีการเปิดใช้งานอย่างถูกต้อง? ด้านล่างคือรายการของโมดูลที่ฉันเปิดใช้งาน: server.modules = ( "mod_rewrite", "mod_redirect", "mod_alias", # "mod_access", # "mod_cml", # "mod_trigger_b4_dl", # "mod_auth", "mod_status", "mod_setenv", "mod_fastcgi", # "mod_webdav", # "mod_proxy_core", # "mod_proxy_backend_fastcgi", # "mod_proxy_backend_scgi", # "mod_proxy_backend_ajp13", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # …

3
โครงการ nginx ในโฟลเดอร์ย่อย
ฉันผิดหวังกับการกำหนดค่า nginx ของฉันดังนั้นฉันจึงขอความช่วยเหลือในการเขียนไฟล์กำหนดค่าของฉันเพื่อให้บริการหลายโครงการจากไดเรกทอรีย่อยในรูทเดียวกัน นี่ไม่ใช่โฮสติ้งเสมือนเพราะพวกเขาทั้งหมดใช้ค่าโฮสต์เดียวกัน บางทีตัวอย่างจะอธิบายความพยายามของฉัน: คำขอ192.168.1.1/ควรทำหน้าที่index.phpจาก/var/www/public/ คำขอ192.168.1.1/wiki/ควรทำหน้าที่index.phpจาก/var/www/wiki/public/ คำขอ192.168.1.1/blog/ควรทำหน้าที่index.phpจาก/var/www/blog/public/ โครงการเหล่านี้ใช้ PHP และใช้ fastcgi การกำหนดค่าปัจจุบันของฉันน้อยมาก server { listen 80 default; server_name localhost; access_log /var/log/nginx/localhost.access.log; root /var/www; index index.php index.html; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } } ฉันได้ลองทำสิ่งต่าง ๆ ด้วยaliasและrewriteไม่สามารถตั้งค่าสิ่งที่ถูกต้องสำหรับ fastcgi ได้ ดูเหมือนจะมีควรจะเป็นวิธีที่มีคารมคมคายกว่าการเขียนบล็อกสถานที่และการทำซ้ำroot, index, SCRIPT_FILENAMEฯลฯ …
11 php  nginx  fastcgi 

2
nginx, alias, php-fpm = ไม่พบไฟล์
ฉันพยายามตั้งค่า nginx ด้วย DAViCal อย่างไรก็ตามฉันได้รับ "ไม่พบไฟล์" โดยมี "FastCGI ที่ส่งเป็น stderr:" ไม่ทราบสคริปต์หลัก "ในบันทึกดูเหมือนว่ามีบางอย่างผิดปกติกับนามแฝงของฉัน แต่ฉันไม่สามารถเข้าใจได้ โฮสต์เสมือนของฉัน: server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /var/www-data; index index.html index.htm index.shtml index.php; # Make site accessible from http://localhost/ server_name …
10 php  nginx  php-fpm  fastcgi  alias 

2
จะส่งพารามิเตอร์ที่กำหนดเองไปยัง PHP จาก Nginx ได้อย่างไร
ฉันใช้Nginx 1.2.4ร่วมกับPHP-FPM 5.4.8มีการส่งผ่านและพยายามที่จะส่งผ่านพารามิเตอร์ที่กำหนดเองเพื่อfastcgi PHPนี่คือตัวเลือกที่ฉันพบ: โดยใช้envคำสั่งการตั้งค่าตัวแปรสภาพแวดล้อมในnginxและเรียกมันด้วยgetenv()หรือจาก$_ENV PHPปัญหาคือenvการทำงานในmainบริบทเท่านั้นในขณะที่ฉันต้องตั้งค่าพารามิเตอร์ในserverบริบท ใช้fastcgi_paramคำสั่งตามที่ออกแบบมาสำหรับสิ่งนั้น ฉันได้ลองเปลี่ยนค่าของพารามิเตอร์บางอย่างที่ใช้fastcgi_paramแต่ไม่ประสบความสำเร็จ: Nginx: fastcgi_param PATH_INFO "/var/tmp"; PHP: ฉันตรวจสอบอาร์เรย์ที่กำหนดไว้ล่วงหน้าทั้งหมดที่ฉันสามารถหาได้: echo '<pre>'; echo "\n".'$GLOBALS'."\n"; var_dump($GLOBALS); echo "\n".'$_SERVER'."\n"; var_dump($_SERVER); echo "\n".'$_GET'."\n"; var_dump($_GET); echo "\n".'$_POST'."\n"; var_dump($_POST); echo "\n".'$_FILES'."\n"; var_dump($_FILES); echo "\n".'$_REQUEST'."\n"; var_dump($_REQUEST); echo "\n".'$_SESSION'."\n"; var_dump($_SESSION); echo "\n".'$_ENV'."\n"; var_dump($_ENV); echo "\n".'$_COOKIE'."\n"; var_dump($_COOKIE); echo "\n".'$php_errormsg'."\n"; var_dump($php_errormsg); echo "\n".'$HTTP_RAW_POST_DATA'."\n"; var_dump($HTTP_RAW_POST_DATA); echo …
10 php  nginx  fastcgi  php-fpm 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.