การค้าตัวเลือกไบนารี

exe กับตัวเลือกดับเบิลคลิกที่ไฟล์.php หรือคุณสามารถสร้างแฟ้มแบทช์ที่จะเรียกใช้สคริปต์ผ่านของ PHPบรรทัดแรกเพิ่มสคริปต์ในการทำงานบน Unix เจ็บเคยชินบน Windows, เพื่อให้คุณสามารถเขียนโปรแกรมข้ามแพลตฟอร์มด้วยวิธีนี้ตัวอย่างง่ายๆของการเขียนโปรแกรม PHP บรรทัดคำสั่งที่สามารถพบได้ใน below.13 สคริปต์ข้างต้นเราใช้บรรทัดแรกเป็นพิเศษเพื่อแสดงให้เห็นว่าไฟล์นี้ควรจะดำเนินการโดย PHP และไม่ควรพิมพ์ HTTP ส่วนหัวมีสองตัวแปรที่คุณสามารถใช้ในขณะที่เขียนการใช้งานบรรทัดคำสั่งด้วย PHP: argc และ argvที่แรกก็คือจำนวนของการขัดแย้งบวกหนึ่ง (ชื่อของสคริปต์ที่ทำงาน)ประการที่สองคืออาร์เรย์ที่มีข้อโต้แย้งที่เริ่มต้นด้วยชื่อสคริปต์เป็นศูนย์จำนวน (argv0) 0.13 ในโปรแกรมข้างต้นเราจะตรวจสอบว่ามีน้อยกว่าหรือมากกว่าหนึ่งข้อโต้แย้งนอกจากนี้หากการโต้แย้งเป็น --help, - help, - h หรือ - เราพิมพ์ออกมาข้อความช่วยเหลือพิมพ์ชื่อสคริปต์แบบไดนามิกหากเราได้รับบางข้อโต้แย้งอื่น ๆ ที่เราสะท้อนว่า out. NOTE: เว็บเซิร์ฟเวอร์ Apache เปลี่ยนแปลงไดเรกทอรีที่จะขุดรากถอนโคนที่เริ่มต้นก่อให้เกิด PHP ในการพยายามที่จะอ่าน php. ini จากระบบแฟ้มรากถ้ามีถ้าเป็น PHP-SAPI. ini อยู่ (ที่จะใช้ SAPI SAPI ดังนั้นชื่อไฟล์เป็นเช่น PHP การ-cli. ini หรือ PHP-apache. ini) ใช้แทนของ php. iniชื่อ SAPI จะถูกกำหนดโดย phpsapiname ()คุณสามารถใช้ยังใช้ PHPSAPI ที่กำหนดไว้ล่วงหน้าคงแทน phpsapiname () ถ้าหนึ่งในจำนวนนี้คือการแสดงอุดสำหรับคุณคุณสามารถสลับไปใช้ PHP เป็นโมดูล Apache และไม่ CGI แต่จะเตรียมไว้สำหรับพวงของการรักษาความปลอดภัยที่อาจเกิดขึ้นและความสะดวกในการใช้งานปัญหาหากคุณไม่ทราบว่าสิ่งใด ๆ ของข้อบกพร่องเหล่านี้หมายความว่าคุณกำลังเพียงแค่ปรับใช้การตั้งค่าเริ่มต้นของ PHP-CGI และไม่ต้องกังวลเกี่ยวกับการตั้งค่าไฟล์ anythingThe (เรียกว่า php3.ini ใน PHP 3 และก็ php. iniณ PHP 4) จะอ่านเมื่อ PHP จะเริ่มต้นขึ้นสำหรับรุ่นโมดูลเซิร์ฟเวอร์ของ PHP นี้เกิดขึ้นเพียงครั้งเดียวเมื่อเว็บเซิร์ฟเวอร์จะเริ่มต้นหมายเหตุ: สำหรับ CGI และรุ่น CLI ที่ php. ini ถูกอ่านในทุก invocation. When ใช้ PHP บน Windows, ค่าการตั้งค่าสามารถแก้ไขได้บนพื้นฐานต่อไดเรกทอรีที่ใช้ Windows รีจิสทรีค่าการกำหนดค่าที่เก็บไว้ใน HKLMSOFTWAREPHPPer คีย์รีจิสทรีค่าไดเรกทอรีในคีย์ย่อยที่สอดคล้องกับชื่อเส้นทางยกตัวอย่างเช่นค่าการกำหนดค่าสำหรับไดเรกทอรี c: Inetpubwwwroot จะถูกเก็บไว้ในคีย์ HKLMSOFTWAREPHPPer ไดเรกทอรี Values​​cinetpubwwwrootการตั้งค่าสำหรับไดเรกทอรีจะใช้งานสำหรับสคริปต์ทำงานจากไดเรกทอรีนี้หรือไดเรกทอรีย่อยของมันที่ใดค่าภายใต้คีย์ควรจะมีชื่อของคำสั่งการกำหนดค่า PHP และความคุ้มค่าสตริงPHP ค่าคงที่ในค่า arenot แยกอย่างไรก็ตามค่าการกำหนดค่าการเปลี่ยนแปลงเฉพาะใน PHPINIUSER สามารถตั้งค่าได้ด้วยวิธีนี้ค่า PHPINIPERDIR สามารถ not. If คุณมีความสนใจในรายการที่สมบูรณ์ของการตั้งค่าในระบบของคุณมีค่าปัจจุบันของพวกเขาที่คุณสามารถดำเนินการ phpinfo () ฟังก์ชั่นและทบทวนหน้าผลนอกจากนี้คุณยังสามารถเข้าถึงคุณค่าของคำสั่งการตั้งค่าของแต่ละบุคคลที่รันไทม์ใช้ iniget (ที่) หรือ getcfgvar (). ฉันได้สังเกตเห็นว่าบางคนได้ตั้งข้อสังเกตว่าใช้ PHP เป็นโปรแกรม CGI สามารถทำงานช้าเมื่อเทียบกับการรวบรวมในโมดูลบางคนได้ตั้งข้อสังเกตว่าพวกเขาต้องการที่จะใช้ FastCGI แต่ลังเลผมพบว่าการใช้โมดูล Apache 2s CGID เป็นวิธีที่ดีเพื่อเพิ่มประสิทธิภาพและความเร็วเกือบถึงระดับเดียวกับโมดูล PHP ที่ติดตั้ง แต่คุณได้รับประโยชน์เพิ่มของการทำงานในแต่ละพื้นที่เสมือนอยู่ภายใต้การใช้งานของตัวเองและ group. In การทดสอบของฉันผมได้ 44 หน้าต่อวินาทีโดยใช้ PHP เป็นโมดูลและฉันได้ประมาณประสิทธิภาพเดียวกัน (ภายใน 5) ใช้ PHP เป็นโปรแกรม CGI ผ่าน CGIDCGID ยังเป็นเรื่องง่ายที่จะตั้งค่าเพียงแค่เพิ่ม --enable-cgid คำสั่งกำหนดค่า Apache ของคุณและคุณดีไปตั้งขึ้นเพียง PHP เป็น CGI ปกติIm แน่ใจว่าเธอเอาใจใส่ RAM พิเศษที่ใช้สำหรับวิธีการนี​​้ แต่ RAM เป็นถูกเป็นซุป anyways ดังนั้นจึงไม่ควรจะเป็นปัจจัยสำคัญเมื่อพยายามที่จะเพิ่มความเร็วใน PHP CGI. Here สองเซ็นต์ของฉันของความรู้ PHP-cgi เมื่อใช้สคริปต์ CGI จากพรอมต์: ถ้าคุณได้รับไม่มีแฟ้มใส่ที่ระบุข้อผิดพลาดในการสร้างตัวแปรสภาพแวดล้อม SCRIPTFILENAMEC นี้: filestest. phpถ้าคุณได้รับข้อผิดพลาดการแจ้งเตือนการรักษาความปลอดภัยและจะบอกให้คุณสามารถสร้างตัวแปรสภาพแวดล้อม REDIRECTSTATUS มันเป็นเพราะคุณมีชุดตัวแปร SERVERNAME แต่ไม่ตัวแปร REDIRECTSTATUSดังนั้นหากคุณมี SERVERNAME คุณยังต้อง REDIRECTSTATUS แต่ไม่เป็นอย่างอื่นและคุณสวยมากควรมี SCRIPTFILENAME ที่ time. suPHP ทั้งหมดเป็นเครื่องมือสำหรับการรันสคริปต์ PHP กับการอนุญาตของเจ้าของของพวกเขาประกอบด้วยโมดูล Apache (modsuphp) และราก setuid ไบนารี (suPHP) ที่เรียกว่าโดยโมดูล Apache จะเปลี่ยน uid ของกระบวนการการดำเนินการปลาย PHP interpreter. A สำหรับ Windows-ผู้ใช้: PHP แรกดูเหมือนจะมองในPHP การไดเรกทอรีสำหรับ php. ini และถ้าไฟล์ที่ไม่อยู่ก็จะมองในไดเรกทอรี Windowsผมเปลี่ยนชื่อไฟล์ php. ini-อเพื่อ php. ini และคัดลอกไปยังไดเรกทอรี Windows ของฉันแล้วฉันแก้ไข cgi. forceredirect น่าอับอาย 0 ในไฟล์ php. ini ตั้งอยู่ในไดเรกทอรี Windows ที่จะทำให้มันทำงานแต่มันก็ไม่ได้เพราะมันอ่านจาก php. ini เดิม - ดังนั้นเมื่อผมลบสิ่ง php. ini นี้เริ่มทำงาน againIf คุณกำลังใช้ PHP ต่อ cgi และนอกจากนี้ modgzip ทำงานคุณจะต้องปิดการใช้งาน modgzip สำหรับไบนารี cgi PHP การที่จะใช้ - การเปิดใช้งาน-cgi-เปลี่ยนเส้นทางmodgzip ชุด REDIRECTSTATUS เสมอถึง 200 ซึ่งจะทำให้มันเป็นไปไม่ได้สำหรับไบนารี php ที่จะรู้ว่าเมื่อมันถูกเรียกว่าทางตรงหรือเมื่อมันถูกเรียกโดย redirect. If คุณทำเสมือนโฮสติ้งคุณสามารถเปิดเซฟโหมดและปิดสำหรับโฮสต์ Apache เสมือนที่แตกต่างกันโดยใช้คำสั่ง phpadminvalueนอกจากนี้ยังช่วยให้คุณสามารถปรับแต่งเวลาการดำเนินการสูงสุดฟังก์ชั่นสำหรับผู้พิการ, ฯลฯ อะไรซึ่งตั้งอยู่ใน php. iniโปรดทราบว่าโดยการวาง basedir สำหรับแต่ละโฮสต์เสมือนนี้หมายความว่า PHP ไม่สามารถเข้าถึงไฟล์ด้านล่าง heirachy นี้ขอแนะนำสำหรับลูกค้า hosting. cgi.