แต่ในบางครั้งเรามีความจำเป็นต้องใช้ตัวแปรพวกนี้ เช่น environment variables ที่ถูกส่งผ่านเข้ามาจากการสร้าง Docker image เพื่อเก็บข้อมูล log หรือสถิติต่างๆ
สำหรับการอนุญาตให้ environment variables ถูกส่งต่อไปยัง PHP FPM ให้แก้ไขไฟล์ /etc/php/7.2/fpm/pool.d/www.conf โดยเอา comment บรรทัดข้างล่างนี้ออก
;clear_env = no
จะได้ผลลัพธ์ดังภาพข้างล่าง
หลังจากนั้นให้ restart service php7.2-fpm ด้วยคำสั่งดังนี้
service php7.2-fpm restartสำหรับการทดสอบว่า PHP FPM สามารถเรียกใช้งาน environment variables ได้แล้วหรือไม่
ขั้นตอนแรก รันคำสั่งดังนี้ เพื่อดูว่า มี environment variables อะไรบ้าง
envจะได้ผลลัพธ์ดังภาพข้างล่าง
dump(getenv('LANG'));ขั้นตอนที่ 3 ลองเรียกหน้าเว็บที่ใช้ไฟล์ PHP ในขั้นตอนที่ 2 จะได้ผลลัพธ์ดังภาพข้างล่าง
หมายเหตุ: ถ้าหากลองเรียกหน้าเว็บแล้ว ไม่มีการพิมพ์ค่าออกมา ให้ restart service php7.2-fpm ก่อน
เพิ่มเติม: เราลองใส่ comment กลับไปที่บรรทัด clear_env และ restart service php7.2-fpm แล้วลองเรียกหน้าเว็บอีกรอบ จะได้ผลลัพธ์ดังภาพข้างล่าง
ข้อควรระวัง: การเรียกใช้ php ผ่านทาง command line จะเป็นการเรียกใช้ PHP CLI แทน PHP FPM ซึ่ง PHP CLI จะมีการส่งผ่านค่า environment variables โดยอัตโนมัติและการแก้ค่า config ข้างบนก็ไม่ส่งผลกับ PHP CLI ยกตัวอย่างเช่น ถ้าเรารันคำสั่งด้านล่างนี้
php -r 'print_r(getenv());'เราจะได้ผลลัพธ์ตามภาพข้างล่างไม่ว่าเราจะแก้ไขค่า config ตามข้างบนหรือไม่
No comments:
Post a Comment