ภาษาโปรตุเกส
ชาวจีน
Fox Pages Server (FPS) เป็นเซิร์ฟเวอร์ HTTP, HTTPS และ FastCGI แบบมัลติเธรดสำหรับ Visual FoxPro
ด้วย Fox Pages Server คุณสามารถพัฒนา ตรวจแก้จุดบกพร่อง และแจกจ่ายเนื้อหาเว็บและแอปพลิเคชันได้โดยใช้ Visual FoxPro
Fox Pages Server ไม่อนุญาตให้โค้ด Visual FoxPro ทำงานบนอินเทอร์เน็ต ด้วยเหตุนี้จึงจำเป็นต้องรู้ภาษาและเครื่องมือในการพัฒนาอินเทอร์เน็ตที่จะใช้ เช่น HTML, CSS, Javascript, JQuery, Dojo เป็นต้น
Fox Pages Server สามารถใช้ร่วมกับแพลตฟอร์ม boa ได้ วิธีนี้คุณสามารถสร้างเว็บแอปพลิเคชันโดยไม่ต้องมีความรู้ภาษาการพัฒนาเว็บเลย Fox Pages Server สื่อสารกับ BOA
ไมโครซอฟต์วิชวลฟ็อกซ์โปร 9.0
Fox Pages Server มีการกระจายในสองโหมด: โหมดการพัฒนาและโหมดการกระจาย
ในโหมดนี้ เซิร์ฟเวอร์จะทำงานตามค่าเริ่มต้นในซิงเกิลเธรด ดังนั้นจึงสามารถใช้ Visual FoxPro สำหรับการพัฒนาเพจ FXP ได้ โหมดการพัฒนาจำเป็นต้องติดตั้ง Visual FoxPro
ในโหมดนี้ เซิร์ฟเวอร์จะทำงานแบบมัลติเธรด ทำให้ได้รับการประมวลผลที่มาก โหมดการแจกจ่ายจำเป็นต้องติดตั้งรันไทม์ Visual FoxPro
ในโหมดการพัฒนาและการกระจาย ข้อผิดพลาดใดๆ จะถูกบันทึกลงในตารางในโฟลเดอร์ LOGS เพื่อให้สามารถตรวจจับและติดตามข้อผิดพลาดได้
อย่าพยายามทำตามขั้นตอนการติดตั้งในโหมดการพัฒนาและการปรับใช้บนคอมพิวเตอร์เครื่องเดียวกัน หากจำเป็น ให้เรียกใช้ไฟล์ install.bat จากโหมดการแจกจ่าย เนื่องจากจะลงทะเบียนส่วนประกอบต่างๆ จะสร้างบริการ Windows ด้วย กำหนดค่าโหมดการพัฒนาเพื่อใช้ IP หรือพอร์ตอื่นที่ไม่ใช่โหมดการกระจาย
การดีบัก Visual FoxPro จะทำงานในโหมดการพัฒนาเท่านั้น เนื่องจากไม่สามารถแสดงอินเทอร์เฟซใดๆ เมื่อโค้ดทำงานใน DLL แบบมัลติเธรด ความพยายามใดๆ จะทำให้เกิดข้อผิดพลาดหรือทำให้เธรดค้าง
ไม่แนะนำให้ทิ้งไฟล์ .HTML โดยที่คอมไพล์ .FXP ไว้ในโฟลเดอร์เดียวกันของเซิร์ฟเวอร์ ซึ่งสามารถดาวน์โหลดได้หากนามสกุลมีการเปลี่ยนแปลงในเว็บเบราว์เซอร์
Fox Pages ใช้พอร์ต 80 เป็นค่าเริ่มต้นสำหรับ HTTP ดังนั้นก่อนที่จะเริ่มจำเป็นต้องหยุดบริการใด ๆ ที่ใช้พอร์ต 80 (IIS, Apache ฯลฯ ) หรือเปลี่ยนพอร์ตที่ใช้ในโปรแกรม HTTP.PRG ที่อยู่ในโฟลเดอร์ SERVERS บน โหมดหรือในฟิลด์ PORT ของตาราง SERVERS.DBF ที่อยู่ในโฟลเดอร์ DATA ในโหมดการแจกจ่าย
โปรโตคอลอื่นๆ ปฏิบัติตามขั้นตอนเดียวกัน
ฐานข้อมูล FPS.DBC ที่อยู่ในโฟลเดอร์ DATA จะจัดเก็บการกำหนดค่าของเซิร์ฟเวอร์ เอกสารประกอบของตารางและฟิลด์ที่เกี่ยวข้องสามารถพบได้ในไฟล์ FPS.HTML สามารถดูความสัมพันธ์ระหว่างตารางได้ในภาพ FPS.JPG
เซิร์ฟเวอร์มีหน้าที่รับผิดชอบในการเชื่อมต่อของไคลเอ็นต์ (IE, Chrome, Firefox ฯลฯ) และเซิร์ฟเวอร์ (NGinX ฯลฯ)
แต่ละเซิร์ฟเวอร์ทำงานบนเธรดที่แยกจากกันและสามารถฟังบนพอร์ตเดียวกัน ทั้งนี้ขึ้นอยู่กับการกำหนดค่าของหมายเลข IP ในกรณีที่หมายเลข IP และพอร์ตขัดแย้งกัน เซิร์ฟเวอร์ที่กำหนดค่าครั้งแรกจะได้รับการเชื่อมต่อ
กำหนดค่าเซิร์ฟเวอร์โดยการเพิ่ม แก้ไข หรือลบระเบียนในตาราง SERVERS.DBF
แต่ละโปรโตคอลมีค่าเริ่มต้นเป็นพอร์ตเฉพาะ:
โดยปกติ FastCGI จะใช้ในการสื่อสารระหว่างเซิร์ฟเวอร์ ไม่มีพอร์ตเริ่มต้น
ไซต์สร้างความสัมพันธ์ระหว่างชื่อโฮสต์ (เช่น www.example.com) กับโฟลเดอร์ที่มีไฟล์ของไซต์ (เช่น c:sitesexample) และกำหนดค่าหน้าแรกของคุณ (เช่น index.fxp, index.php, index .html ฯลฯ)
กำหนดค่าไซต์โดยการเพิ่ม แก้ไข หรือลบเรกคอร์ดในตาราง SITES.DBF
หากฟิลด์ HOSTNAME เต็มไปด้วย "*" HOSTNAMES ทั้งหมดจะเกี่ยวข้องกับโฟลเดอร์เดียวกัน
ในตารางเดียวกันนี้ เรากำหนดค่าการเปลี่ยนเส้นทางโดยกรอกที่อยู่แบบเต็มของการเปลี่ยนเส้นทางในช่อง REDIRECT คุณลักษณะนี้มีประโยชน์มากเมื่อเราต้องการ เช่น เปลี่ยนเส้นทางการเชื่อมต่อที่ไม่ปลอดภัย (HTTP) ไปยังเซิร์ฟเวอร์ที่ปลอดภัย (HTTPS) ซึ่งทำได้ เช่น โดยการกรอกฟิลด์ REDIRECT ของเว็บไซต์ www.example.com จากเซิร์ฟเวอร์ที่ไม่ปลอดภัย (HTTP) ด้วย "https://www.example.com" ซึ่งเป็นที่อยู่ไซต์ที่ปลอดภัย (HTTPS)
เกตเวย์ใช้เพื่อส่งคำขอไปยังเครื่องมือการพัฒนาอื่นๆ จนถึงขณะนี้ PHP เป็นเพียงเครื่องมือเดียวที่ได้รับการทดสอบ ในขณะที่เครื่องมือใดๆ ที่รองรับ FastCGI จะต้องเข้ากันได้
กำหนดค่าเกตเวย์โดยการเพิ่ม แก้ไข หรือลบเรกคอร์ดในตาราง GATEWAYS.DBF
โปรโตคอลเดียวที่รองรับคือ FastCGI
เกตเวย์ทำงานในลักษณะเดียวกันกับไซต์ โดยสร้างความสัมพันธ์ระหว่างชื่อโฮสต์ (เช่น www.example.com) กับโฟลเดอร์ที่มีไฟล์ของไซต์อยู่ (เช่น c:sitesexample) ความแตกต่างอยู่ที่ว่าเนื้อหาของฟิลด์ URI (เช่น ".php") จะต้องอยู่ใน URI คำขอเพื่อที่จะถูกส่งไปยังเกตเวย์
ตามเกณฑ์เหล่านี้ Fox Pages Server แปลงคำขอ HTTP เป็นคำขอ FastCGI และส่งไปยังเซิร์ฟเวอร์ที่กำหนดค่าไว้ จากนั้นการตอบสนอง FastCGI จะถูกแปลงเป็นการตอบสนอง HTTP และส่งไปยังไคลเอนต์
คำขอที่ไม่ตรงตามเกณฑ์จะถูกประมวลผลโดยเซิร์ฟเวอร์ HTTP ดังนั้นจะต้องกำหนดค่าไซต์สำหรับแต่ละเกตเวย์
จะต้องเข้าถึงโฟลเดอร์และไฟล์ทั้งหมดที่มีอยู่ในไซต์ไม่ได้ทั้งหมด ฐานข้อมูล ตาราง และโปรแกรมเป็นเพียงตัวอย่างบางส่วน
Fox Pages Server มีระบบควบคุมการเข้าถึงที่อนุญาตการเข้าถึงที่ได้รับอนุญาตหรือการบล็อกโฟลเดอร์ไซต์โดยสมบูรณ์
การควบคุมการเข้าถึงได้รับการกำหนดค่าโดยการเพิ่ม แก้ไข หรือลบเร็กคอร์ดจากตาราง REALMS.DBF, USERS.DBF และ REALMUSER.DBF
ตาราง REALM.DBF ตั้งค่าการเข้าถึงสำหรับโฟลเดอร์ไซต์
ตาราง USERS.DBF กำหนดผู้ใช้ที่จะสามารถเข้าถึงโฟลเดอร์ได้
ตาราง REALMUSER.DBF แสดงรายการผู้ใช้ที่มีโฟลเดอร์
เป็นกลไกของเบราว์เซอร์ที่ป้องกันไม่ให้ต้นทาง (โดเมน) เข้าถึงทรัพยากรในแหล่งที่แตกต่างกัน (โดเมนอื่น) โดยไม่ได้รับอนุญาต
กำหนดค่าการอนุญาตโดยการเพิ่ม แก้ไข หรือลบบันทึกในตาราง CORS.DBF
ป้อนไซต์ที่จะให้สิทธิ์ในช่องไซต์ ฟิลด์นี้เกี่ยวข้องกับตาราง SITES.DBF
ป้อนต้นทาง (โดเมนที่ได้รับอนุญาต) ในช่อง ORIGIN หากเติมด้วย "*" ต้นทางใดๆ จะได้รับอนุญาต
ป้อนทรัพยากรในช่อง URI หากกรอกด้วย "*" จะอนุญาตให้ปฏิเสธได้
ช่อง GET, POST, PUT, DELETE, HEAD และ OPTIONS จะกำหนดว่าวิธีการใดที่ได้รับอนุญาต
ช่อง HEADER จะต้องเติมด้วยส่วนหัว HTTP ที่อนุญาต ควรคั่นด้วยเครื่องหมายจุลภาคตามด้วยช่องว่าง
Fox Pages Server สามารถกำหนดค่าให้ใช้งานผ่านเว็บเซิร์ฟเวอร์อื่นได้โดยใช้โปรโตคอล FastCGI
ไฟล์ nginx.conf ที่อยู่ในโฟลเดอร์ NGINX เป็นเทมเพลตการกำหนดค่าสำหรับเซิร์ฟเวอร์ NGinX คัดลอกไฟล์นี้ไปยังโฟลเดอร์ CONF ที่ติดตั้ง NGinX และกำหนดค่าพารามิเตอร์ ROOT ด้วยเส้นทางแบบเต็มของโฟลเดอร์ไฟล์ไซต์
หากต้องการกำหนดค่า Fox Pages Server ให้ใช้โปรโตคอล FastCGI ให้กรอกฟิลด์ TYPE ของตาราง SERVERS.DBF ด้วย "FCGI"
เนื่องจากเว็บเซิร์ฟเวอร์จะต้องให้ข้อมูลทั้งหมดที่จำเป็นสำหรับการประมวลผลคำขอ จึงไม่จำเป็นต้องกำหนดค่าไซต์ เกตเวย์ หรือความปลอดภัย
หลังจากเริ่มต้นเซิร์ฟเวอร์ ให้ใช้เบราว์เซอร์ใดก็ได้โดยพิมพ์ที่อยู่เซิร์ฟเวอร์ที่กำหนดค่าไว้ (เช่น http://localhost, https://localhost)
ในการเข้าสู่ไซต์ทดลองมีสองบัญชี หนึ่งบัญชีสำหรับลูกค้าและอีกหนึ่งบัญชีสำหรับตัวแทน
บัญชีของลูกค้าเข้าถึงพื้นที่ลูกค้า หากต้องการเข้าถึง ให้ใช้อีเมล [email protected] และรหัสผ่าน 123456
บัญชีตัวแทนเริ่มการสมัครสำหรับลูกค้าและการลงทะเบียนคำสั่งซื้อ หากต้องการเข้าถึงให้ใช้อีเมล [email protected] และรหัสผ่าน 123456
เพจไดนามิกใช้ภาษาการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ในการพัฒนาเว็บไซต์หรือแอปพลิเคชันอินเทอร์เน็ต
Fox Server Pages ทำให้สามารถพัฒนาเพจเหล่านี้ได้โดยใช้ทรัพยากรของเพจคงที่ของการพัฒนา (เช่น HTML, CSS, Javascript) ด้วยคุณสมบัติการเขียนโปรแกรม Visual Fox Pro (เช่น การเขียนโปรแกรมภาษาคอนโซล ฐานข้อมูล)
ใน Fox Pages Server หน้า HTML จะถูกแปลงเป็นไฟล์โปรแกรม PRG และคอมไพล์เป็นไฟล์ FXP ที่คอมไพล์แล้ว ดังนั้นการประมวลผลหน้าจึงรวดเร็วมากและไม่มีข้อจำกัดในการใช้ล่ามอื่น
ในขั้นตอนการคอมไพล์เฉพาะโค้ดระหว่างแท็ก <FPS>
และ </FPS>
เท่านั้นที่จะได้รับการประมวลผล ส่วนที่เหลือจะถูกส่งเป็นเนื้อหาคงที่
ตัวอย่างของเนื้อหาแบบคงที่
<HTML>
Hello World
</HTML>
ผลลัพธ์:
สวัสดีชาวโลก
ตัวอย่างของโปรแกรมที่เป็นเนื้อหาคงที่เนื่องจากไม่มีแท็ก <FPS>
และ </FPS>
<HTML>
for nCounter = 1 to 3
Hello World
next
</HTML>
ผลลัพธ์:
สำหรับ lnCounter = 1 ถึง 3
สวัสดีชาวโลก
ต่อไป
ตัวอย่างการใช้แท็ก <t>
และ <e>
มีหน้าที่ในการส่งข้อความและสำนวนคงที่
<HTML>
<FPS>
cWorld = "World"
for nCounter = 1 to 3
<t>Hello </t><e>cWorld</e><br>
next
</FPS>
</HTML>
ผลลัพธ์:
สวัสดีชาวโลก
สวัสดีชาวโลก
สวัสดีชาวโลก
ตัวอย่างการใช้โปรแกรมรวมแท็ก HTML อื่น ๆ ทุกบรรทัดที่ขึ้นต้นด้วยแท็ก HTML หรือโดยแท็ก <t>
จะถูกส่งไป
<HTML>
<FPS>
<b>Begin</b><br><br>
cWorld = "World"
for nCounter = 1 to 3
<b><t>Hello </t><e>cWorld</e></b><br>
next
<br>
<t>End</t>
</FPS>
</HTML>
ผลลัพธ์:
เริ่ม
สวัสดีชาวโลก
สวัสดีชาวโลก
สวัสดีชาวโลก
จบ
REST (Representational State Transfer) เป็นรูปแบบสถาปัตยกรรมที่สนับสนุนว่าเว็บแอปพลิเคชันควรใช้ HTTP ตามที่ตั้งใจไว้แต่แรก โดยที่คำขอ GET, PUT, POST และ DELETE ควรใช้สำหรับการสืบค้น การเปลี่ยนแปลง การสร้าง และการลบ ตามลำดับ
Fox Pages Server ประมวลผลคำขอเป็น REST เมื่อใดก็ตามที่ส่วนหัว Accept คือ "application/json" หรือ "application/xml"
รายละเอียดเพิ่มเติมสามารถพบได้ในแอปพลิเคชันที่มีอยู่ในไซต์สาธิตเมื่อลงชื่อเข้าใช้ด้วยบัญชีตัวแทน
ด้วย Fox Pages Server คุณสามารถสร้าง REST API เพื่อรองรับคำขอของแพลตฟอร์ม BOA คุณสามารถสร้างเว็บแอปพลิเคชันที่สมบูรณ์ได้ใน Visual Foxpro Fox Server Pages จะตอบสนองต่อคำขอที่ส่งโดย BOA ข้อมูลที่ส่งระหว่าง Fox Server Pages และ BOA นั้นง่ายต่อการเข้าใจสตริง JSON
หลังจากตั้งค่าเพจ Visual Fox ของคุณแล้ว คุณสามารถทดสอบพลังของชุดค่าผสมนี้ได้ เริ่มการสาธิตบน https://www.BOA-platform.com หรือโดยลิงก์โดยตรงนี้: http://demo.boa-platform.com เมื่อหน้าจอเข้าสู่ระบบปรากฏขึ้น คุณสามารถใช้สิ่งต่อไปนี้:
ผู้ใช้: en
รหัสผ่าน: en01
URL ของเซิร์ฟเวอร์ API: http://localhost/boa นี่คือ Fox Pages Server ในพื้นที่ของคุณ
ดูโฟลเดอร์ demo/boa สำหรับซอร์สโค้ดตัวอย่าง
สำหรับการรองรับโปรโตคอล FastCGI การประมวลผลคุณสมบัติของออบเจ็กต์คำขอและการตอบสนองมีการเปลี่ยนแปลง
ในส่วนหัวเวอร์ชัน 2.0 ที่มีเครื่องหมายยัติภังค์ (เช่น Accept-Encoding) ได้ลบยัติภังค์ออก (เช่น AcceptEnconding) ในเวอร์ชัน 3.0 ยัติภังค์เหล่านี้จะเปลี่ยนเป็นขีดเส้นใต้ (เช่น Accept_Encoding)
Fox Pages Server เป็นซอฟต์แวร์โอเพ่นซอร์สฟรี ใบอนุญาตอยู่ในไฟล์ใบอนุญาต
ส่วนประกอบที่ใช้สำหรับการเชื่อมต่อคือ Socketwrench ของบริษัท Catalyst Development Corporation (www.sockettools.com)
ส่วนประกอบนี้เผยแพร่ในเวอร์ชันฟรีและเชิงพาณิชย์ เวอร์ชันฟรีไม่รองรับการเชื่อมต่อที่ปลอดภัย (SSL/TLS)
Fox Pages Server เวอร์ชันพัฒนาได้รับการกำหนดค่าให้ใช้ SocketWrench เวอร์ชันฟรี นี่จะเป็นข้อจำกัดเฉพาะในกรณีที่จำเป็นต้องใช้การเชื่อมต่อที่ปลอดภัยในสภาพแวดล้อมการพัฒนา
หากต้องการใช้ SocketWrench เวอร์ชันเชิงพาณิชย์ คุณต้องซื้อใบอนุญาต เนื่องจาก Fox Pages Server ไม่มีใบอนุญาตนี้
การกำหนดค่าเวอร์ชันที่ใช้ ฟรีหรือเชิงพาณิชย์ หรือเวอร์ชันของ SocketWrench จะอยู่ในไฟล์ FOXPAGES.H ของโฟลเดอร์ CORE ดังนี้:
//ประแจบ๊อกซ์
#กำหนดความเสรีในการใช้งาน
#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.6"
//ประแจบ็อกซ์ 8
//#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.8"
//#DEFINE CSWSOCK_LICENSE_KEY "ใส่ใบอนุญาตรันไทม์ของคุณที่นี่"
//ประแจบ็อกซ์ 9
//#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.9"
//#DEFINE CSWSOCK_LICENSE_KEY "ใส่ใบอนุญาตรันไทม์ของคุณที่นี่"
คุณต้องคอมไพล์โครงการใหม่หลังจากที่คุณเปลี่ยนการตั้งค่าเหล่านี้
มัลติเธรด - VFP2C32T.FLL - Christian Ehlscheid
การบีบอัด - VFPการบีบอัด - Craig Boyd
การเข้ารหัส - VFPEncryption - Craig Boyd
JSON Parser - เวอร์ชันไลบรารีที่แก้ไข - Craig Boyd
ซ็อกเก็ต - ประแจซ็อกเก็ต - การพัฒนาตัวเร่งปฏิกิริยา
หากโครงการนี้มีประโยชน์สำหรับคุณ ลองพิจารณาการบริจาค