# [ProFtpd]Problème lors de l'installation de Proftpd (resolu)

## kernings

BOnjour à tous,

  voila je m'explique, j'essai d'installer ProFtpd sur mon sd gentoo, mais lorsque j'essai de le lancer j'ai l'erreur suivant : 

```
- Unable to set LC_ALL : No such file or directory

- fatal: unable to load module 'mod_lang.c' : Operation not permitted
```

Voici ma procédure d'installation :

Installation

#emerge -av proftpd

Création des groupes

groupadd -g 2001 ftpgroup

useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser

Création des Utilisateurs de la BASE DE DONNEES MYSQL

GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'Monpass1';

GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost.localdomain' IDENTIFIED BY 'Monpass2';

FLUSH PRIVILEGES;

Ensuite je créer les tables dans Mysql pour ProFtpd, ensuite je met le fichier de config :

```

# This is a basic ProFTPD configuration file (rename it to

# 'proftpd.conf' for actual use.  It establishes a single server

# and a single anonymous login.  It assumes that you have a user/group

# "nobody" and "ftp" for normal operation and anon.

ServerName            "ProFTPD Default Installation"

ServerType            standalone

DefaultServer            on

# Port 21 is the standard FTP port.

Port                21

# Umask 022 is a good standard umask to prevent new dirs and files

# from being group and world writable.

Umask                022

# To prevent DoS attacks, set the maximum number of child processes

# to 30.  If you need to allow more than 30 concurrent connections

# at once, simply increase this value.  Note that this ONLY works

# in standalone mode, in inetd mode you should use an inetd server

# that allows you to limit maximum number of processes per service

# (such as xinetd).

MaxInstances            30

# Set the user and group under which the server will run.

User                nobody

Group                nogroup

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
```

Je remplace uniquement le mot de passe à la ligne SQLConnectInfo

#/etc/init.d/proftpd restart

Mais là ça plente ... QUe faire ???

J'essai de suivre le tutorial : http://www.graffougna.net/proftpd_compte_virtuel_et_mysql

Merci d'avanceLast edited by kernings on Fri Nov 16, 2007 8:46 pm; edited 3 times in total

----------

## geekounet

Salut !

Peux-tu mettre ton titre du topic en conformité avec les conventions de notre forum s'il te plait ? Merci  :Smile: 

----------

## kopp

Tu as bien configurer les locales de ton system ?

Que retournes 

```
locale
```

?

----------

## kernings

en effet, y'a p'être quelque chose la dessus :

ks352777 local # locale

locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_MESSAGES to default locale: No such file or directory

locale: Cannot set LC_ALL to default locale: No such file or directory

LANG=fr_FR@euro

LC_CTYPE="fr_FR@euro"

LC_NUMERIC="fr_FR@euro"

LC_TIME="fr_FR@euro"

LC_COLLATE="fr_FR@euro"

LC_MONETARY="fr_FR@euro"

LC_MESSAGES="fr_FR@euro"

LC_PAPER="fr_FR@euro"

LC_NAME="fr_FR@euro"

LC_ADDRESS="fr_FR@euro"

LC_TELEPHONE="fr_FR@euro"

LC_MEASUREMENT="fr_FR@euro"

LC_IDENTIFICATION="fr_FR@euro"

LC_ALL=

----------

## kopp

Tu as configuré les locales comme indiqué dans le manuel de Gentoo ?

cf le fichier /etc/env.d/02locales

----------

## kernings

Je viens de faire un export LC_ALL="fr_FR@euro", ça actualise bien la variable locale mais tj la même erreur sur proftpd

----------

## kernings

Je viens de mettre

LANG=fr_FR@euro LANGUAGE=fr_FR@euro LC_ALL=fr_FR@euro

Dans ce fichier ... a priori ça change pas grand chose ... peut être faut t'il que je recompile Proftpd ?

Edit : Non ça change rien ...

----------

## kopp

tu as bien les locales disponibles ?

cat /etc/locale.gen

et locale.gen

en root

----------

## ultrabug

 *kopp wrote:*   

> ...
> 
> et locale.gen en root

 

(je crois que c'est locale-gen, kopp)

kernings, voici les fichiers que j'ai pour les locales :

```
# cat /etc/locale.gen

# This file names the list of locales to be built when glibc is installed.

# The format is <locale>/<charmap>, where <locale> is a locale from the

# /usr/share/i18n/locales directory, and <charmap> is name of one of the files

# in /usr/share/i18n/charmaps/. All blank lines and lines starting with # are

# ignored. Here is an example:

# en_US/ISO-8859-1

en_US ISO-8859-1

en_US.UTF-8 UTF-8

fr_FR ISO-8859-1

fr_FR@euro ISO-8859-15

fr_FR.UTF-8 UTF-8
```

```
# cat /etc/env.d/02local

LANG="fr_FR.UTF-8"

LC_CTYPE="fr_FR.UTF-8"

LC_NUMERIC="fr_FR.UTF-8"

LC_TIME="fr_FR.UTF-8"

LC_COLLATE="fr_FR.UTF-8"

LC_MONETARY="fr_FR.UTF-8"

LC_MESSAGES="en_US.UTF-8"

LC_PAPER="fr_FR.UTF-8"

LC_NAME="fr_FR.UTF-8"

LC_ADDRESS="fr_FR.UTF-8"

LC_TELEPHONE="fr_FR.UTF-8"

LC_MEASUREMENT="fr_FR.UTF-8"

LC_IDENTIFICATION="fr_FR.UTF-8"

LC_ALL=""
```

ensuite, comme l'a dit kopp, en root tu fais un :

```
# locale-gen
```

Ca devrait aller après (au pire pour etre sur si ca marche pas, tu reboot un coup)

----------

## kernings

Voila ce que j'ai dans /etc/locale.gen

```
ks352777 ~ # cat /etc/locale.gen

# /etc/locale.gen: list all of the locales you want to have on your system

#

# The format of each line:

# <locale> <charmap>

#

# Where <locale> is a locale located in /usr/share/i18n/locales/ and

# where <charmap> is a charmap located in /usr/share/i18n/charmaps/.

#

# All blank lines and lines starting with # are ignored.

#

# For the default list of supported combinations, see the file:

# /usr/share/i18n/SUPPORTED

#

# Whenever glibc is emerged, the locales listed here will be automatically

# rebuilt for you.  After updating this file, you can simply run `locale-gen`

# yourself instead of re-emerging glibc.

#en_US ISO-8859-1

#en_US.UTF-8 UTF-8

#ja_JP.EUC-JP EUC-JP

#ja_JP.UTF-8 UTF-8

#ja_JP EUC-JP

#en_HK ISO-8859-1

#en_PH ISO-8859-1

#de_DE ISO-8859-1

#de_DE@euro ISO-8859-15

#es_MX ISO-8859-1

#fa_IR UTF-8

#fr_FR ISO-8859-1

#fr_FR@euro ISO-8859-15

#it_IT ISO-8859-1

```

locale.gen semble bien etre en root

----------

## ultrabug

 *kernings wrote:*   

> Voila ce que j'ai dans /etc/locale.gen
> 
> ```
> ks352777 ~ # cat /etc/locale.gen
> 
> ...

 

Tu as bien un problème donc, mets celles que j'ai moi, tu verras ca ira mieux  :Smile: 

 *Quote:*   

> en_US ISO-8859-1
> 
> en_US.UTF-8 UTF-8
> 
> fr_FR ISO-8859-1
> ...

 

----------

## kernings

En effet, ça marche, merci beaucoup ... 

  Simplement pour pas mourir idiot à quoi sert et quelle est la différence entre les fichier /etc/locale.gen et /etc/env.d/02local ? Et si je comprend bien ProFtpd utilise le langage par défaut qu'il va chercher dans le système ?

  Dernière question ... pourquoi cette variable n'as pas été initialisée lors de l'installation ?

Merci à vous, je met le sujet en résolu.

----------

## ultrabug

 *kernings wrote:*   

> quelle est la différence entre les fichier /etc/locale.gen et /etc/env.d/02local ? Et si je comprend bien ProFtpd utilise le langage par défaut qu'il va chercher dans le système ?

 

/etc/locale.gen -> locales de glibc

/etc/env.d/02local -> locales de ta session

 *kernings wrote:*   

> Dernière question ... pourquoi cette variable n'as pas été initialisée lors de l'installation ?

 

Parceque tu n'as pas tout suivi dans la doc  :Smile:  C'est écrit (extrait de la doc) :

 *Quote:*   

> Vous n'utiliserez probablement qu'une ou deux « locales » sur votre système. Vous pouvez définir les zones qui vous intéressent dans le fichier /etc/locale.gen.
> 
> Exemple de code 12 : Ouvrir le fichier /etc/locale.gen
> 
> # nano -w /etc/locale.gen
> ...

 

Bonne continuation  :Smile: 

----------

## kernings

OK merci, en fait j'ai pris un un serveur dédié avec une gentoo "vide" que j'ai mis à jour. Du coup, dans la nouvelle version, il y'a dû avoir des modifs au niveau de la langue.

 Encore merci, bonne soirée à vous

----------

## geekounet

Le (résolu) est en fin de titre normalement, et il faut laisser le [thème] au début, merci de faire la correction  :Wink: 

----------

