Автор Тема: Проблем с настройването на Proftpd с include mysql.conf  (Прочетена 1745 пъти)

djpatzo

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Инсталирал съм proftpd-mysql заредил съм modules, но като Include файла с sQL настройките и не иска да се стартира. Гледам лога не записва за Proftpd. Използвам CentOS 5.4. За пръв път се получава нещо такова.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Е, сподели малко конфигурации де, и съобщения за грешки, ако ти се намират :)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

djpatzo

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Така... http://www.howtoforge.com/virtual_hosting_with_proftpd_and_mysql_fedora7 от тук инсталирах. Грешката която ми показва е ...

May 24 01:16:04 hosting-bg.org proftpd[4208] hosting-bg.org: ProFTPD killed (signal 15)
May 24 01:16:04 hosting-bg.org proftpd[4208] hosting-bg.org: ProFTPD 1.3.2 standalone mode SHUTDOWN
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Все още не виждам твоите конфигурационни файлове. Как да бъда сигурен, че си изпълнил стъпките точно?
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

djpatzo

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Оправих се. Всичко е ток....
« Последна редакция: May 24, 2010, 02:20 от djpatzo »
Активен

djpatzo

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Добре, а как да направя, при създаването на home директорията от proftpd правата да стават 755.
Активен

djpatzo

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
И с това се справих. Нека споделя с Вас цялостната настройка за CentOS 5.4.

Да започнем с инсталацията.

Код
GeSHi (Bash):
  1. [root@localhost ~]# yum install proftpd-mysql

Използвам пакет за промяна на файловете mc. Променяме /etc/proftpd.conf да изглежда по този начин.
Код
GeSHi (Bash):
  1. [root@localhost ~]# mcedit -cd /etc/proftpd.conf
Код
GeSHi (Bash):
  1. ServerName "ProFTPD Сървър"
  2. ServerType standalone
  3. DefaultServer on
  4.  
  5. Port 21
  6.  
  7. UseIPv6 off
  8.  
  9. Umask 022
  10.  
  11. MaxInstances 50
  12.  
  13. User ftpuser
  14. Group ftpgroup
  15.  
  16. DefaultRoot ~
  17. IdentLookups off
  18. ServerIdent on "FTP сървъра е готов."
  19.  
  20. RootLogin off
  21. RequireValidShell off
  22. CreateHome on 755 dirmode 755
  23.  
  24. AllowOverwrite on
  25.  
  26. # Bar use of SITE CHMOD by default
  27. #<Limit SITE_CHMOD>
  28. #  DenyAll
  29. #</Limit>
  30.  
  31. SystemLog /var/log/proftpd/proftpd.log
  32.  
  33. Include "/etc/proftpd/mysql.conf"

Отваряме нов файл mysql.conf и в него въвеждаме
Код
GeSHi ():
  1. [root@localhost ~]# mcedit -cd /etc/proftpd/mysql.conf
Код
GeSHi (Bash):
  1. LoadModule mod_sql.c
  2. LoadModule mod_sql_mysql.c
  3. LoadModule mod_quotatab.c
  4. LoadModule mod_quotatab_sql.c
  5.  
  6. SQLConnectInfo база_данни@localhost потребител_на_бд парола_за_потребителя
  7. SQLAuthenticate users groups
  8. SQLAuthTypes Plaintext Crypt
  9. SQLDefaultHomedir ~
  10. SQLUserInfo ftpuser userid passwd uid gid homedir shell
  11. SQLGroupInfo ftpgroup groupname gid members
  12.  
  13. SQLLogFile /var/log/proftpd/proftpd-sql.log
  14.  
  15. # Count number of logins for each user
  16. SQLLog                PASS lastcount
  17. SQLNamedQuery         lastcount UPDATE "count=count+1 WHERE userid='%u'" ftpuser
  18.  
  19. # Save last login
  20. SQLLog                PASS lastlogin
  21. SQLNamedQuery         lastlogin UPDATE "modified=now() WHERE userid='%u'" ftpuser
  22.  
  23. # Do not let disabled or expired users to login
  24. SQLUserWhereClause "disabled='1' OR expires='0000-00-00 00:00:00' OR expires>now()"
  25.  
  26. # User quotas
  27. # ===========
  28. QuotaEngine on
  29. QuotaDirectoryTally on
  30. QuotaDisplayUnits Mb
  31. QuotaShowQuotas on
  32.  
  33. SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
  34.  
  35. SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
  36.  
  37. SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
  38.  
  39. SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
  40.  
  41. QuotaLimitTable sql:/get-quota-limit
  42. QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

Следва да се свържем с mysql и да създадем потребителя, да му зададем права и да създадем базата данни с таблиците в нея, но преди това въвеждаме в терминала следните команди.
Код
GeSHi (Bash):
  1. [root@localhost ~]# groupadd -g 2001 ftpgroup
  2. [root@localhost ~]# useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser

Свързваме се към mysql с root потребител
Код
GeSHi (Bash):
  1. [root@localhost ~]#mysql -u root -p
Код
GeSHi (Bash):
  1. create database ftp;
  2. GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'потребител_за_дб'@'localhost' IDENTIFIED BY 'парола_за_дб_потребителя';
  3. FLUSH PRIVILEGES;
Избираме базата данни ftp:
Код
GeSHi (Bash):
  1. USE ftp;
Създаваме таблиците в нея:
Код
GeSHi (Bash):
  1. CREATE TABLE ftpgroup (
  2. groupname varchar(16) NOT NULL default '',
  3. gid smallint(6) NOT NULL default '5500',
  4. members varchar(16) NOT NULL default '',
  5. KEY groupname (groupname)
  6. ) TYPE=MyISAM COMMENT='ProFTP group table';
Код
GeSHi (Bash):
  1. CREATE TABLE ftpquotalimits (
  2. name varchar(30) default NULL,
  3. quota_type enum('user','group','class','all') NOT NULL default 'user',
  4. per_session enum('false','true') NOT NULL default 'false',
  5. limit_type enum('soft','hard') NOT NULL default 'soft',
  6. bytes_in_avail int(10) unsigned NOT NULL default '0',
  7. bytes_out_avail int(10) unsigned NOT NULL default '0',
  8. bytes_xfer_avail int(10) unsigned NOT NULL default '0',
  9. files_in_avail int(10) unsigned NOT NULL default '0',
  10. files_out_avail int(10) unsigned NOT NULL default '0',
  11. files_xfer_avail int(10) unsigned NOT NULL default '0'
  12. ) TYPE=MyISAM;
Код
GeSHi (Bash):
  1. CREATE TABLE ftpquotatallies (
  2. name varchar(30) NOT NULL default '',
  3. quota_type enum('user','group','class','all') NOT NULL default 'user',
  4. bytes_in_used int(10) unsigned NOT NULL default '0',
  5. bytes_out_used int(10) unsigned NOT NULL default '0',
  6. bytes_xfer_used int(10) unsigned NOT NULL default '0',
  7. files_in_used int(10) unsigned NOT NULL default '0',
  8. files_out_used int(10) unsigned NOT NULL default '0',
  9. files_xfer_used int(10) unsigned NOT NULL default '0'
  10. ) TYPE=MyISAM;
Код
GeSHi (Bash):
  1. CREATE TABLE `ftpuser` (
  2.  `id` int(10) unsigned NOT NULL auto_increment,
  3.  `userid` varchar(32) NOT NULL default '',
  4.  `passwd` varchar(32) NOT NULL default '',
  5.  `uid` smallint(6) NOT NULL default '5500',
  6.  `gid` smallint(6) NOT NULL default '5500',
  7.  `homedir` varchar(255) NOT NULL default '',
  8.  `shell` varchar(16) NOT NULL default '/sbin/nologin',
  9.  `count` int(11) NOT NULL default '0',
  10.  `accessed` datetime NOT NULL default '0000-00-00 00:00:00',
  11.  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  12.  `disabled` enum('0','1') NOT NULL default '0',
  13.  `expires` datetime NOT NULL default '0000-00-00 00:00:00',
  14.  PRIMARY KEY  (`id`),
  15.  UNIQUE KEY `userid` (`userid`)
  16. ) ENGINE=MyISAM;
Изписваме quit; за да излезем от Mysql Shell-а и да се върнем отново към Linux Shell-а
Код
GeSHi (Bash):
  1. quit;

Дойде ред да направим proftpd да се стартира със зареждане на OS и да го стартираме самия него още сега.
Код
GeSHi (Bash):
  1. [root@localhost ~]# chkconfig --levels 235 proftpd on
  2. [root@localhost ~]# /etc/init.d/proftpd start

За да създадем 1-вия потребител влизаме отново в mysql:
Код
GeSHi (Bash):
  1. [root@localhost ~]# mysql -u root -p

Отново избираме база ftp:
Код
GeSHi (Bash):
  1. USE ftp;

Вмъкмаме записите както следва:
Код
GeSHi (Bash):
  1. INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');
Код
GeSHi (Bash):
  1. INSERT INTO `ftpquotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('ftp_потребител', 'user', 'true', 'hard', 15728640, 0, 0, 0, 0, 0);
Код
GeSHi (Bash):
  1. INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`, `disabled`, `expires`) VALUES
  2. (1, 'ftp_потребител', 'парола_за_ftp_потребителя', 2001, 2001, '/home/директорията/която/ще/ползва/потребителя', '/sbin/nologin', 14, '0000-00-00 00:00:00',  '0000-00-00 00:00:00', '0', '0000-00-00 00:00:00');

Отново излизаме от mysql с команда quit;
Код
GeSHi (Bash):
  1. quit;

Проверяваме правата да изглеждат по следния начин.
Код
GeSHi (Bash):
  1. [root@localhost ~]# ls -l /home/

Трябва да Ви изведе нещо подобно
Код
GeSHi (Bash):
  1. drwxr-xr-x 2 ftpuser ftpgroup 4096 2010-05-24 13:10 ftp_потребителската_директория

Ако имате въпроси питайте... Продължението на темата, е настройка на httpd да ползва потребителските директории и да могат да се отварят със субдомейн примерно от типа http://ftp_потребител.site.com + php скриптовете за регистрация на фтп акаунт и администрацията на тези.. Става въпрос да се получи системка за безплатен хостинг с поддомейни.
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Браво. Описал си го много добре!
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

djpatzo

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Благодаря. Забравих да отбележа, че източника е http://www.howtoforge.com/virtual_hosting_with_proftpd_and_mysql_fedora7, но го доработих да стане за CentOS(едно и също е ама) ... Сложил съм някои допълнения към кода, за таблица ftpuser да може да отчита последни промени. В php кода, ще направя да може да слага дата на accessed от ftpuser като дата на създаване на акаунта. Ще го направя завършена хостинг системка от типа free.bg или hit.bg както искате го приемайте, но ще има доста екстри, като например база данни + фтп достъп + php поддръжка
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
#include <hashmap>
Общ форум
aSmith 2 2033 Последна публикация Dec 27, 2004, 12:17
от aSmith
PHP include
Web development
svincho 4 2266 Последна публикация Aug 17, 2005, 08:28
от svincho
Proftpd.conf и директивата directory...
Настройка на програми
penko_70 2 1158 Последна публикация Apr 22, 2007, 22:40
от penko_70
Php include() bug
Web development
VladSun 6 3067 Последна публикация Oct 16, 2007, 19:42
от VladSun
Http грешка при външно include?
Web development
Naka 11 3762 Последна публикация Apr 21, 2010, 00:14
от VladSun