A-AA+then

ftp กับ windows server 2008

5,233

    
    ผมใช้ Windows server 2008 เป็น Web server และ ftp server
    โดยใช้ Apache 2.2 เป็น Web service 
    ในโปรเจคที่ทำต้องมีการ ftp เพื่อ upload ไฟล์ขึ้นไปเก็บไว้ในโฟลเดอร์ภายในโปรเจคด้วย (รูป)
    
    ปัญหาก็คือ เมื่อเอา script PHP ไปไว้บน Windows server 2008 แล้วทดสอบดูจะไม่เกิดผลใดๆเลย
    การทดสอบอีกแบบนึงก็คือ ให้เครื่องผมเป็น ftp server และ script PHP อยู่ที่ Windows server 2008 (เหมือนเดิม) ก็ไม่ทำงานเช่นกัน ผมเลยคืดว่า น่าจะมีปัญหาที่ Apache ที่ทำงานบน Windows server 2008
    
    ถ้าเอา script PHP ไว้ที่เครื่องผมเอง และ Windows server 2008 เป็น ftp server ก็สามารถใช้งาน script ได้ปกติ
    
    ตอนแรกใช้ FTP7 คู่กับ IIS7 ของ Windows เองก็ติดปัญหาเดียวกัน และล่าสุดใช้ FileZilla Server แทน
    โดยที่การตั้งค่าก็ทำได้โดยปกติ  สามารถใช้ Command line ของ Windows เอง (ทั้งตัว server และ client) ftp ได้ปกติครับ
    หรือใช้ Browser หรือใช้ Explorer ก็ทำงานได้อย่างถูกต้อง
    
    ผมทำการ debug หลายๆแบบดู ได้ข้อสรุปว่าใน script PHP บันทัดที่ใช้ฟังก์ชั่น ftp_connect มันไม่ทำงานตั้งแต่บันทัดนี้ ยกตัวอย่างเช่น
    
    $ftp_server "xxx";//<---- ชื่อ server
    $conn_id ftp_connect($ftp_server, 21, 10);
    
    ค่า $conn_id เป็นค่าว่าง ในหน้าจอของ FileZilla Server ไม่มี log เกิดขึ้นเลย แต่ Set time out 10 นั่นก็ทำงานปกตินะครับ
    จึงขอถามผู้ที่ทราบถึงข้อผิดพลาดครั้งนี้ของผม เพื่อแก้ไขให้มันทำงานได้ด้วยครับ Help me please!!!

6 ความคิดเห็น

Server ถูกหรือเปล่า ไม่ต้องมี ftp:// นำหน้านะครับ

ลองกำหนด Server เป็น ip

หรือ Port ถูกต้องหรือเปล่า

Firewall เปิดอยู่หรือเปล่า

Antivirus เปิดอยู่หรือเปล่า

ลองใช้ฟังก์ชั่น ftp_ssl_connect() แทน

ลองกำหนด error_reporting(0); ก่อนเรียกใช้งานฟังก์ชั่น ftp ดูเพื่อดูว่ามี error อะไรเกิดขึ้นบ้าง
1

    ขอบคุณมากครับ....
    ข้อ 1-3 ทดสอบแล้วไม่พลาดแน่นอน
    ข้อ 4 คิดว่าน่าจะไม่มีปัญหาครับ ผมไป allow service ที่เกี่ยวข้อง แล้วก็ทดสอบ ftp จากทุกเครื่องก็ทำงานได้ นอกจาก php ที่อยู่บน Host เองที่ไม่ทำงาน แต่ script PHP เดียวกันพออยู่บนเครื่องผมเองทำงานปกติ (เปลี่ยนชื่อ Host พอร์ต user pass แล้วก่อนทดสอบ)
    ข้อ 5 Anti virus ก็ไม่มีปฏิกิริยานะครับ ที่ทำงานผมใช้ Anti virus แบบลิขสิทธิ์ถูกต้อง เป็นแบบ Server anti virus เพราะฉะนั้นถ้าโดนบล็อกน่าจะโดนหมด
    
    พรุ่งนี้จะไปลอง ข้อ 6-7 ครับ อยากจะเห็น error massage มากเลย ไม่งั้นไปต่อลำบากจริงๆ ค้นใน google มีข้อมูลน้อยมาก ส่วนใหญ่จะเป็นการกล่าวถึงการตั้งค่า ftp ..... ไปเจอเรื่อง Firewall เลย Allow service ของ FileZilla Server ด้วย ตอนแรกผมเล็งไปในเรื่องของค่า config ของ Apache เองเลยที่ทำงานไม่ค่อยสมบูรณ์ใน Windows server 2008 (อันนี้เดา)
    
    ผมใช้ Script ของ AjaxUpload จากเวปคุณ Goragod นี่แหละ ใช้ได้ดีเลยทีเดียว ขอบพระคุณมากครับ

2

อ้างจากคำตอบที่ #2ผมใช้ Script ของ AjaxUpload จากเวปคุณ Goragod นี่แหละ ใช้ได้ดีเลยทีเดียว ขอบพระคุณมากครับ

เอ ไม่รู้อันไหนครับ ถ้าเป็น script Ajax อัปโหลด อันโบราณ ที่มีไฟล์ Browser ด้วย อันนั้นผมไม่แน่ใจนะครับ เนื่องจากผมเคยได้รับรายงานทำนองนี้มาครั้งนึงนานแล้วซึ่งผมไม่รู้ว่าคนที่นำไปใช้แก้ไขอย่างไร หรือว่าใช้ได้หรือเปล่า ลองค้นหาดูในบอร์ดนะครับ

เท่าที่ทดสอบบน Server ผมเองมันก็ปกติ (Linux บน Server จริงๆ และ Windows บน Server จำลอง) เลยจำไม่ได้ว่าแก้ไขอะไรไปยังไง
3

    ผมใช้อันนี้นะ...
    http://www.goragod.com/knowledge/2/AJAX Upload.html
    คือผมเอามาประกอบกับหน้า Ajax ที่ผมเขียนอยู่เลยต้องเอาหน้า index ออกแล้วเรียกสคริปจากหน้าที่ผมทำเอง (มันโหลดมาด้วย Ajax) ก็ Work นะครับ ... เพียงแต่ยังไม่ทราบว่าเป็นเพราะอะไรเวลาเอาไปวางบนโฮสจริงมันไม่ทำงาน ก็เลยเขียนสคริปง่ายๆลองทดสอบการ ftp ดู ปรากฎว่ามันไม่ทำงานตั้งแต่ขั้นตอนการ connect แล้ว
    
    คิดว่าสคริปน่าจะไม่มีปัญหานะครับ น่าจะเป็นที่ค่ารกำหนดในส่วนของ server มากกว่า เดี๋ยวถ้าได้ความอย่างไรแล้วจะเอามาโพสเพิ่มเติมครับ

4

    สวัสดีครับ....
    ขออภัยที่มารายงานผลช้าไปหน่อย หลังจากที่ทดลองทำไปหลายอย่าง จนกระทั่งนึกเอะใจ ด้วยความเลินเล่อของกระผมเอง ในไฟล์ host ผมตั้งค่ากลับไปกลับมาเพื่อทดลองบางอย่างมากไปหน่อย มันเลยขัดกับที่ผมกำหนดค่าชื่อโฮสที่ใช้ ftp
    สรุปว่า ผมเรียกชื่อโฮสผิดนั่นเองมันเลยไม่ตอบสนองกับ Script PHP ตั้งแต่ขั้นตอนการติดต่อโฮสเลย ตอนนี้เลยกำหนดในไฟล์ host ดังนี้ครับ
    
    127.0.0.1      localhost
    127.0.0.1      xxxxx        <----ชื่อโฮสครับ
    
    ตอนนี้เลยใช้ได้ทั้ง IP และ ชื่อโฮส  นอกนั้นทำงานได้ปกติครับ ผมเพิ่มในส่วนของการเปลี่ยนชื่อไฟล์ที่อัพโหลดขึ้นไปและแก้ไขเรื่องการแสดงผลนิดหน่อยครับ
    
    ขอบพระคุณเป็นอย่างสูงสำหรับคำแนะนำทั้งหลาย

5

ขอบคุณครับที่มาแจ้งผล ซึ่งเป็นสิ่งที่ดี อยากให้ทุกคนเอาเยี่ยงอย่าง เพราะมันจะมีประโยชน์อย่างยิ่งกับคนที่เจอปัญหาคล้ายๆกันครับ

และที่น่าชื่นใจเป็นอย่างยิ่งก็คือ การให้ข้อมูล รวมถึงการ ทดลอง แก้ไข ปรับปรุง และการสรุปข้อมูล ครับ yesyesyes
6
^