Hello. First thanks for the great guides, I have read and used alot of them and especially the Postfix+Courier guide. Now, my problem right now is that I used the guide http://www.howtoforge.com/proftpd_mysql_virtual_hosting to setup a FTP, and trust me it works great besides one thing, it does not increase how many bytes a user has transfered or anything, every value in ftpquotatallies is 0 (besides user which is my username and quota_type which says user) and I have tried alot of different things without success. My proftpd.conf is pasted bellow (Removed my passwords) Code: # /etc/proftpd.conf -- This is a basic ProFTPD configuration file. # To really apply changes reload proftpd after modifications. # ServerName "Nequam FTP" ServerType standalone DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ # Port 21 is the standard FTP port. Port 21 MaxInstances 30 User nobody Group nogroup Umask 022 022 AllowOverwrite on DefaultRoot ~ # The passwords in MySQL are encrypted using CRYPT SQLAuthTypes Plaintext Crypt SQLAuthenticate users* groups* # used to connect to the database # databasename@host database_user user_password SQLConnectInfo ftp@localhost proftpd XXXXX SQLUserInfo ftpuser userid passwd uid gid homedir shell # Here we tell ProFTPd the names of the database columns in the "grouptable" # we want it to interact with. Again the names match with those in the db SQLGroupInfo ftpgroup groupname gid members # set min UID and GID - otherwise these are 999 each SQLMinID 500 # create a user's home directory on demand if it doesn't exist SQLHomedirOnDemand on # Update count every time user logs in SQLLog PASS updatecount SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser # Update modified everytime user uploads or deletes a file SQLLog STOR,DELE modified SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser # User quotas # =========== QuotaEngine on QuotaDirectoryTally on QuotaDisplayUnits Mb QuotaShowQuotas on 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_ava$ 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 n$ 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 = fi$ SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies SQLNamedQuery gettally SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'" SQLNamedQuery getlimit SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'" SQLNamedQuery getfree SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%$ SQLShowInfo LIST "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space." QuotaLimitTable sql:/get-quota-limit QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally RootLogin on RequireValidShell off Example of what i mean, by it's not increasing: Code: Transferred 1 file totaling 5,49 MB in 1,86 second (10,99 MB/s) [R] 226 Used 0.00MB from 10.00MB. You have 10.00MB available space. And 'netstat -tap' (if needed) gives me: Code: Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost.localdo:10024 *:* LISTEN 10827/amavisd (mast tcp 0 0 localhost.localdo:10025 *:* LISTEN 2368/master tcp 0 0 localhost.localdo:mysql *:* LISTEN 2179/mysqld tcp 0 0 *:sunrpc *:* LISTEN 1581/portmap tcp 0 0 *:882 *:* LISTEN 2396/rpc.statd tcp 0 0 *:ftp *:* LISTEN 11315/proftpd: (acc tcp 0 0 *:3000 *:* LISTEN 11440/eggdrop tcp 0 0 *:smtp *:* LISTEN 2368/master tcp 0 0 10.0.0.6:34672 London.UK.EU.under:ircd ESTABLISHED11440/eggdrop tcp 0 0 10.0.0.6:ftp 10.0.0.40:1559 ESTABLISHED11338/proftpd: test tcp 0 0 localhost.localdo:34693 localhost.localdo:mysql TIME_WAIT - tcp 0 0 localhost.localdo:34692 localhost.localdo:mysql TIME_WAIT - tcp 0 0 localhost.localdo:34701 localhost.localdo:mysql ESTABLISHED11406/cleanup tcp 0 0 localhost.localdo:34702 localhost.localdo:mysql ESTABLISHED11406/cleanup tcp 0 0 localhost.localdo:mysql localhost.localdo:34701 ESTABLISHED2179/mysqld tcp 0 0 localhost.localdo:mysql localhost.localdo:34702 ESTABLISHED2179/mysqld tcp 0 0 localhost.localdo:10025 localhost.localdo:34700 TIME_WAIT - tcp6 0 0 *:imaps *:* LISTEN 2093/couriertcpd tcp6 0 0 *:pop3s *:* LISTEN 2114/couriertcpd tcp6 0 0 *:pop3 *:* LISTEN 2101/couriertcpd tcp6 0 0 *:imap2 *:* LISTEN 2076/couriertcpd tcp6 0 0 *:www *:* LISTEN 6755/apache2 tcp6 0 0 *:auth *:* LISTEN 2229/oidentd tcp6 0 0 *:ssh *:* LISTEN 2392/sshd tcp6 0 0 *:smtp *:* LISTEN 2368/master tcp6 0 740 ::ffff:10.0.0.6:ssh ::ffff:10.0.0.40:3308 ESTABLISHED2518/0 Also, no mysql-errors or anything.
Does your user exist in both the ftpquotalimits and the ftpuser tables? Do you have this in your /etc/proftpd.conf? Code: DefaultRoot ~ # The passwords in MySQL are encrypted using CRYPT SQLAuthTypes Plaintext Crypt SQLAuthenticate users* groups* # used to connect to the database # databasename@host database_user user_password SQLConnectInfo ftp@localhost proftpd password # Here we tell ProFTPd the names of the database columns in the "usertable" # we want it to interact with. Match the names with those in the db SQLUserInfo ftpuser userid passwd uid gid homedir shell # Here we tell ProFTPd the names of the database columns in the "grouptable" # we want it to interact with. Again the names match with those in the db SQLGroupInfo ftpgroup groupname gid members # set min UID and GID - otherwise these are 999 each SQLMinID 500 # create a user's home directory on demand if it doesn't exist SQLHomedirOnDemand on # Update count every time user logs in SQLLog PASS updatecount SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser # Update modified everytime user uploads or deletes a file SQLLog STOR,DELE modified SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser # User quotas # =========== QuotaEngine on QuotaDirectoryTally on QuotaDisplayUnits Mb QuotaShowQuotas on 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}'" 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}'" 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 SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies QuotaLimitTable sql:/get-quota-limit QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally RootLogin off RequireValidShell off
Thanks for the answer, even tho I've been hold up by some work - The problem was that 'per_session' in the quotalimits was setted to TRUE, when i setted it to FALSE the quota limits was active. So it works smoothly, thanks.