# Serverumzug proFTPD läuft nicht



## Futuretop (1. Aug. 2008)

Hallo Leser!


Ich bin gerade dabei einen Serverumzug abzuschließen. Die entsprechenden Daten habe ich mit rsync kopiert. Der alte Server hat mehere FTP-Uplods für mehere Web-Sites. Die Auth läuft über MySQL.

Auf dem neuen Server sind alle Verzeichnisse an der richtigen Stelle und MySQL sieht auch genau so aus wie auf dem alten Server.

Das Problem ist, der Benutzer wird nicht erkannt, nachdem ich die proftpd.conf vom alten Server genommen habe. Nur den Hostname habe ich geändert.

Die proftpd.conf sieht jetzt so aus:

ServerName "united-xxxxxx.de"
ServerType standalone
DeferWelcome on
DefaultServer on
Port 21
Umask 002
MaxClientsPerHost 3 "Nicht mehr als %m Verbindungen"
MaxClients 10 "Leider sind schon %m Clients verbunden"
MaxLoginAttempts 3
MaxInstances 30
User wwwrun
Group nogroup
DefaultRoot ~
RequireValidShell off
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
LogFormat write "%h %l %u %t \"%r\" %s %b"
SQLAuthTypes Plaintext
SQLDefaultHomedir /u/server
SQLAuthenticate users*
SQLConnectInfo uphftp@localhost root
SQLDefaultGID 65534
SQLDefaultUID 65534
SQLMinUserGID 100
SQLMinUserUID 500
SQLUserInfo users username password uid gid homedir shell
SQLGroupInfo groups groupname gid members
SQLLog RETR,STOR transfer1
SQLNamedQuery transfer1 INSERT "'%u', '%f', '%b', '%h', '%a', '%m','%T',now(), 'c', NULL" xfer_stat
SQLLOG ERR_RETR,ERR_STOR transfer2
SQLNamedQuery transfer2 INSERT "'%u', '%f', '%b', '%h', '%a', '%m','%T',now(), 'i', NULL" xfer_stat



Thomas


----------



## Till (1. Aug. 2008)

Bist Du sicher, dass auch das proftpd-mysql Paket der Linuxdistribution installiert ist und nicht nur proftpd selbst?


----------



## Futuretop (1. Aug. 2008)

Hallo!

Ich bin mir nicht sicher.


Es wird ein Teil von XAMPP benutzt und zwar der Apache und der proftpd. MySQL läuft ganz normal.


Wie gesagt, ich mache nur den Umzug. Den alten Server habe ich nicht eingerichtet.

Ich habe mich vorhin verschrieben. Mit der o.g. Config klappt keine Verbindung vom Clienten zum Server mehr.


Thomas


----------



## Till (1. Aug. 2008)

Hi,

also ich würde persönlich nie xampp unter linux benutzen, da es mit den normalen Paketen der Linuxdistribution kollidiert. Wenn Du auf dem alten System nicht auch xampp genutzt hast, wird es vermutlich daran liegen, dass der xampp proftpd die mysql authentifizierung nicht kann. Ich würde Dir dann raten den proftpd von xampp zu deaktivieren und lieber die Pakete der Linuxdistribution nehmen.


----------



## Futuretop (1. Aug. 2008)

Hallo!


Wenn ich damit gleiche Ergebnis erziele, wie auf dem alten Server, dann nehme den normalen proftpd gerne. XAMPP soll langfristig sowieso weg.

Ich schau mal was passiert wenn proftpd ohne XAMPP einrichte.


Thomas


----------



## Futuretop (1. Aug. 2008)

Hallo!

Ich habe mir die rpm für proftpd besorgt und installiert. Ich will jetzt erstmal ohne mysql anfangen. Mein FTP-Client kann keine Verbindung zum Server aufnehmen, obwohl *netstat -tulpen* den Port 21 in Betrieb zeigt.

Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name 
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 60 622331 30286/mysqld-max 
tcp 0 0 127.0.0.1:12525 0.0.0.0:* LISTEN 0 14438 3698/policyd-weight 
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 0 628944 31285/xinetd 
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 0 628942 31285/xinetd 
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 0 13902 3546/master 
tcp 0 0 :::80 :::* LISTEN 0 308948 16634/httpd 
tcp 0 0 :::22 :::* LISTEN 0 10764 2851/sshd 
tcp 0 0 :::443 :::* LISTEN 0 308957 16634/httpd

In der *proftpd.conf* habe ich bisher nur den *Hostnamen* eingetragen.


Thomas


----------



## Till (2. Aug. 2008)

Ich würde Dir arten, den proftpd als standalone und nicht über xinetd zu betreiben.

1) Welche Linuxdistribution verwendest Du?
2) Stell bitte sicher, dass Du apparmor bzw. selinux ausgeschaltet hast und den Port für FTP in der Firewall geöffnet.


----------



## Futuretop (2. Aug. 2008)

Hallo Till!


Über xinetd klappt das sowieso nicht sofort. Ich habe jetzt proftpd normal gestartet. Der Client stellt eine Verbindung zum Server und wenn ich den Client beendet habe, dann geht der proftpd-Server auch auf *stop* und muss neu gestartet werden. Und das jedesmal!

Woran liegt das?


Thomas


----------



## Futuretop (2. Aug. 2008)

Hollo!

Ich versuche gerade mod_sql zu installieren:

http://www.proftpd.de/HowTo-SQL.29.0.html

Die Ausführung des Befehls make endet mit einer Errormeldung:

make[1]: Entering directory `/tmp/proftpd-1.3.1/lib'
make[1]: Nothing to be done for `lib'.
make[1]: Leaving directory `/tmp/proftpd-1.3.1/lib'
cd src/ && make src
make[1]: Entering directory `/tmp/proftpd-1.3.1/src'
make[1]: Nothing to be done for `src'.
make[1]: Leaving directory `/tmp/proftpd-1.3.1/src'
cd modules/ && make static
make[1]: Entering directory `/tmp/proftpd-1.3.1/modules'
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_sql_mysql.c
mod_sql_mysql.c:138:19: error: mysql.h: No such file or directory
mod_sql_mysql.c:164: error: expected specifier-qualifier-list before âMYSQLâ
mod_sql_mysql.c: In function â_build_errorâ:
mod_sql_mysql.c:303: warning: implicit declaration of function âmysql_errnoâ
mod_sql_mysql.c:303: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:305: warning: implicit declaration of function âmysql_errorâ
mod_sql_mysql.c:305: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:305: warning: cast to pointer from integer of different size
mod_sql_mysql.c: In function â_build_dataâ:
mod_sql_mysql.c:316: error: âMYSQLâ undeclared (first use in this function)
mod_sql_mysql.c:316: error: (Each undeclared identifier is reported only once
mod_sql_mysql.c:316: error: for each function it appears in.)
mod_sql_mysql.c:316: error: âmysqlâ undeclared (first use in this function)
mod_sql_mysql.c:317: error: âMYSQL_RESâ undeclared (first use in this function)
mod_sql_mysql.c:317: error: âresultâ undeclared (first use in this function)
mod_sql_mysql.c:318: error: âMYSQL_ROWâ undeclared (first use in this function)
mod_sql_mysql.c:318: error: expected â;â before ârowâ
mod_sql_mysql.c:327: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:333: warning: implicit declaration of function âmysql_store_resultâ
mod_sql_mysql.c:339: warning: implicit declaration of function âmysql_num_rowsâ
mod_sql_mysql.c:340: warning: implicit declaration of function âmysql_num_fieldsâ
mod_sql_mysql.c:345: error: ârowâ undeclared (first use in this function)
mod_sql_mysql.c:345: warning: implicit declaration of function âmysql_fetch_rowâ
mod_sql_mysql.c:355: warning: implicit declaration of function âmysql_free_resultâ
mod_sql_mysql.c: In function âcmd_openâ:
mod_sql_mysql.c:408: warning: implicit declaration of function âmysql_pingâ
mod_sql_mysql.c:408: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:420: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:420: warning: implicit declaration of function âmysql_initâ
mod_sql_mysql.c:422: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:433: warning: implicit declaration of function âmysql_optionsâ
mod_sql_mysql.c:433: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:433: error: âMYSQL_READ_DEFAULT_GROUPâ undeclared (first use in this function)
mod_sql_mysql.c:435: warning: implicit declaration of function âmysql_real_connectâ
mod_sql_mysql.c:435: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:437: error: âCLIENT_INTERACTIVEâ undeclared (first use in this function)
mod_sql_mysql.c: In function âcmd_closeâ:
mod_sql_mysql.c:529: warning: implicit declaration of function âmysql_closeâ
mod_sql_mysql.c:529: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:530: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c: In function âcmd_selectâ:
mod_sql_mysql.c:843: warning: implicit declaration of function âmysql_real_queryâ
mod_sql_mysql.c:843: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c: In function âcmd_insertâ:
mod_sql_mysql.c:956: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c: In function âcmd_updateâ:
mod_sql_mysql.c:1054: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c: In function âcmd_queryâ:
mod_sql_mysql.c:1169: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c:1184: warning: implicit declaration of function âmysql_field_countâ
mod_sql_mysql.c:1184: error: âdb_conn_tâ has no member named âmysqlâ
mod_sql_mysql.c: In function âcmd_escapestringâ:
mod_sql_mysql.c:1264: warning: implicit declaration of function âmysql_escape_stringâ
mod_sql_mysql.c: In function âcmd_checkauthâ:
mod_sql_mysql.c:1330: warning: implicit declaration of function âmake_scrambled_passwordâ
make[1]: *** [mod_sql_mysql.o] Error 1
make[1]: Leaving directory `/tmp/proftpd-1.3.1/modules'
make: *** [modules] Error 2


Irgendetwas fehlt wohl!


Thomas


----------



## Till (3. Aug. 2008)

Welche Linuxdistribution verwendest Du?

Das kompilieren von mod_sql ist eigenzlich heutzutage nicht mehr nötig. Bitte erst meine obige Frage beantworten!


----------



## Futuretop (3. Aug. 2008)

Hallo Till!

openSuSE 10.3 64bit.

Thomas


----------



## Till (3. Aug. 2008)

Die Pakete für proftpd und das Zusatzpaket für proftpd mysql findest Du im OpenSuSE Build Service:

http://download.opensuse.org/repositories/server:/ftp/openSUSE_10.3/x86_64/

Also am Besten erstmal den Proftpd deinstallieren, den Du im Moment installiert hast und dann:


```
rpm -i http://download.opensuse.org/repositories/server:/ftp/openSUSE_10.3/x86_64/proftpd-1.3.1-6.1.x86_64.rpm
rpm -i http://download.opensuse.org/repositories/server:/ftp/openSUSE_10.3/x86_64/proftpd-sql-mysql-1.3.1-6.1.x86_64.rpm
```


----------



## Futuretop (3. Aug. 2008)

Hallo Till!


Wenn ich in der proftpd.conf ein SQL-Befehl eingebe, dann startet proftpd nicht mehr. Fehlermeldung unbekannter Befehl!


Thomas


----------



## Till (3. Aug. 2008)

Und Du hast dieses Paket hier installiert:

proftpd-sql-mysql-1.3.1-6.1.x86_64.rpm


----------



## Futuretop (3. Aug. 2008)

united-xxxxxxx:/tmp # rpm -Uvh proftpd-1.3.1-6.1.x86_64.rpm 
Preparing... ########################################### [100%]
1roftpd ########################################### [100%]
united-xxxxxxx:/tmp # rpm -Uvh proftpd-sql-mysql-1.3.1-6.1.x86_64.rpm 
Preparing... ########################################### [100%]
1roftpd-sql-mysql ########################################### [100%]
united-xxxxxxxx:/tmp # rpm -Uvh proftpd-devel-1.3.1-6.1.x86_64.rpm 
Preparing... ########################################### [100%]
1roftpd-devel ########################################### [100%]



Thomas


----------



## Till (4. Aug. 2008)

Wird denn das mysql modul in Deiner proftpd.conf geladen?


----------



## Futuretop (4. Aug. 2008)

Hallo Till!


Ich konnte dieses Problem jetzt lösen. Ich habe mir die tar.gz von proftpd besorgt und installiert.

./configure --with-modules=mod_sql:mod_sql_mysql --with includes=/usr/include/mysql --with-libraries=/usr/lib/mysql

make

make install

proftpd -n d5

Client kann Kontakt zum Server herstellen, wenn ich die Default-Conf nehme.

Die Conf vom alten Server funktioniert noch nicht. Gleicher Fehler wie bei XAMPP (keine Vernbindung zum Server möglich)!

Ich versuche jetzt Schritt für Schritt weiterzukommen.


Thomas


----------



## Futuretop (31. Aug. 2008)

*[gelöst] Serverumzug proFTPD läuft nicht*

Hallo Till!

Ich habe das Problem lösen.

Ich habe mir die tar.gz von ProFTPd besorgt und folgendes ausgeführt:

```
tar -xvfz ...tar.gz
 
./configure  
    --with-modules=mod_sql:mod_sql_mysql 
    --with-includes=/usr/include/mysql 
    --with-libraries=/usr/lib/mysql
 
make
 
make install
 
Dann die proftpd.conf vom alten Server übernommen.
 
Dann noch ein Script damit ich /etc/init.d/proftpd start/stop ausführen kann
 
geschrieben und einen Cronjob angelegt, weil nachts der FTP-Server 
 
abgeschaltet wird.
```
 
Vielen Dank für alle Antworten!


Thomas


----------

