คำถามติดแท็ก php-fpm

PHP-FPM (FastCGI Process Manager) เป็นอีกทางเลือกหนึ่งในการติดตั้ง PHP FastCGI พร้อมคุณสมบัติเพิ่มเติมที่มีประโยชน์สำหรับเว็บไซต์ทุกขนาดโดยเฉพาะไซต์ที่มีงานยุ่ง

2
Nginx + PHP-FPM สร้างเกตเวย์ที่ไม่ดี 502 ข้อผิดพลาดร้ายแรงหรือไม่
ฉันกำลังทดสอบ Symfony2 กับ Nginx และ PHP-FPM ฉันยังใช้ Xdebug Symfony2 มาพร้อมกับชุดสาธิตฉันต้องการทดสอบการจัดการข้อผิดพลาดร้ายแรงซึ่งมาพร้อมกับ Symfony 2.2.0 ใหม่โดยการสร้างข้อผิดพลาดทางไวยากรณ์ในชุด Acme / Demo ทำไมฉันถึงทำเช่นนั้นการตอบสนองของเซิร์ฟเวอร์คือเกตเวย์ที่ไม่ดี 502 แต่ถ้าฉันทำข้อผิดพลาดทางไวยากรณ์ในไฟล์ app_dev.php (ดังนั้นก่อนที่เฟรมเวิร์กจะเริ่มทำงาน) Xdebug จะบอกฉันเกี่ยวกับข้อผิดพลาดร้ายแรง และน่าประหลาดใจถ้าฉันแก้ไขข้อผิดพลาดนั้นจากนั้นสร้างข้อผิดพลาดทางไวยากรณ์ในชุดข้อมูล Acme / Demo ใหม่ตัวจัดการข้อผิดพลาด Symfony จะปรากฏขึ้นตามที่คาดไว้ และในที่สุดถ้าแก้ไขข้อผิดพลาดทั้งหมด (ใช้งานได้ในหน้า) แล้วสร้างตัวพิมพ์เดียวกันอีกครั้ง (อีกครั้งใน Acme / Bundle) ฉันจะได้รับเกตเวย์ที่ไม่ดี คุณมีเงื่อนงำเกี่ยวกับเรื่องนี้หรือไม่?
11 php  nginx  php-fpm  xdebug  symfony 

1
วิธีกำหนดค่า PHP-FPM บน NGINX ให้เขียนลงในไฟล์บันทึกต่อ virtualhost
ฉันมี Fedora 16 กับ Nginx และ PHP-FPM ทุกอย่างทำงานได้ดีมาก บันทึกทั้งหมดที่มีประกาศ PHP, คำเตือนข้อผิดพลาดอื่น ๆ /var/log/php-fpm/www-error.logที่อยู่ใน มีวิธีกำหนดค่า PHP-FPM ให้เขียนข้อผิดพลาดในไฟล์บันทึกที่เหมาะสมซึ่งกำหนดค่าเป็นบันทึกข้อผิดพลาดสำหรับ Nginx หรือไม่ ดังนั้นฉันต้องการบันทึกข้อผิดพลาด PHP ต่อ virtualhostไม่ใช่ไฟล์เดียวทั่วโลก (เหมือนใน Apache Httpd และ PHP)
11 linux  nginx  logging  php-fpm 

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 

6
ฉันจะทราบได้อย่างไรว่าเหตุใด php5-fpm ของฉันจึงไม่สามารถเริ่มต้นได้
ฉันได้รับการหมดเวลาเกตเวย์ 504 เมื่อฉันพยายามเข้าถึงเซิร์ฟเวอร์ของฉันตรวจสอบขนาดเล็กไม่พบบันทึกใด ๆ ในบันทึก php5-fpm แต่เพียงเพื่อให้แน่ใจว่าฉันพยายามเริ่มต้นใหม่ เมื่อฉันพยายามรีสตาร์ท: sudo service php5-fpm restart ฉันได้รับ[fail] แต่เมื่อฉันทำ sudo service php5-fpm stop sudo service php5-fpm start ฉันไม่มีข้อผิดพลาด ฉันจะตรวจสอบได้อย่างไรหากไม่มีบันทึก ฉันจะทำอย่างไร
10 linux  php  php-fpm 

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 

3
nginx fastcgi“ ไม่รู้จักสคริปต์หลัก” เมื่อกำหนดค่า userdir
ฉันเกลียดการกำหนดค่า nginx มันซับซ้อนมาก ฉันจะทำให้ PHP ทำงานในผู้ใช้ของฉันได้อย่างไร? นี่คือส่วนที่เกี่ยวข้องของ nginx.conf ของฉัน: location ~ ^/~(.+?)(/.*)?$ { autoindex on; autoindex_exact_size off; alias /home/$1/public_html$2; location ~ \.php { include /etc/nginx/fastcgi.conf; fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } } สิ่งนี้ทำให้ฉันมีข้อผิดพลาด: FastCGI sent in stderr: "Primary script unknown" while reading response header from upstreamในบันทึกข้อผิดพลาด nginx นี่คือฉัน/etc/nginx/fastcgi.conf: fastcgi_param …
10 nginx  fastcgi  php-fpm 

1
ไดเรกทอรี chroot และ chdir ของ PHP-FPM
ฉันกำลังตั้งค่า php-fpm ด้วยการเปิดใช้งาน chrooting ตอนนี้ฉันเห็นแล้วว่ามีสองตัวเลือกและฉันต้องการทราบว่าความแตกต่างที่แน่นอนคืออะไร การตั้งค่ามี: chroot = /var/www/domains/domain.tld/ ; Chdir to this directory at the start. This value must be an absolute path. ; Default Value: current directory or / when chroot chdir = /docroot/ เหตุใดจึงมีสองตำแหน่งที่แตกต่างกันที่นี่และเส้นทางใดที่อนุญาตให้เข้าถึง php สามารถเข้าถึงเว็บไซต์ php /var/www/domains/domain.tld/หรือสามารถเข้าถึงเฉพาะไฟล์ที่อยู่ในdocrootไดเรกทอรีเท่านั้น === อาจมีคำแนะนำที่เป็นรูปธรรมสำหรับฉัน ฉันต้องการตั้งค่าแบบนี้: ที่ตั้ง webroot: /var/www/ domain.com/ |---conf/ | …
10 php-fpm  chroot 

1
php-fpm: ช่วยให้เข้าใจ start_servers, min_spare_servers, max_spare_servers
ฉันพยายามที่จะปรับแต่งการติดตั้ง PHP-FPM ของฉันสำหรับเซิร์ฟเวอร์ของฉันและฉันมีปัญหาในการหาสิ่งที่จะทำอย่างไรกับpm.start_servers, pm.min_spare_serversและpm.max_spare_serversตัวแปร ฉันใช้pm = dynamic pm.max_childrenชัดเจนอย่างสมบูรณ์แบบ กระบวนการลูกแต่ละรายการให้บริการ 1 เว็บไคลเอ็นต์พร้อมกัน ตกลง. "เซิร์ฟเวอร์" คืออะไร? ชัดเจนขึ้นอยู่กับการกำหนดค่าเริ่มต้นที่ฉันมี 1 เซิร์ฟเวอร์สามารถให้บริการมากกว่า 1 ลูก ขีด จำกัด บนคืออะไร ฉันควรใช้อะไรเป็นกฎง่ายๆสำหรับจำนวนเด็ก / เซิร์ฟเวอร์ หรือมันเกี่ยวข้องเลย ในฟอรัมบางคนอ้างว่า # ของเซิร์ฟเวอร์ควรเป็น 2 x # ของ cpu cores แต่ฉันได้เห็นการกำหนดค่าที่แนะนำซึ่งมีจำนวนสูงกว่ามาก 40-50 ทั้งเอกสาร PHP และบทความ "การปรับ php-fpm" หลายบทความนั้นไม่ได้มีประโยชน์เลย
10 nginx  php  php-fpm 

3
แสดงเนื้อหาแบบคงที่โดยใช้นักเทียบท่า + nginx + php-fpm
ฉันพยายามกำหนดค่า php webapp โดยใช้ docker แนวคิดคือการเรียกใช้แอปที่ใช้php-fpmในคอนเทนเนอร์แบบสแตนด์อโลนและมีคอนเทนเนอร์อื่นที่จะเรียกใช้ nginx แนวคิดสำหรับการตั้งค่านี้คือการใช้คอนเทนเนอร์ nginx เดียวกันกับคำขอพร็อกซีไปยัง webapps อื่น ๆ ที่ทำงานบนเครื่องเดียวกันอยู่แล้ว ปัญหาคือฉันไม่สามารถnginxประมวลผลไฟล์สแตติก (js, css, ฯลฯ ) ได้อย่างถูกต้องตามที่ร้องขอไปยังผู้fpmอื่น นี่คือลักษณะของระบบไฟล์: / ├── Makefile ├── config │ └── webapp.config └── webapp └── web ├── index.php └── static.js ฉันใช้งานทั้งหมดโดยใช้สิ่งMakefileที่มีลักษณะเช่นนี้ (ไม่สนใจdocker-composeสิ่งนี้): PWD:=$(shell pwd) CONFIG:='/config' WEBAPP:='/webapp' run: | run-network run-webapp run-nginx run-network: docker …

4
เว็บเซิร์ฟเวอร์สุ่มให้บริการโฮสต์ที่แตกต่างกัน
เรามี nginx ที่ทำงานบน Ubuntu Trusty ให้บริการเว็บไซต์หลายแห่งผ่าน https โดยใช้ที่อยู่ IP เดียว สุ่มแม้ว่าดูเหมือนว่าจะเกี่ยวข้องกับภาระงานเล็กน้อย แต่บางครั้งคำขอเดียวก็เปิดใช้งาน vhost ผิด สิ่งนี้นำไปสู่คำขอเกี่ยวกับlustrum.thalia.nuการให้บริการโดยthalia.nuและในทางกลับกัน จากนั้นจะให้หน้าข้อผิดพลาดที่น่ารังเกียจเมื่อผู้ใช้จู่ ๆ ก็มีเว็บไซต์อื่น เมื่อคุณกดF5ผู้ใช้จะจบลงที่เป้าหมายเดิมอีกครั้ง ดูเหมือนว่าจะไม่เกี่ยวข้องกับเบราว์เซอร์หรือระบบปฏิบัติการ ได้รับการยืนยันว่าจะเกิดขึ้นบน Firefox (Linux, Windows, Mac), Edge (Windows) และ Chrome (Linux, Windows, Android) และ Safari (iOS) ปัญหานี้เกิดขึ้นบ่อยครั้งมากขึ้นเมื่อระบบอยู่ภายใต้การโหลดซึ่งบ่งบอกถึงสภาพการแข่งขันบางประเภท lustrum.thalia.nu server { server_name lustrum.thalia.nu; listen 443 ssl; ssl on; ssl_certificate /etc/nginx/certs/lustrum.thalia.nu.crt; ssl_certificate_key /etc/nginx/certs/lustrum.thalia.nu.key; …

1
PHP5-FPM ส่งข้อผิดพลาดไปยัง nginx อย่างไร
ฉันทำการทดลองเล็กน้อยกับการบันทึกข้อผิดพลาดใน php-fpm และ nginx เนื่องจากฉันไม่พบคำอธิบายที่ดีใด ๆ บนเว็บ มัคคุเทศก์ส่วนใหญ่กล่าวว่าฉันควรเปลี่ยนcatch_workers_outputเป็นyesถ้าฉันต้องการส่งข้อผิดพลาดจาก php5-fpm กลับไปที่ nginx อย่างไรก็ตามในระหว่างการทดสอบของฉันฉันพบว่าแม้เมื่อcatch_workers_outputตั้งค่าเป็นnoข้อผิดพลาดยังคงถูกบันทึกอย่างถูกต้องโดย nginx นี่คือ virtualhost config ของฉัน: server { server_name domain.com; return 301 http://www.domain.com$request_uri; access_log off; } server { listen 80; listen [::]:80; root /home/websites/domain.com; index index.php index.html index.htm; error_log /home/websites/logs/domain.com/error.log warn; access_log /home/websites/logs/domain.com/access.log; #switch on gzip gzip on; gzip_min_length …
9 nginx  php-fpm 

2
php-fpm ส่งคืนการตอบกลับเปล่าไปยัง nginx
nginx กำลังเชื่อมต่อกับ php-fpm ผ่าน fastcgi โดยใช้มาตรฐาน/etc/nginx/fastcgi_paramsในบล็อกตำแหน่ง เมื่อเชื่อมต่อกับ /.status (php-fpm.ini :: ping.path) จากบรรทัดคำสั่งด้วยcgi-fcgi -bindผลลัพธ์จะกลับมาตามที่คาดไว้ (ชุด X-Powered-By ชุดการตอบสนอง ฯลฯ ) เมื่อร้องขอด้วย nginx ผลลัพธ์จะกลับมาว่างเปล่า (ชุด X-Powered-By ไม่มีความยาวหรือเนื้อหา) nginx ส่งคืน 200 เนื่องจากได้รับการตอบกลับ "ถูกต้อง" การเฝ้าดู tcpdump ฉันได้แยกคำขอให้เท่าเทียมกันในส่วนหัว FCGI ของพวกเขา (ลบด้วยตัวแปร env ที่เกี่ยวข้องกับผู้ใช้ที่ยังคงตั้งค่าโดยเชลล์)
9 php  nginx  php-fpm  fastcgi 

6
PHP FPM ให้สิทธิ์ปฏิเสธหรือไม่
ฉันอ่านหลายรายการว่าทำไม PHP-FPM อาจให้สิทธิ์ฉันถูกปฏิเสธ แต่ฉันไม่สามารถแก้ไขได้ บันทึกข้อผิดพลาดอ่านเช่น: 2013/04/20 23:33:28 [crit] 15479#0: *6 open() "/var/lib/nginx/tmp/fastcgi /2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 99.999.999.999, server: example.net, request: "GET /wp-admin/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "example.net", referrer: "http://example.net/" ฉันเล็กน้อย แต่แพ้: ฉันได้ตั้ง / var / lib / nginx / tmp เป็นผู้ใช้ ec2 (ฉัน +777 ทุกอย่างเพื่อตรวจสอบ) …

2
pecl install mongo - รวบรวมคอมไพล์ด้วย API โมดูลที่ไม่ถูกต้อง
ทำงานกับ Ubuntu 12.04 ที่นี่, nginx และ php5-fpm ฉันใช้ Mongo ทำงานได้ดีใน php 5.3 จากนั้นฉันเพิ่ม ondrej / php5 ppa และอัปเดตเป็น php5.4 มันเก็บนามสกุล GD และ CURL แต่ไม่ใช่ Mongo ฉันเพิ่มบรรทัดไปยังไฟล์ php.ini อีกครั้งและไม่มีอะไรเกิดขึ้น จากนั้นฉันเปิดใช้งานข้อผิดพลาดในการเริ่มต้นและได้รับสิ่งนี้: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' - /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory ดังนั้นฉันเดาได้find …
9 php5  mongodb  pecl  php-fpm 

2
Nginx และ PHP-FPM ขาดการเชื่อมต่อ
ฉันพบข้อผิดพลาดเช่นนี้ต่อไป [02-Jun-2012 01:52:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 19 idle, and 49 total children [02-Jun-2012 01:52:05] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 19 idle, and …
9 nginx  php-fpm 

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