Несмотря на некоторую неопределенность, которая может окружать MySQL, лично я все же предпочитаю работать с этой БД, а не с какой-то другой. Я ничего не имею против Postgre, я просто всю жизнь использовал MySQL, и до сих пор у меня не было причин пересматривать его использование.
На этот раз я научу вас, как установить FTP-сервер, но не только это, я научу вас не таким сложным способом, как сделать так, чтобы пользователи, пароли и другие пользовательские данные хранились в базе данных MySQL, а не в учетных записях. местный.
Почему это так?
Просто, потому что при создании резервной копии, переустановке сервера или любых других значительных изменениях перемещение службы будет таким же простым, как копирование файла конфигурации и экспорт базы данных MySQL на FTP.
Для этого мы будем использовать Pure-FTPd, ну… начнем
Установка службы FTP с Pure-FTPd
1. Первое, что нужно сделать, это установить пакет: чистый ftpd-mysql
В таких дистрибутивах, как Debian или производные: aptitude установить чистый ftpd-mysql
2. После установки мы запустили службу, но должны ее остановить, чтобы остановить ее в таких системах, как Debian или производных, достаточно:
/etc/init.d/pure-ftpd-mysql stop
Однако я оставляю вам строку, которая остановит службу независимо от того, какой дистрибутив вы используете:
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. Теперь создадим пользователя мойфтпусер и мы дадим разрешения на использование пользователя в базе данных, которую мы только что создали, этот пользователь будет иметь пароль мой фтппароль:
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
И всё
Этого достаточно, чтобы установить собственный 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