Nasıl Yapılır: MySQL veritabanını kullanan FTP hizmeti

MySQL'i çevreleyen bazı belirsizliklere rağmen, şahsen ben hala bu DB ile çalışmayı başka birini kullanmak yerine tercih ediyorum. Postgre'ye karşı hiçbir şeyim yok, MySQL'i tüm hayatım boyunca kullandım ve şimdiye kadar kullanımını yeniden düşünmek için hiçbir nedenim yoktu.

Bu sefer size bir FTP sunucusunun nasıl kurulacağını öğreteceğim, ancak sadece bu değil, size çok karmaşık olmayan bir şekilde, kullanıcıların, şifrelerin ve diğer kullanıcı verilerinin hesaplarda değil de bir MySQL veritabanında nasıl saklanacağını öğreteceğim. yerel.

Bunu neden böyle yapıyorsun?

Basittir, çünkü bir yedekleme yaparken, bir sunucuyu yeniden yüklerken veya başka herhangi bir önemli değişiklik yaparken, hizmeti taşımak bir yapılandırma dosyasını kopyalamak ve MySQL veritabanını FTP'ye aktarmak kadar basit olacaktır.

Bunu başarmak için kullanacağız Saf-FTPd, peki ... hadi başlayalım 🙂

FTP hizmetini Pure-FTPd ile kurma

1. Yapılacak ilk şey paketi kurmaktır: saf-ftpd-mysql

Gibi dağıtımlarda Debian veya türevler: yetenek yüklemek pure-ftpd-mysql

2. Kurulduktan sonra hizmeti başlattık, ancak Debian veya türevleri gibi sistemlerde durdurmak için onu durdurmalıyız:

/etc/init.d/pure-ftpd-mysql stop

Ancak, kullandığınız dağıtımdan bağımsız olarak size hizmeti durduracak bir satır bırakıyorum:

ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill

Bu satırı ayrıntılı olarak anlamak istiyorsanız okuyun Bu makale

MySQL sunucusundaki koşulları hazırlama

Çok geçmeden bir veritabanının, bir kullanıcının nasıl oluşturulacağını ve veritabanında bu kullanıcıya izinlerin nasıl verileceğini zaten açıklamıştım: MySQL'deki kullanıcılar ve izinler

Devam edelim burada ne yapacağız? ...

1. Evet bir veritabanı oluşturacağız, ancak önce MySQL'e erişeceğiz:

mysql -u root -p

Buraya root şifresini koyarlar ve MySQL terminaline erişirler.

2. MySQL'e girdikten sonra veritabanını oluşturmaya devam ediyoruz myftpdb:

CREATE DATABASE myftpdb;

Noktalı virgül dikkat edin «;»Satırın sonunda.

3. Şimdi kullanıcıyı oluşturacağız ftpuser'ım ve az önce oluşturduğumuz veritabanında kullanıcıyı kullanma izni vereceğiz, bu kullanıcının şifresi olacak myftpparolam:

CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;

4. Hazır, veritabanını, kullanıcıyı oluşturduk ve izinleri ayarladık. Şimdi bunun tamamlanabilmesi için varsayılan (veya temiz) veritabanını içe aktarmalıyız. Bunu yapmak için önce MySQL'den çıkalım:

exit;

Şimdi size sunduğum varsayılan veritabanını indirelim:

Varsayılan olarak DB'yi indirin

Veya sunucuda aşağıdaki satırı kullanın:

wget http://ftp.desdelinux.net/myftpdb.sql

Hazır, zaten sunucumuzda var, şimdi sadece verilerinizi içe aktarmaya devam ediyor:

mysql -u root -p myftpdb < myftpdb.sql

Ve hazır!

Ayrıca bazı web uygulamalarını da kullanabilirler. yönetim o PHPMyAdmin Veritabanını içe aktarmak için onu tatmaya bırakıyorum.

5. Ve bunların hepsi MySQL'inizin koşullarını hazır hale getirmek içindir.

FTP'ye MySQL ile katılma

Eh, zaten FTP hizmeti yükledik, MySQL hizmeti kuruldu ve veritabanı setimizle ... şimdi sadece ihtiyacımız var, MySQL ile FTP hizmetine katılın.

1. Öncelikle yukarıda belirtilenler için kullanacağımız konfigürasyon dosyasını indirmeliyiz. Sunucu terminalinde şu satırı koyalım:

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf

2. Şimdi, MySQL kullanıcılarının kimliğini doğrulamak için kullanılmasını söyleyen FTP hizmetini başlatıyoruz ve ayrıca MySQL'e bağlanmak için hangi yapılandırma dosyasının kullanılacağını da belirteceğiz:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

Ve voila 😀

Bu, MySQL veritabanı ile kimlik doğrulaması yapan kendi FTP sunucumuzu kurmak için yeterlidir.

Sunucunun otomatik olarak başladığında FTP hizmetini başlatmasını istiyorsanız, dosyayı /etc/rc.local FTP'yi yürütmek için kullandığımız satır, yani /etc/rc.local bu:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

Bu arada, herhangi bir tarayıcıyı ve ayrıca Filezilla gibi FTP istemcilerini kullanarak FTP'ye erişebilirsiniz ... ve sadece bu değil, Nautilus, Dolphin veya PCManFM gibi dosya tarayıcılarını kullanarak dosyaları da indirebilir ve yükleyebilirsiniz 😀

Veritabanında bulunan test kullanıcısı

Kullanıcı adı: test kullanıcısı

Parola: test şifresi

FTP kullanıcıları nasıl yönetilir?

Yukarıda söylediğim gibi bir MySQL veritabanı olduğunu hesaba katarsak ... PHPMyAdmin veya Adminer kullanmak yeterli olacaktır. Tek bir tablo içeren veritabanını yönetmek için sadece favori uygulamanızı kullanın: kullanıcılar ... ve içinde kullanıcılar var, işte bir ekran görüntüsü:

Yeni bir kullanıcı oluşturmak istiyorsanız, mevcut satırı kopyalayabilir veya klonlayabilir ve her iki kullanıcı arasında farklı olacak verileri değiştirebilirsiniz, burada size bir ekran görüntüsü gösteriyorum:

Pekala ... ekleyecek başka bir şey yok 🙂

Umarım bu sizin için yararlıdır ve biliyorsunuz, herhangi bir sorunuz veya öneriniz bana bildirir.

selamlar

PD: Bu eğitimde, veritabanına kaydedilmiş şifreleri düz metin olarak kullanıyoruz, daha fazla güvenlik istiyorsanız md5'i denemenizi tavsiye ederim 😉


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   LiGNUxer dijo

    ÇOK İYİ!!! Birkaç hafta önce bunu vsftpd ile kuruyordum ve ikna olmadım, bu yüzden nasıl olduğunu görmek için bunu deneyeceğim. teşekkür ederim

    1.    KZKG ^ Gaara dijo

      Teşekkürler arkadaşım.
      vsftpd En son ne zaman kullandığımı hatırlamıyorum ... şimdi birkaç yıl olacak, ... HAHA kullansaydım. Şu anda PureFTPd ile mutluyum 😀

  2.   uygun dijo

    Çok iyi katkı!

    1.    KZKG ^ Gaara dijo

      Teşekkürler compa 😀
      Elinden geleni yap lol….

  3.   Bilgisayar Koruyucu dijo

    Uuumm, ilginç ... elimde bu kullanıcı ve şifre koleksiyonuna sahip olmak istediğim veritabanının IP'sini bana ilet 😉

    Kötü olma adamım

    1.    KZKG ^ Gaara dijo

      Anlamadım hehehe… hangi IP ve DB'den bahsediyorsun?
      Öğreticiye koyduğum bu verilerin bir sunucuda da olabileceğini kastediyorsanız, evet haklısınız ... dizüstü bilgisayarımdaki sanal bir PC'de bir FTP hizmetindeler, ÇOK iyi bir güvenlik duvarına (iptables) sahip olduğundan … HAHAHAHAHA tabi ki kötü değiller LOL !!!

  4.   Bilgisayar Koruyucu dijo

    Joroña ne joroña…. Bazı güvenlik açıklarından yararlanmak ve bu verileri yakalamak göründüğünden daha karmaşık olacak 😉

  5.   yosun dijo

    Çok ilginç!! 🙂

    1.    KZKG ^ Gaara dijo

      teşekkürler
      Bizi diğer sitelerden ayırmaya çalıştığım şey budur ... çok fazla haber değil, teknik makaleler olarak koymaya çalışıyoruz

  6.   Giskard dijo

    Samba ile karşılaştırıldığında bu ne kadar hızlı? (yalnızca yerel ağ)

    1.    LiGNUxer dijo

      samba ve ftp'nin 2 farklı şey olduğu, ftp ciddi bir protokoldür ve sadece win ile linux arasındaki paylaşımı kolaylaştırmak için smb.
      Ağda performans arıyorsanız, bir FTP hizmeti kullanın, aksi takdirde samba'yı sorunsuz kullanın

      1.    KZKG ^ Gaara dijo

        Kesin.
        Diyelim ki FTP Samba'dan biraz daha ciddi, en azından bence öyle.

        Hiç kıyaslama yapmadım ama belki FTP biraz daha hızlıdır.

        1.    Giskard dijo

          Teşekkür ederim. Wii konsolumdan (wiimc kullanarak) bilgisayarıma indirdiğim filmleri ve dizileri izleyebilmek için Samba kullanıyorum. Ancak wiimc, bir ftp sunucusuna da bağlanabilir. Samba'yı kullandım çünkü en kolayı buydu, ama ftp ile daha hızlı olsaydı her zaman ilgimi çekerdi. Denemem gerekecek.

          1.    KZKG ^ Gaara dijo

            Peki, Apache'yi PC'nize de kolayca bağlayabilirsiniz ve Wii'nin bağlanması için bu samba'dan daha hızlı olmalı ... ve yapılandırması FTP'den çok daha basit olmalıdır 😀

          2.    Giskard dijo

            Wiimc (Wii Media Player) yalnızca Samba ve FTP bağlantılarını kabul eder.

  7.   Max Steel dijo

    Mükemmel. Her şeyi mükemmel hale getirmek için bu tür makalelerde (ve genel olarak site) bir şeye ihtiyacınız var; makaleleri PDF'ye veya kağıda yazdırabilmek için bir CSS şablonu.

  8.   LiGNUxer dijo

    Bana ait olup olmayacağını bilmiyorum, ancak bununla ilgili en büyük sorun, ftp ile bağlanırlarsa, herhangi bir yere erişebilirlerse, kullanıcıların "/ var / www / user_site" gibi belirli bir dizin versem bile tüm dizinleri gözden geçirebilmeleridir. bilgisayarımdan ¬¬
    bu çok güvenli değil haha

  9.   LiGNUxer dijo

    İŞTE BURADA!!!
    Oluşturduğumuz kullanıcıların tüm sistemimizde gezinmesini önlemek için, saflığı başlatırken "-A" parametresini eklemeliyiz ...

    Eğiticiye koyduğunuz /etc/rc.local'a eklediğimiz şey şudur:
    saf-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    ve bunu diğeriyle değiştirmeniz gerekir:
    saf-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    Takdir edildi mi? ... Bu yeni satırda -A parametresi sadece bizim atadığımız dizini kısıtlamak için var ve başka hiçbir şey yaratamıyor, ancak seviye atlayamıyor.

    D: bu sevimli saf fptd

    1.    KZKG ^ Gaara dijo

      İpucu için teşekkürler 😀

  10.   Roberto dijo

    Merhaba, bu MySQL ve FTP uygulamasında kotaları uygulamak mümkün, şu anda vsftpd'li bir ftp sunucum var ve kotalarla ilgili bir sorunum yok, ancak sanal bir kullanıcı olmak (mysql'de oluşturulmuş) kotalar geçerli olacak mı? ve ikincisi, kullanıcılar tarafından yüklenen dosyaların depolandığı yer, yani her kullanıcının dizinleri.

    1.    KZKG ^ Gaara dijo

      Teorik olarak, kotaları uygulayabilirsiniz, aslında veritabanı onun için oluşturulmuş alanlara sahiptir ve FTP hizmetinin konfigürasyon dosyası bunun için ayarlanmış sorgulara sahiptir, ki bu aslında bunu test etmedim

      Kullanıcıların dosyaları nereye koyacağı hakkında, 5. alanda tanımlarsınız, ekran görüntüsüne bakın: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg

  11.   Roberto dijo

    Yorumunuz için çok teşekkür ederim, bu sistemi bir test sunucusunda test edeceğim ve sonuçlar hakkında yorum yapacağım, umarım yapabilirim çünkü her şeyi düzene sokmak için harika bir yöntem ve bir RAID ile kararlı bir yedekleme sisteminiz var: D.

    1.    KZKG ^ Gaara dijo

      Yorumunuz için teşekkürler 🙂

  12.   Roberto dijo

    Bir sorum var, zaten mysql ve kotalar ile saf-ftp kurmayı başardım, şimdi sorun, kullanıcı şifresini veya yüklenen dosyaları değiştirmeden mysql tablosundan bir hesabı nasıl askıya alabilirim.

    1.    KZKG ^ Gaara dijo

      İki yol düşünebilirim, en basit olanı Durum 1'den 0'a, teoride 0 ise hesap devre dışı bırakılır, bunu deneyin ve bana söyleyin 🙂

  13.   huş ağacı dijo

    Roberto, bu tesisi kullanarak ücretleri belirlemeyi nasıl başardın? Lütfen bilgileri paylaşın.
    Çok iyi giriş !!

    1.    Roberto Sotelo dijo

      Birkhoff, sadece kişisel blogumda bununla ilgili bir konu oluşturdum, bağlantıyı incelemeniz için bırakıyorum:

      http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/

  14.   klaus dijo

    selamlar:

    Her şeyi takip etmeye çalışıyorum ama 501 hatası alıyorum ve en önemlisi, iyi olduğunu bildiğimde şifrenin yanlış olduğu gerçeğine başvurmak için