PHP version สำหรับ super user คือ fcgi แทนที่จะเป็น cli


7

ฉันมีปัญหาแปลก ๆ กับเวอร์ชัน PHP เมื่อใช้ CLI เมื่อฉันเข้าสู่ระบบในฐานะรูทและใช้: php -vฉันได้รับข้อมูลที่ php ทำงานในโหมด CLI ซึ่งใช้ได้ แต่ทันทีที่ฉันใช้sudo php -vฉันจะได้รับเวอร์ชัน php-fcgi ซึ่งเบรกโค้ดบางส่วนของฉัน สิ่งนี้คือฉันมีหัวหน้างานตั้งค่าให้เรียก php proccess (Laravel queue) และน่าเสียดายที่มันถูกเรียกในโหมด fcgi ดังนั้นตัวแปรบางตัวจึงไม่สามารถใช้งานได้ดังนั้นโค้ดของฉันจึงแตก มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่? ฉันใช้ CentOS 6.5

คำตอบ:


1

@blackhatblade ด้านบนเป็น coorect ที่เป็นไปได้มากที่สุด เพื่อทดสอบสิ่งนี้ให้ล็อกอินทั้งผู้ใช้รูทและผู้ใช้รูทและลองใช้คำสั่งนี้

# ซึ่ง php

$ ซึ่ง php

"ซึ่ง" ควรบอกเส้นทาง หากแตกต่างกัน "php" ที่ไม่มีเงื่อนไขจะดำเนินการกับรายการแรกที่พบในแต่ละรายการของไดเรกทอรี

อาจเป็นไปได้ว่าผู้ใช้รูทของคุณอาจมีเชลล์ "alias" remapping php เพื่อตรวจสอบสิ่งนี้ลองคำสั่ง "นามแฝง"

ในที่สุดก็เป็นไปได้ที่ไฟล์ php ของคุณใช้งานได้ซึ่งเป็นตัวห่อหุ้มบางชนิดซึ่งจะตรวจสอบสภาพแวดล้อมในการทำงานของรูทและทำการสับเปลี่ยนคุณไปเป็นเวอร์ชัน fcgi ตรวจสอบว่าโดยการตรวจสอบเส้นทางที่ผ่านการรับรองโดยสมบูรณ์ที่คุณพบในขั้นตอนแรกจาก "ซึ่ง" และดูว่าเป็นเชลล์สคริปต์หรือไม่ที่ทำสิ่งที่ไม่แน่นอนขึ้นอยู่กับว่าใครกำลังใช้งานอยู่


0

เนื้อหาของ $ PATH อาจแตกต่างกันเมื่อทำการ sudoing ค้นหาไบนารีที่ถูกต้องและให้เส้นทางแบบเต็ม

หากโปรแกรม php ของคุณถูกเรียกโดยตรงให้แก้ไขเป็น shebang ไปยังเส้นทางแบบเต็มของ cli binary


0

/etc/environmentคุณควรตั้งค่าตัวแปรเส้นทางใน & ตรวจสอบให้แน่ใจว่าผู้ใช้ทั้งรูทและธรรมดามีตัวแปร PATH

ลอง sudo nano /etc/environment

ทำการสำรองข้อมูลก่อนที่จะแก้ไขไฟล์

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