แม้จะมีความไม่แน่นอนบางอย่างที่อาจเกิดขึ้นกับ MySQL แต่โดยส่วนตัวแล้วฉันยังชอบทำงานกับ DB นี้เพื่อใช้งานอื่น ฉันไม่มีอะไรต่อต้าน Postgre ฉันใช้ MySQL มาตลอดชีวิตและจนถึงตอนนี้ฉันก็ไม่มีเหตุผลที่จะคิดใหม่ในการใช้งาน
คราวนี้ฉันจะสอนวิธีติดตั้งเซิร์ฟเวอร์ FTP แต่ไม่เพียงแค่นั้นฉันจะสอนคุณด้วยวิธีที่ไม่ซับซ้อนวิธีทำให้ผู้ใช้รหัสผ่านและข้อมูลผู้ใช้อื่น ๆ ถูกเก็บไว้ในฐานข้อมูล MySQL ไม่ใช่ในบัญชี ท้องถิ่น
ทำไมทำแบบนี้
ง่ายเพราะเมื่อทำการสำรองข้อมูลติดตั้งเซิร์ฟเวอร์ใหม่หรือการเปลี่ยนแปลงที่สำคัญอื่น ๆ การย้ายบริการจะทำได้ง่ายเพียงแค่คัดลอกไฟล์กำหนดค่าและส่งออกฐานข้อมูล MySQL ไปยัง FTP
เพื่อให้บรรลุสิ่งนี้เราจะใช้ FTPd บริสุทธิ์, เอาล่ะ ... มาเริ่มกันเลย🙂
การติดตั้งบริการ FTP ด้วย Pure-FTPd
1. สิ่งแรกที่ต้องทำคือติดตั้งแพ็คเกจ: ftpd-mysql บริสุทธิ์
ใน distros เช่น debian หรืออนุพันธ์: ความถนัดติดตั้ง pure-ftpd-mysql
2. เมื่อติดตั้งแล้วเราจะเริ่มบริการ แต่เราต้องหยุดเพื่อหยุดมันในระบบเช่น Debian หรืออนุพันธ์ก็เพียงพอที่จะ:
/etc/init.d/pure-ftpd-mysql stop
อย่างไรก็ตามฉันปล่อยให้คุณมีสายที่จะหยุดบริการไม่ว่าคุณจะใช้ Distro:
ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill
การเตรียมเงื่อนไขบนเซิร์ฟเวอร์ MySQL
ฉันได้อธิบายไปแล้วเมื่อไม่นานมานี้ว่าจะสร้างฐานข้อมูลผู้ใช้และให้สิทธิ์ผู้ใช้ในฐานข้อมูลได้อย่างไร: ผู้ใช้และสิทธิ์ใน MySQL
มาดูกันว่าเราจะทำอะไรที่นี่? ...
1. เราจะสร้างฐานข้อมูลใช่ แต่ก่อนอื่นเราเข้าถึง MySQL:
mysql -u root -p
2. เมื่ออยู่ใน MySQL เราจะสร้างฐานข้อมูลต่อไป myftpdb:
CREATE DATABASE myftpdb;
3. ตอนนี้เราจะสร้างผู้ใช้ myftpuser และเราจะให้สิทธิ์ในการใช้ผู้ใช้บนฐานข้อมูลที่เราเพิ่งสร้างขึ้นผู้ใช้รายนี้จะมีเป็นรหัสผ่าน รหัสผ่าน myftp:
CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;
4. พร้อมแล้วเราได้สร้างฐานข้อมูลผู้ใช้และกำหนดสิทธิ์ ตอนนี้เราต้องนำเข้าฐานข้อมูลเริ่มต้น (หรือสะอาด) เพื่อให้เสร็จสมบูรณ์ ในการดำเนินการนี้ให้ออกจาก MySQL ก่อน:
exit;
ตอนนี้มาดาวน์โหลดฐานข้อมูลเริ่มต้นที่ฉันเสนอให้คุณ:
หรือบนเซิร์ฟเวอร์ใช้บรรทัดต่อไปนี้:
wget http://ftp.desdelinux.net/myftpdb.sql
พร้อมแล้วเรามีอยู่แล้วบนเซิร์ฟเวอร์ของเราตอนนี้เหลือเพียงการนำเข้าข้อมูลของคุณ:
mysql -u root -p myftpdb < myftpdb.sql
และพร้อม!
5. และทั้งหมดนี้จะต้องมีเงื่อนไขของ MySQL พร้อมใช้งาน
การเชื่อมโยง FTP กับ MySQL
เราได้ติดตั้งบริการ FTP ไว้แล้วบริการ MySQL ติดตั้งและด้วยชุดฐานข้อมูลของเรา ... ตอนนี้เราแค่ต้องการ เข้าร่วมบริการ FTP กับ MySQL.
1. ก่อนอื่นเราต้องดาวน์โหลดไฟล์กำหนดค่าที่เราจะใช้สำหรับดังกล่าวข้างต้น ในเทอร์มินัลเซิร์ฟเวอร์ให้ใส่บรรทัดต่อไปนี้:
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf
2. ตอนนี้เราเริ่มบริการ FTP โดยบอกให้ใช้เพื่อตรวจสอบผู้ใช้ MySQL และเราจะระบุด้วยว่าไฟล์กำหนดค่าใดที่จะใช้เชื่อมต่อกับ MySQL:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
และ voila 😀
เท่านี้ก็เพียงพอแล้วที่จะติดตั้งเซิร์ฟเวอร์ FTP ของเราเองโดยตรวจสอบความถูกต้องด้วยฐานข้อมูล MySQL
หากคุณต้องการเมื่อใดก็ตามที่เซิร์ฟเวอร์เริ่มทำงานโดยอัตโนมัติเซิร์ฟเวอร์จะเริ่มบริการ FTP คุณต้องใส่ไฟล์ /etc/rc.local บรรทัดที่เราใช้เพื่อเรียกใช้ FTP นั่นคือเราใส่เข้าไป /etc/rc.local นี้:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
อย่างไรก็ตามคุณสามารถเข้าถึง FTP โดยใช้เบราว์เซอร์ใดก็ได้เช่นเดียวกับไคลเอนต์ FTP เช่น Filezilla ... และไม่เพียงแค่นั้นการใช้เบราว์เซอร์ไฟล์เช่น Nautilus, Dolphin หรือ PCManFM คุณยังสามารถดาวน์โหลดและอัปโหลดไฟล์😀
ทดสอบผู้ใช้ที่อยู่ในฐานข้อมูล
ชื่อผู้ใช้: testuser
รหัสผ่าน: รหัสผ่านทดสอบ
จะจัดการผู้ใช้ FTP ได้อย่างไร?
เมื่อพิจารณาว่าเป็นฐานข้อมูล MySQL ดังที่ได้กล่าวไปแล้ว ... การใช้ PHPMyAdmin หรือ Adminer ก็เพียงพอแล้ว เพียงใช้แอปพลิเคชันที่คุณชื่นชอบเพื่อจัดการฐานข้อมูลซึ่งมีเพียงตารางเดียว: ผู้ใช้ …และในนั้นคือผู้ใช้นี่คือภาพหน้าจอ:
หากคุณต้องการสร้างผู้ใช้ใหม่คุณสามารถทำซ้ำหรือโคลนบรรทัดที่มีอยู่และเปลี่ยนข้อมูลที่จะแตกต่างกันระหว่างผู้ใช้ทั้งสองคนที่นี่ฉันจะแสดงภาพหน้าจอ:
อืม ... ไม่มีอะไรจะเพิ่มอีกแล้ว🙂
ฉันหวังว่านี่จะเป็นประโยชน์สำหรับคุณและหากคุณมีคำถามหรือข้อเสนอแนะโปรดแจ้งให้เราทราบ
ความนับถือ
PD: ในบทช่วยสอนนี้เราใช้รหัสผ่านที่บันทึกไว้ในฐานข้อมูลเป็นข้อความธรรมดาหากคุณต้องการความปลอดภัยมากขึ้นขอแนะนำให้คุณลองใช้ md5 😉
ดีมาก!!! สองสามสัปดาห์ก่อนฉันกำลังติดตั้งสิ่งนี้ แต่ด้วย vsftpd และฉันไม่มั่นใจดังนั้นฉันจะลองดูว่ามันเป็นอย่างไร ขอขอบคุณ
ขอบคุณเพื่อน.
vsftpd ฉันจำไม่ได้ว่าครั้งสุดท้ายที่ใช้มันคือเมื่อไหร่ ... มันจะกี่ปีแล้ว ... ถ้าฉันเคยใช้ HAHA ตอนนี้กับ PureFTPd ดีใจมากกว่า😀
ผลงานดีมาก!
ขอบคุณ compa 😀
คุณทำในสิ่งที่ทำได้ฮ่า ๆ ….
Uuumm น่าสนใจ ... ส่ง IP ของ DB ที่ฉันต้องการให้มีชุดผู้ใช้และรหัสผ่านนั้นอยู่ในมือ😉
อย่าชั่วเลยมนุษย์
ฉันไม่เข้าใจฮิฮิ ... คุณกำลังพูดถึง IP กับ DB อะไร?
หากคุณหมายความว่าข้อมูลเหล่านี้ที่ฉันใส่ในบทช่วยสอนอาจอยู่บนเซิร์ฟเวอร์ด้วยใช่คุณพูดถูก ... พวกเขาอยู่ในบริการ FTP บนพีซีเสมือนบนแล็ปท็อปของฉันมีไฟร์วอลล์ที่ดีมาก (iptables) ดังนั้น… HAHAHAHAHA แน่นอนว่าพวกเขาไม่ได้ชั่วร้าย LOL !!!
Joroñaโจโรน่า…. มันจะซับซ้อนกว่าที่ดูเหมือนว่าจะใช้ประโยชน์จากช่องโหว่บางอย่างและดักจับข้อมูลนั้น😉
น่าสนใจมาก!! 🙂
ขอขอบคุณ
นี่คือสิ่งที่ฉันพยายามทำให้เราแตกต่างจากเว็บไซต์อื่น ๆ ... ที่เราพยายามไม่ให้ข่าวมากนัก แต่เป็นบทความทางเทคนิค😀
เร็วแค่ไหนเมื่อเทียบกับ Samba? (เครือข่ายท้องถิ่นเท่านั้น)
samba และ ftp นั้นเป็น 2 สิ่งที่แตกต่างกัน ftp เป็นโปรโตคอลที่จริงจังและ smb เพียงเพื่ออำนวยความสะดวกในการแชร์ระหว่าง win และ linux
หากคุณกำลังมองหาประสิทธิภาพบนเครือข่ายให้ใช้บริการ FTP หรือใช้แซมบ้าก็ไม่มีปัญหา
แน่นอน
สมมติว่า FTP นั้นร้ายแรงกว่า Samba เล็กน้อยอย่างน้อยก็ในความคิดของฉัน
ฉันยังไม่ได้ทำการวัดประสิทธิภาพเลย แต่ FTP อาจจะเร็วกว่าเล็กน้อย
ขอขอบคุณ. ฉันใช้ Samba เพื่อให้จากคอนโซล Wii ของฉัน (โดยใช้ wiimc) ฉันสามารถดูภาพยนตร์และซีรีส์ที่ฉันดาวน์โหลดลงในคอมพิวเตอร์ได้ แต่ wiimc ยังสามารถเชื่อมต่อกับเซิร์ฟเวอร์ ftp ฉันใช้ Samba เพราะมันง่ายที่สุด แต่ฉันก็รู้สึกทึ่งเสมอว่า ftp จะเร็วกว่าไหม ฉันจะต้องพยายาม
คุณสามารถติดตั้ง Apache บนพีซีของคุณได้เช่นกันดังนั้น Wii จะเชื่อมต่อสิ่งนี้จะต้องเร็วกว่าแซมบ้า ... และง่ายกว่าในการกำหนดค่ามากกว่า FTP 😀
wiimc (เครื่องเล่น Wii Media) ยอมรับการเชื่อมต่อ Samba และ FTP เท่านั้น
ยอดเยี่ยม. บทความประเภทนี้ (และไซต์โดยทั่วไป) ต้องการเพียงบางสิ่งเท่านั้นที่จะทำให้ทุกอย่างสมบูรณ์แบบ เทมเพลต CSS เพื่อให้สามารถพิมพ์บทความเป็น PDF หรือบนกระดาษ
ฉันไม่รู้ว่ามันจะเป็นของฉันเองหรือเปล่า แต่ปัญหาใหญ่ของเรื่องนี้คือผู้ใช้สามารถเข้าถึงไดเร็กทอรีทั้งหมดได้แม้ว่าฉันจะให้ไดเร็กทอรีเฉพาะเช่น "/ var / www / user_site" ก็ตามหากเชื่อมต่อโดย ftp สามารถเข้าถึงได้ทุกที่จากพีซีของฉัน¬¬
ที่ไม่ปลอดภัยฮ่าฮ่า
นี่คือ !!!
เพื่อป้องกันไม่ให้ผู้ใช้ที่เราสร้างขึ้นไม่สามารถนำทางผ่านระบบทั้งหมดของเราเราต้องเพิ่มพารามิเตอร์ "-A" เมื่อเปิดตัว pure ...
ดังนั้นสิ่งที่เราเพิ่มใน /etc/rc.local ที่คุณใส่ในบทช่วยสอนก็คือสิ่งนี้
pure-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
และคุณต้องแทนที่ด้วยสิ่งนี้:
pure-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
เป็นที่ชื่นชมหรือไม่ ... บรรทัดใหม่นี้มีพารามิเตอร์ -A เพื่อ จำกัด ไดเร็กทอรีที่เรากำหนดเท่านั้นและไม่มีสิ่งอื่นใดสามารถสร้างได้ แต่ไม่สามารถเพิ่มระดับได้
D: fptd บริสุทธิ์ที่น่ารักนี้
ขอบคุณสำหรับเคล็ดลับ😀
สวัสดีเป็นไปได้ที่จะใช้โควต้าในการใช้งาน MySQL และ FTP นี้ขณะนี้ฉันมีเซิร์ฟเวอร์ ftp ที่มี vsftpd และฉันไม่มีปัญหากับโควต้า แต่การเป็นผู้ใช้เสมือน (สร้างใน mysql) โควต้าจะถูกต้องหรือไม่ และอย่างที่สองคือที่เก็บไฟล์ที่อัปโหลดโดยผู้ใช้นั่นคือไดเรกทอรีของผู้ใช้แต่ละคน
ในทางทฤษฎีคุณสามารถใช้โควต้าได้ในความเป็นจริงฐานข้อมูลมีฟิลด์ที่สร้างขึ้นและไฟล์การกำหนดค่าของบริการ FTP มีการสืบค้นที่กำหนดไว้สำหรับสิ่งนี้ซึ่งในความเป็นจริงฉันไม่ได้ทดสอบสิ่งนี้😉
เกี่ยวกับตำแหน่งที่ผู้ใช้จะวางไฟล์คุณกำหนดไว้ในฟิลด์ที่ 5 ดูภาพหน้าจอ: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg
ขอบคุณมากสำหรับความคิดเห็นของคุณฉันจะทดสอบระบบนี้บนเซิร์ฟเวอร์ทดสอบและแสดงความคิดเห็นเกี่ยวกับผลลัพธ์หวังว่าจะทำได้เพราะเป็นวิธีที่ดีในการมีทุกอย่างตามลำดับและด้วย RAID คุณจะมีระบบสำรองที่เสถียร : ง.
ขอบคุณสำหรับความคิดเห็น🙂
ฉันมีคำถามฉันได้จัดการติดตั้ง pure-ftp ด้วย mysql และโควต้าแล้วปัญหาคือฉันจะระงับบัญชีจากตาราง mysql ได้อย่างไรโดยไม่ต้องแก้ไขรหัสผ่านผู้ใช้หรือไฟล์ที่อัปโหลด
ฉันคิดได้สองวิธีวิธีที่ง่ายที่สุดคือการเปลี่ยนค่าของ Status จาก 1 ถึง 0 ในทางทฤษฎีหากอยู่ที่ 0 บัญชีจะถูกปิดใช้งานให้ลองทำเช่นนี้แล้วบอกฉัน🙂
Roberto คุณจัดการกำหนดค่าธรรมเนียมโดยใช้สถานที่นี้ได้อย่างไร? กรุณาแบ่งปันข้อมูล
เข้าขั้นดีมาก !!
Birkhoff ในบล็อกส่วนตัวของฉันฉันสร้างหัวข้อเกี่ยวกับเรื่องนั้นฉันทิ้งลิงค์ไว้ให้คุณตรวจสอบ:
http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/
ทักทาย:
ฉันพยายามทำตามทุกอย่าง แต่ได้รับข้อผิดพลาด 501 และที่สำคัญที่สุดคืออ้างถึงข้อเท็จจริงที่ว่ารหัสผ่านไม่ถูกต้องเมื่อฉันรู้ว่าใช้ได้