Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Matériel et logiciels > Linux & Mac > Mass virtual hosting apache > Lecture du sujet

Mass virtual hosting apache

à l'aide

Vous devez être inscrit pour pouvoir poster des messages

Page : 1  2  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1  2  Suivante
Hors ligne lemirandais # Posté le 31/05/2008 à 15:36:30
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
bonjour à tous!


Je suis en train de faire des tests pour mettre en place un serveur mass virtual hosting sous apache.
Cependant je n'y arrive pas.
De puis j'ai suivi le tuto de la mise en place de multiutilisateur sous debian présent sur ce site et j'ai créé un script php permettant de créer un espace libre sur le disque dur et ftp ....

Pour ce faire j'ai utilisé ceci: http://forum.ovh.com/showthread.php?t=13797&highlight=mass+virtual+hosting&page=2


voici mon script.Code : Console
ass_mysql_ftp=carmen
pass_mysql_root=elisha32vanille
DOSSIER=/home
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo "Mot de passe : "
read -s pass
echo "Mot de passe (le retour) : "
read -s pass2

if test $pass = $pass2 ; then

        mkdir $DOSSIER/$DOMAINE
        chmod 755 -R $DOSSIER/$DOMAINE
        mkdir $DOSSIER/$DOMAINE/logs
        mkdir $DOSSIER/$DOMAINE/public_html
        mkdir $DOSSIER/$DOMAINE/public_html/www
        chmod 777 -R $DOSSIER/$DOMAINE
        chmod 755 $DOSSIER/$DOMAINE
        echo "anon_world_readable_only=NO" > /etc/vsftpd/$nom
        echo "local_root=/home/$DOMAINE" >> /etc/vsftpd/$nom
        echo "write_enable=YES" >> /etc/vsftpd/$nom
        echo "anon_upload_enable=YES" >> /etc/vsftpd/$nom
        echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/$nom
        echo "anon_other_write_enable=YES" >> /etc/vsftpd/$nom
        echo "hide_file=(none)" >> /etc/vsftpd/$nom
        echo "force_dot_files=YES" >> /etc/vsftpd/$nom

        mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));"
        mysql -u root -p"$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON *.* TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_P$

        echo '<VirtualHost *:80>
        DocumentRoot '$DOSSIER'/'$DOMAINE'/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>
<VirtualHost *:80>
        DocumentRoot '$DOSSIER'/'$DOMAINE'/public_html/www
        ServerName $DOMAINE
        ServerAlias *.$DOMAINE
        VirtualDocumentRoot /home/$DOMAINE/%1
        <Directory '$DOSSIER'/'$DOMAINE'/public_html/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
</Directory>
         ErrorLog '$DOSSIER'/'$DOMAINE'/logs/error.log
        LogLevel warn
        CustomLog '$DOSSIER'/'$DOMAINE'/logs/access.log combined
         ServerSignature Off
         </VirtualHost>' > /etc/apache2/sites-available/$DOMAINE

        a2ensite $DOMAINE

        /etc/init.d/apache2 stop
        /etc/init.d/apache2 start
        echo "Utilisateur ajoute avec succes"

else
         echo "Les 2 mots de passe ne sont pas identiques"

fi


Je suppose qu'il y a un problème au niveau de la création du fichier host.

Par contre je n'est pas compris pourquoi il n'y a pas d'ip à la place de l'étoile.

Édité le 31/05/2008 à 19:17:46 par lemirandais
 
Hors ligne bb_awa # Posté le 06/06/2008 à 14:57:42
Nux addicT
Groupe : Membres
Salut, voilà j'ai essayer de corriger le max de probleme, mais le probleme c'est que je ne suis pas chez moi et je dispose que d'un portable sous windaube donc il m'est impossible de tester le script :(

A partir de là je te laisse la main.
Donne nous des nouvelles car si sa ne marche toujours pas je reprendrai le script a ZERO !! :)

Sur ce ...
Bonne continuation :)
Et a bientot.


Code : Bash
1

Il vaut mieux pas que vous voyez ça pour le moment :D :-°

EDIT : apres avoir relu le script que j'avais poster une fois bien reveiller je me suis rendu compte que c'etait bourrer d'erreurs donc meme pas la peine de le tester,
je le refait et je le reposte d'ici ce soir :)


LAST_EDIT :

Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash

# Definition des variables
pass_mysql_ftp=carmen
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd/vsftpd_user_conf

# On appele le menu
function_menu

function_menu(){
# On recupere les variables dont on a besoin
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo "Mot de passe : "
read -s pass
echo "Mot de passe (le retour) : "
read -s pass2
echo "#####################################"
#une fois les variables recuperees on passe a la fonction test_already_exist pour eviter d'ecraser un hebergement deja existant
function_test_already_exit
}


function_test_already_exit(){
echo " => Verification que le vHost n'existe pas deja"
# ** SI /$DOSSIER/$dir  existe  ALORS on annule et on repart au debut
if [ ! -d /'$DOSSIER'/'$dir' ] then {
echo " Attention : Le vHost existe deja ! "
echo "## Annulation ... ##"
function_menu
}
else {
#** SINON on passe a la fonction test_pass qui verifie si vous avez bien entrer 2 fois le meme pass
function_test_pass
}
fi
}

function_test_pass() {
echo ' => Verfication du password '
#Si le 1er pass est agal au 2 eme alors on continu
if [ "$pass" = "$pass2" ]; then {
function_create_dir
}
else {
#Sinon on annule et on repart au debut
echo " Attention : Les deux mots de passes ne sont pas identiques"  
echo "## Annulation ... ##"
function_menu }
fi }

function_create_dir(){
echo ' => Creation des dossiers et application du chmod'
mkdir /$DOSSIER/$DOMAINE
chmod 755 -R /$DOSSIER/$DOMAINE
mkdir /$DOSSIER/$DOMAINE/logs
mkdir /$DOSSIER/$DOMAINE/public_html
mkdir /$DOSSIER/$DOMAINE/public_html/www
chmod 777 -R /$DOSSIER/$DOMAINE
chmod 755 /$DOSSIER/$DOMAINE
function_vsftpd_conf
}

function_vsftpd_conf(){
echo ' => Confiduration de Vsftpd'
if ! grep -q "^local_root=" $USER_CONFIG_DIR/$user 2>/dev/null; then
              echo " => on chroote '$user'"
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom       #lecture seule
echo "local_root=/home/'$DOMAINE'" >> $USER_CONFIG_DIR/$nom      #repertoire d'arrivee
echo 'write_enable=YES' >> $USER_CONFIG_DIR/$nom            	 #droit d'ecriture
echo 'anon_upload_enable=YES' >> $USER_CONFIG_DIR/$nom			 #droit d'upload
echo 'anon_mkdir_write_enable=YES' >> $USER_CONFIG_DIR/$nom		 #droit de creer des repertoires
echo 'anon_other_write_enable=YES' >> $USER_CONFIG_DIR/$nom	
echo 'hide_file=(none)' >> $USER_CONFIG_DIR/$nom
echo 'force_dot_files=YES' >> $USER_CONFIG_DIR/$nom				 #On laisse une ligne vide
echo '' >> $USER_CONFIG_DIR/$nom
function_mysql_conf
else
              echo " **Attention** : $USER_CONFIG_DIR/$user: '$user' est déjà chrooté."
          fi

}

function_mysql_conf(){
		echo ' => On configure mysql'
        mysql -h 127.0.0.1 -u ftp -p "$pass_mysql_ftp" -D ftp -e INSERT INTO users (name ,pass) VALUES ('$nom', PASSWORD('$pass'), 'PASSWORD'); 
        mysql -h 127.0.0.1 -u root -p "$pass_mysql_root" -e CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON * . * TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0
function_apache_conf
		}

function_apache_conf(){
echo ' On configure apache'
echo "
<VirtualHost *:80>
        DocumentRoot /$DOSSIER/$DOMAINE/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost *:80>
	ServerName www.'$DOMAINE'
	ServerAlias *.'$DOMAINE'
	DocumentRoot /'$DOSSIER'/'$DOMAINE'/public_html/www/
	<Directory /'$DOSSIER'/'$DOMAINE'/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /'$DOSSIER'/'$DOMAINE'/logs/error.log
	LogLevel warn
	CustomLog /'$DOSSIER'/'$DOMAINE'/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$DOMAINE.conf
 
        a2ensite $DOMAINE

        /etc/init.d/apache2 reload
function_end
		}


function_end(){
		echo ''
        echo '-- vHost a ete ajouter avec succes --'
}


Vu que je me suis jamais servi de vsftpd,
il faudrait aussi localiser login.txt de vsftpd car je crois qu'il faut
y ajouter les pseudos et les mots de passes a chaque creation d'un vHost

login.txt
Ce fichier contient les login et mdp en clair des differents utilisateurs

user1
motdepasseuser1
user2
motdepasseuser2
=> le fichier doit finir par une ligne vide

Édité le 06/06/2008 à 18:27:57 par bb_awa

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 06/06/2008 à 15:33:45
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
Je testerais ceci ce soir, je vous tiens au courant.

Pour vsftp, j'utilise une base de donnée et non un fichier txt.
Édité le 06/06/2008 à 18:58:50 par lemirandais
 
Hors ligne bb_awa # Posté le 06/06/2008 à 19:40:57
Nux addicT
Groupe : Membres
ok donc pour sa c'est bon,

Tiens nous au courant :)

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 06/06/2008 à 22:31:24
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
Bon j'ai fait un copier coller de ce code, sauf j'ai modifier les mots de passe ftp et root car je les ai changer.
à l'exécution du code, il m'envoie cette erreur:

domaine.sh: line 11: function_menu: command not found
domaine.sh: line 40: syntax error near unexpected token `else'
domaine.sh: line 40: `else '

domaine.sh etant le fichier contenant ton code.
j'ai aussi enlevé les accents d'une des lignes du code pour pas avoir de problème d'accentuation.
Bon j'espere que quelqu'un pourra m'aider.
Merci d'avance

EDIT: D'après ce que j'ai vu, je me demande si il ne manque pas quelque " ; ". En plus la fonction function_menu n'a pas l'air de vouloir se lancer.En plus en relisant, tu as modifié mes virtuals host. Je veux faire du mass hosting apache. Donc le www qu'il y a dans public_html, ce www correspond au www du nom de domaine. Si j'aurais un dossier blog dans le dossier public_html, ce blog donnerait naissance à blog.domaine.tld .
Édité le 07/06/2008 à 08:47:30 par lemirandais
 
Hors ligne bb_awa # Posté le 07/06/2008 à 09:38:29
Nux addicT
Groupe : Membres
Voilà j'ai corriger les erreurs que je voyait mais il risque d'y avoir des problemes au niveau des droits, on verra bien.

Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/bin/bash

# Definition des variables
pass_mysql_ftp=carmen
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd/vsftpd_user_conf

fonction_end(){
		echo ''
        echo '-- vHost a ete ajouter avec succes --'
		exit 0
}

fonction_apache_conf(){
echo ' On configure apache'
echo "
<VirtualHost *:80>
        DocumentRoot /$DOSSIER/$DOMAINE/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost *:80>
	ServerName www.'$DOMAINE'
	ServerAlias *.'$DOMAINE'
	DocumentRoot /'$DOSSIER'/'$DOMAINE'/public_html/www/
	<Directory /'$DOSSIER'/'$DOMAINE'/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /'$DOSSIER'/'$DOMAINE'/logs/error.log
	LogLevel warn
	CustomLog /'$DOSSIER'/'$DOMAINE'/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$DOMAINE.conf
 
        a2ensite $DOMAINE

        /etc/init.d/apache2 reload
fonction_end
		}

fonction_mysql_conf(){
		echo ' => On configure mysql'
        
   '/usr/bin/mysql -h 127.0.0.1 -u ftp -p "$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', PASSWORD('$pass'), 'PASSWORD'); "'
        
   '/usr/bin/mysql -h 127.0.0.1 -u root -p "$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON * . * TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0"'
fonction_apache_conf
		}
		
fonction_create_dir(){
echo ' => Creation des dossiers et application du chmod'
mkdir /$DOSSIER/$DOMAINE
chmod 755 -R /$DOSSIER/$DOMAINE
mkdir /$DOSSIER/$DOMAINE/logs
mkdir /$DOSSIER/$DOMAINE/public_html
mkdir /$DOSSIER/$DOMAINE/public_html/www
chmod 777 -R /$DOSSIER/$DOMAINE
chmod 755 /$DOSSIER/$DOMAINE
chmod 755 -R /etc/apache2/sites-available/
chown -R $nom /etc/apache2/sites-available/
fonction_vsftpd_conf
}
		
fonction_vsftpd_conf(){
echo ' => Confiduration de Vsftpd'
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom       #lecture seule
echo "local_root=/home/'$DOMAINE'" >> $USER_CONFIG_DIR/$nom      #repertoire d'arrivee
echo 'write_enable=YES' >> $USER_CONFIG_DIR/$nom            	 #droit d'ecriture
echo 'anon_upload_enable=YES' >> $USER_CONFIG_DIR/$nom			 #droit d'upload
echo 'anon_mkdir_write_enable=YES' >> $USER_CONFIG_DIR/$nom		 #droit de creer des repertoires
echo 'anon_other_write_enable=YES' >> $USER_CONFIG_DIR/$nom	
echo 'hide_file=(none)' >> $USER_CONFIG_DIR/$nom
echo 'force_dot_files=YES' >> $USER_CONFIG_DIR/$nom				 #On laisse une ligne vide
echo '' >> $USER_CONFIG_DIR/$nom
fonction_mysql_conf
}

#fonction_test_already_exist(){
#echo " => Verification que le vHost n'existe pas deja"
#if [ ! -d /'$DOSSIER'/'$DOMAINE' ]; then {
#echo " Attention : Le vHost existe deja ! "
#echo "## Annulation ... ##"
#fonction_menu
#}
#else {
#fonction_test_pass
#}
#fi
#}

fonction_test_pass() {
echo ' => Verfication du password '
if [ "$pass" = "$pass2" ]; then 
{
fonction_create_dir
}
else 
{
echo " Attention : Les deux mots de passes ne sont pas identiques"  
echo "## Annulation ... ##"
fonction_menu 
}
fi 
}

fonction_menu(){
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo -n "Mot de passe : "
read  pass
echo -n "Mot de passe (le retour) : "
read  pass2
echo "#####################################"
fonction_test_pass
}

fonction_first_menu(){
echo 'Menu :'
echo ''
echo '1.Creer un vHost.'
echo '2.Quitter'
echo ''
echo -n 'Votre choix ( 1 - 2) :'
read choix
if [ "$choix" = "1" ]; then
{
fonction_menu
}
else
{
exit 0
}
fi
}

fonction_first_menu

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 07/06/2008 à 14:07:25
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
J'ai fait ça car tes commandes mysql était érroné par rapport à ma base de donnee.

Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
!/bin/bash

# Definition des variables
pass_mysql_ftp=carmen
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd/vsftpd_user_conf

fonction_end(){
		echo ''
        echo '-- vHost a ete ajouter avec succes --'
		exit 0
}

fonction_apache_conf(){
echo ' On configure apache'
echo "
<VirtualHost *:80>
        DocumentRoot /$DOSSIER/$DOMAINE/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost *:80>
	ServerName www.'$DOMAINE'
	ServerAlias *.'$DOMAINE'
	DocumentRoot /'$DOSSIER'/'$DOMAINE'/public_html/www/
	<Directory /'$DOSSIER'/'$DOMAINE'/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /'$DOSSIER'/'$DOMAINE'/logs/error.log
	LogLevel warn
	CustomLog /'$DOSSIER'/'$DOMAINE'/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$DOMAINE.conf
 
        a2ensite $DOMAINE

        /etc/init.d/apache2 stop
        /etc/init.d/apache2 start
fonction_end
		}

fonction_mysql_conf(){
		echo ' => On configure mysql'
                        mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));"
        
    mysql -u root -p"$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON *.* TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS $nom;GRANT ALL PRIVILEGES ON $nom.* TO '$nom'@'localhost';"
fonction_apache_conf
		}
		
fonction_create_dir(){
echo ' => Creation des dossiers et application du chmod'
mkdir /$DOSSIER/$DOMAINE
chmod 755 -R /$DOSSIER/$DOMAINE
mkdir /$DOSSIER/$DOMAINE/logs
mkdir /$DOSSIER/$DOMAINE/public_html
mkdir /$DOSSIER/$DOMAINE/public_html/www
chmod 777 -R /$DOSSIER/$DOMAINE
chmod 755 /$DOSSIER/$DOMAINE
chmod 755 -R /etc/apache2/sites-available/
chown -R $nom /etc/apache2/sites-available/
fonction_vsftpd_conf
}
		
fonction_vsftpd_conf(){
echo ' => Confiduration de Vsftpd'
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom       #lecture seule
echo "local_root=/home/'$DOMAINE'" >> $USER_CONFIG_DIR/$nom      #repertoire d'arrivee
echo 'write_enable=YES' >> $USER_CONFIG_DIR/$nom            	 #droit d'ecriture
echo 'anon_upload_enable=YES' >> $USER_CONFIG_DIR/$nom			 #droit d'upload
echo 'anon_mkdir_write_enable=YES' >> $USER_CONFIG_DIR/$nom		 #droit de creer des repertoires
echo 'anon_other_write_enable=YES' >> $USER_CONFIG_DIR/$nom	
echo 'hide_file=(none)' >> $USER_CONFIG_DIR/$nom
echo 'force_dot_files=YES' >> $USER_CONFIG_DIR/$nom				 #On laisse une ligne vide
echo '' >> $USER_CONFIG_DIR/$nom
fonction_mysql_conf
}

#fonction_test_already_exist(){
#echo " => Verification que le vHost n'existe pas deja"
#if [ ! -d /'$DOSSIER'/'$DOMAINE' ]; then {
#echo " Attention : Le vHost existe deja ! "
#echo "## Annulation ... ##"
#fonction_menu
#}
#else {
#fonction_test_pass
#}
#fi
#}

fonction_test_pass() {
echo ' => Verfication du password '
if [ "$pass" = "$pass2" ]; then 
{
fonction_create_dir
}
else 
{
echo " Attention : Les deux mots de passes ne sont pas identiques"  
echo "## Annulation ... ##"
fonction_menu 
}
fi 
}

fonction_menu(){
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo -n "Mot de passe : "
read  pass
echo -n "Mot de passe (le retour) : "
read  pass2
echo "#####################################"
fonction_test_pass
}

fonction_first_menu(){
echo 'Menu :'
echo ''
echo '1.Creer un vHost.'
echo '2.Quitter'
echo ''
echo -n 'Votre choix ( 1 - 2) :'
read choix
if [ "$choix" = "1" ]; then
{
fonction_menu
}
else
{
exit 0
}
fi
}

fonction_first_menu


Il me renvoie ce message:

Citation : ma console
#####################################
=> Verfication du password
=> Creation des dossiers et application du chmod
chown: `pascal': usager invalide
=> Confiduration de Vsftpd
=> On configure mysql
On configure apache
This site does not exist!
Reloading web server config...2430
apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.1.99 for ServerName
.

-- vHost a ete ajouter avec succes --


Je voudrais en meme temps savoir pourquoi tu fait ceci:
Code : Bash
1
2
chmod 755 -R /etc/apache2/sites-available/
chown -R $nom /etc/apache2/sites-available/

Je ne comprend pas trop l'utilité.
Édité le 07/06/2008 à 14:08:18 par lemirandais
 
Hors ligne bb_awa # Posté le 07/06/2008 à 18:35:16
Nux addicT
Groupe : Membres
Pour la ligne mysql j'ai retirer la fonction ENCRYPT car j'ai déja eu des problemes avec donc j'aurais pu voir si le probleme lié a mysql venait de là.


Pour les commandes
Code : Bash
1
2
chmod 755 -R /etc/apache2/sites-available/
chown -R $nom /etc/apache2/sites-available/

tu avais raison ^^ sa servait strictement a rien
je l'ai remplacer pour etre sur d'avoir les droits pour ecrire les configuration d'apache dans le $DOMAINE.conf
Code : Bash
1
chmod 755 -R /etc/apache2/sites-available/$DOMAINE.conf



Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/bin/bash

# Definition des variables
pass_mysql_ftp=carmen
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd/vsftpd_user_conf

fonction_end(){
		echo ''
        echo '$0'': -- Le vHost ''$DOMAINE'' a ete ajouter avec succes --'
		exit 0
}

fonction_apache_conf(){
echo "'$0': On configure apache"
echo "
<VirtualHost 192.168.1.99:80>
        DocumentRoot /$DOSSIER/$DOMAINE/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost 192.168.1.99:80>
	ServerName www.'$DOMAINE'
	ServerAlias *.'$DOMAINE'
	DocumentRoot /'$DOSSIER'/'$DOMAINE'/public_html/www/
	<Directory /'$DOSSIER'/'$DOMAINE'/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /'$DOSSIER'/'$DOMAINE'/logs/error.log
	LogLevel warn
	CustomLog /'$DOSSIER'/'$DOMAINE'/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$DOMAINE.conf
 
        a2ensite $DOMAINE

        /etc/init.d/apache2 reload
fonction_end
		}

fonction_mysql_conf(){
		echo "'$0':  On configure mysql"
        
   '/usr/bin/mysql -h 127.0.0.1 -u ftp -p "$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', PASSWORD('$pass'), 'PASSWORD'); "'
        
   '/usr/bin/mysql -h 127.0.0.1 -u root -p "$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON * . * TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0"'
fonction_apache_conf
		}
		
fonction_create_dir(){
echo "'$0': Creation des dossiers et application du chmod"
mkdir /$DOSSIER/$DOMAINE
chmod 755 -R /$DOSSIER/$DOMAINE
mkdir /$DOSSIER/$DOMAINE/logs
mkdir /$DOSSIER/$DOMAINE/public_html
mkdir /$DOSSIER/$DOMAINE/public_html/www
chmod 777 -R /$DOSSIER/$DOMAINE
chmod 755 /$DOSSIER/$DOMAINE
chmod 755 /etc/apache2/sites-available/$DOMAINE.conf
fonction_vsftpd_conf
}
		
fonction_vsftpd_conf(){
echo "'$0': Confiduration de Vsftpd"
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom       #lecture seule
echo "local_root=/home/'$DOMAINE'" >> $USER_CONFIG_DIR/$nom      #repertoire d'arrivee
echo 'write_enable=YES' >> $USER_CONFIG_DIR/$nom            	 #droit d'ecriture
echo 'anon_upload_enable=YES' >> $USER_CONFIG_DIR/$nom			 #droit d'upload
echo 'anon_mkdir_write_enable=YES' >> $USER_CONFIG_DIR/$nom		 #droit de creer des repertoires
echo 'anon_other_write_enable=YES' >> $USER_CONFIG_DIR/$nom	
echo 'hide_file=(none)' >> $USER_CONFIG_DIR/$nom
echo 'force_dot_files=YES' >> $USER_CONFIG_DIR/$nom				 #On laisse une ligne vide
echo '' >> $USER_CONFIG_DIR/$nom
fonction_mysql_conf
}

#fonction_test_already_exist(){
#echo " => Verification que le vHost n'existe pas deja"
#if [ ! -d /'$DOSSIER'/'$DOMAINE' ]; then {
#echo " Attention : Le vHost existe deja ! "
#echo "## Annulation ... ##"
#fonction_menu
#}
#else {
#fonction_test_pass
#}
#fi
#}

fonction_test_pass() {
echo "'$0': Verfication du password "
if [ "$pass" = "$pass2" ]; then;
{
fonction_create_dir
}
else 
{
echo "'$0':  Attention : Les deux mots de passes ne sont pas identiques"  
echo "'$0': ## Annulation ... ##"
fonction_menu 
}
fi 
}

fonction_menu(){
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo -n "Mot de passe : "
read  pass
echo -n "Mot de passe (le retour) : "
read  pass2
echo "#####################################"
fonction_test_pass
}

fonction_first_menu(){
echo "'$0': Menu :"
echo ''
echo '      ---'
echo ''
echo '1.Creer un vHost.'
echo '2.Quitter'
echo ''
echo -n 'Votre choix ( 1 - 2) :'
read choix
if [ "$choix" = "1" ]; then
{
fonction_menu
}
else
{
exit 0
}
fi
}

fonction_first_menu


Il faut aussi rentrer l'ip a la main aux lignes 18 et 23.

Il faut aussi creer l'utilisateur "$user" a la main aussi si il n'existe pas il ne sera pas creer.

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 07/06/2008 à 18:38:36
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
user ne peut il pas être non?
 
Hors ligne bb_awa # Posté le 07/06/2008 à 18:39:07
Nux addicT
Groupe : Membres
Pour la ligne mysql j'ai retirer la fonction ENCRYPT car j'ai déja eu des problemes avec donc j'aurais pu voir si le probleme lié a mysql venait de là.


Pour les commandes
Code : Bash
1
2
chmod 755 -R /etc/apache2/sites-available/
chown -R $nom /etc/apache2/sites-available/

tu avais raison ^^ sa servait strictement a rien
je l'ai remplacer pour etre sur d'avoir les droits pour ecrire les configuration d'apache dans le $DOMAINE.conf
Code : Bash
1
chmod 755 -R /etc/apache2/sites-available/$DOMAINE.conf



Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/bin/bash

# Definition des variables
pass_mysql_ftp=carmen
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd/vsftpd_user_conf

fonction_end(){
		echo ''
        echo '$0'': -- Le vHost ''$DOMAINE'' a ete ajouter avec succes --'
		exit 0
}

fonction_apache_conf(){
echo "'$0': On configure apache"
echo "
<VirtualHost *:80>
        DocumentRoot /$DOSSIER/$DOMAINE/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost *:80>
	ServerName www.'$DOMAINE'
	ServerAlias *.'$DOMAINE'
	DocumentRoot /'$DOSSIER'/'$DOMAINE'/public_html/www/
	<Directory /'$DOSSIER'/'$DOMAINE'/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /'$DOSSIER'/'$DOMAINE'/logs/error.log
	LogLevel warn
	CustomLog /'$DOSSIER'/'$DOMAINE'/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$DOMAINE.conf
 
        a2ensite $DOMAINE

        /etc/init.d/apache2 reload
fonction_end
		}

fonction_mysql_conf(){
		echo "'$0':  On configure mysql"
        
   '/usr/bin/mysql -h 127.0.0.1 -u ftp -p "$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', PASSWORD('$pass'), 'PASSWORD'); "'
        
   '/usr/bin/mysql -h 127.0.0.1 -u root -p "$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON * . * TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0"'
fonction_apache_conf
		}
		
fonction_create_dir(){
echo "'$0': Creation des dossiers et application du chmod"
mkdir /$DOSSIER/$DOMAINE
chmod 755 -R /$DOSSIER/$DOMAINE
mkdir /$DOSSIER/$DOMAINE/logs
mkdir /$DOSSIER/$DOMAINE/public_html
mkdir /$DOSSIER/$DOMAINE/public_html/www
chmod 777 -R /$DOSSIER/$DOMAINE
chmod 755 /$DOSSIER/$DOMAINE
chmod 755 /etc/apache2/sites-available/$DOMAINE.conf
fonction_vsftpd_conf
}
		
fonction_vsftpd_conf(){
echo "'$0': Confiduration de Vsftpd"
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom       #lecture seule
echo "local_root=/home/'$DOMAINE'" >> $USER_CONFIG_DIR/$nom      #repertoire d'arrivee
echo 'write_enable=YES' >> $USER_CONFIG_DIR/$nom            	 #droit d'ecriture
echo 'anon_upload_enable=YES' >> $USER_CONFIG_DIR/$nom			 #droit d'upload
echo 'anon_mkdir_write_enable=YES' >> $USER_CONFIG_DIR/$nom		 #droit de creer des repertoires
echo 'anon_other_write_enable=YES' >> $USER_CONFIG_DIR/$nom	
echo 'hide_file=(none)' >> $USER_CONFIG_DIR/$nom
echo 'force_dot_files=YES' >> $USER_CONFIG_DIR/$nom				 #On laisse une ligne vide
echo '' >> $USER_CONFIG_DIR/$nom
fonction_mysql_conf
}

#fonction_test_already_exist(){
#echo " => Verification que le vHost n'existe pas deja"
#if [ ! -d /'$DOSSIER'/'$DOMAINE' ]; then {
#echo " Attention : Le vHost existe deja ! "
#echo "## Annulation ... ##"
#fonction_menu
#}
#else {
#fonction_test_pass
#}
#fi
#}

fonction_test_pass() {
echo "'$0': Verfication du password "
if [ "$pass" = "$pass2" ]; then;
{
fonction_create_dir
}
else 
{
echo "'$0':  Attention : Les deux mots de passes ne sont pas identiques"  
echo "'$0': ## Annulation ... ##"
fonction_menu 
}
fi 
}

fonction_menu(){
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo -n "Mot de passe : "
read  pass
echo -n "Mot de passe (le retour) : "
read  pass2
echo "#####################################"
fonction_test_pass
}

fonction_first_menu(){
echo "'$0': Menu :"
echo ''
echo '      ---'
echo ''
echo '1.Creer un vHost.'
echo '2.Quitter'
echo ''
echo -n 'Votre choix ( 1 - 2) :'
read choix
if [ "$choix" = "1" ]; then
{
fonction_menu
}
else
{
exit 0
}
fi
}

fonction_first_menu


Il faut aussi rentrer l'ip a la main aux lignes 18 et 23.

Et aussi creer l'utilisateur "$user" a la main, si il n'existe pas il ne sera pas creer !
Édité le 07/06/2008 à 18:40:48 par bb_awa

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 07/06/2008 à 18:41:25
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
je ne comprend pas ce que tu veux dire par

Et aussi creer l'utilisateur "$user" a la main aussi si il n'existe pas il ne sera pas creer !
 
Hors ligne bb_awa # Posté le 07/06/2008 à 18:46:10
Nux addicT
Groupe : Membres
Si je me trompe pas, il faut 1 vHost pas Utilisateur linux.

Donc en fait pour chaque vhost il faut que tu ajoute un utilisateur sur la machine, comme si tu creer une autre session.

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 07/06/2008 à 18:47:36
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
on peut pas le rendre automatique? car en fait, le nom de domaine sans le www correspond a mon user. En fait il y a un probleme au niveau de a2ensite
Édité le 07/06/2008 à 18:49:30 par lemirandais
 
Hors ligne bb_awa # Posté le 07/06/2008 à 18:48:31
Nux addicT
Groupe : Membres
Si biensur :) je t'envoi ça dans quelques minutes

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 07/06/2008 à 18:52:18
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
Ton code au dessus est bon, il me crait une base de donnée, un accès ftp fonctionnel, un espace web. C'est bon mais quand j'utilise un domaine en .com, il m'oriente vers l'emplacement /var/www/ et non /home/mondomaine.com/public_html/www
j'ai orienter mon domaine sur l'ip de mon serveur, est ce bon?
PS:j'ai une ip fixe.
 
Hors ligne bb_awa # Posté le 07/06/2008 à 19:28:14
Nux addicT
Groupe : Membres

J'ai editer le code et ajouter les dernieres corrections à 19h46



Si le nom est le meme que ton domaine alors il faut remplacer $DOMAINE par $nom pour les creations de dossier et etc ...

Pour l'ip sa devrait etre bon avec l'ip locale.


Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/bin/bash

# Definition des variables
pass_mysql_ftp=carmen
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd/vsftpd_user_conf

fonction_end(){
		echo ''
        echo "$0: -- Le vHost $DOMAINE a ete ajouter avec succes --"
		exit 0
}

fonction_apache_conf(){
echo "$0: On configure apache"
echo "
<VirtualHost 192.168.1.99:80>
        DocumentRoot /$DOSSIER/$nom/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost 192.168.1.99:80>
	ServerName www.$DOMAINE
	ServerAlias *.$DOMAINE
	DocumentRoot /$DOSSIER/$nom/public_html/www/
	<Directory /$DOSSIER/$nom/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /$DOSSIER/$nom/logs/error.log
	LogLevel warn
	CustomLog /$DOSSIER/$nom/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$nom.conf
 
        a2ensite $nom

        /etc/init.d/apache2 reload
fonction_end
		}

fonction_mysql_conf(){
		echo "$0:  On configure mysql"
        
   '/usr/bin/mysql -h 127.0.0.1 -u ftp -p "$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', PASSWORD('$pass'), 'PASSWORD'); "'
        
   '/usr/bin/mysql -h 127.0.0.1 -u root -p "$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON * . * TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0"'
fonction_apache_conf
		}
		
fonction_create_dir(){
echo "$0: Creation des dossiers et application du chmod"
chmod 755 -R /$DOSSIER/$nom
mkdir /$DOSSIER/$nom/logs
mkdir /$DOSSIER/$nom/public_html
mkdir /$DOSSIER/$nom/public_html/www
chmod 777 -R /$DOSSIER/$nom
chmod 755 /$DOSSIER/$nom
chmod 777 /etc/apache2/sites-available/$nom.conf
fonction_vsftpd_conf
}
		
fonction_vsftpd_conf(){
echo "$0: Confiduration de Vsftpd"
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom       #lecture seule
echo "local_root=/home/$DOMAINE" >> $USER_CONFIG_DIR/$nom        #repertoire d'arrivee
echo 'write_enable=YES' >> $USER_CONFIG_DIR/$nom            	 #droit d'ecriture
echo 'anon_upload_enable=YES' >> $USER_CONFIG_DIR/$nom			 #droit d'upload
echo 'anon_mkdir_write_enable=YES' >> $USER_CONFIG_DIR/$nom		 #droit de creer des repertoires
echo 'anon_other_write_enable=YES' >> $USER_CONFIG_DIR/$nom	
echo 'hide_file=(none)' >> $USER_CONFIG_DIR/$nom
echo 'force_dot_files=YES' >> $USER_CONFIG_DIR/$nom				 
echo '' >> $USER_CONFIG_DIR/$nom								 #On laisse une ligne vide
fonction_mysql_conf
}

fonction_test_pass() {
echo "$0: Verfication du password "
if [ "$pass" = "$pass2" ]; then
{
fonction_create_dir
}
else 
{
echo "$0:  Attention : Les deux mots de passes ne sont pas identiques"  
echo "$0: ## Annulation ... ##"
fonction_first_menu 
}
fi 
}

fonction_create_user(){
# création du user (le programme s'arrête par sécurité si le user existe déja )

/usr/sbin/useradd $nom -p `perl -e "print crypt('$pass',pwet)"` -d /$DOSSIER/$nom -m -s /bin/bash

if [ $? -ne 0 ]; then
{
    echo "$0: L'utilisateur $nom existe déjà , opération annulée !"
fonction_first_menu 
}
else
{
echo "$0: Utilisateur $nom cree\n"
fonction_test_pass
}
fi
}



fonction_menu(){
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo -n "Mot de passe : "
read  pass
echo -n "Mot de passe (le retour) : "
read  pass2
echo "#####################################"
fonction_create_user
}

fonction_first_menu(){
echo "'$0': Menu :"
echo ''
echo '      ---'
echo ''
echo '1.Creer un vHost.'
echo '2.Quitter'
echo ''
echo -n 'Votre choix ( 1 - 2) :'
read choix
if [ "$choix" = "1" ]; then
{
fonction_menu
}
else
{
exit 0
}
fi
}

fonction_first_menu


Si jamais tu as la moindre erreur qui sort dit moi le parce que je pense qu'il y a un probleme avec les droits d'ecriture du user.conf d'apache

PS : Oubli pas de remettre ton ip ^^


J'ai editer le code et ajouter les dernieres corrections à 19h46

Édité le 07/06/2008 à 19:48:03 par bb_awa

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 07/06/2008 à 20:35:15
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
Voici le message qui m'envoie. J'ai fait un copier coller de ton script

Code : Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
/root/domaine.sh: Utilisateur knoppix cree\n
/root/domaine.sh: Verfication du password 
/root/domaine.sh: Creation des dossiers et application du chmod
chmod: ne peut accéder `/etc/apache2/sites-available/knoppix.conf': Aucun fichier ou répertoire de ce type
/root/domaine.sh: Confiduration de Vsftpd
/root/domaine.sh:  On configure mysql
/root/domaine.sh: line 51: /usr/bin/mysql -h 127.0.0.1 -u ftp -p "$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES (knoppix, PASSWORD(elisha), PASSWORD); ": Aucun fichier ou répertoire de ce type
/root/domaine.sh: line 53: /usr/bin/mysql -h 127.0.0.1 -u root -p "$pass_mysql_root" -e "CREATE USER knoppix@localhost IDENTIFIED BY elisha;GRANT USAGE ON * . * TO knoppix@localhost IDENTIFIED BY elisha WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0": Nom de fichier trop long
/root/domaine.sh: On configure apache
This site does not exist!
Reloading web server config...2984
.

/root/domaine.sh: -- Le vHost leknoppix.com a ete ajouter avec succes --


Je comprend pas pourquoi tu me fait marque ceci dans l'enregistrement mysql :
/usr/bin/mysql -h 127.0.0.1 -u ftp -p "$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES (knoppix, PASSWORD(monpass), PASSWORD);

POurquoi ne puisje pas utiliser ceci?
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));"
 
Hors ligne bb_awa # Posté le 08/06/2008 à 01:25:45
Nux addicT
Groupe : Membres
pour mysql tu as aussi raison :D

Code : Bash
1
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));"


La seule chose qui manque c'est de
savoir ou doit se trouver se fichier user.conf
car je pense que le chemin d'acces pour l'ecriture n'est pas
bon donc il faudrait voir si tu peu le trouver.

Linux is not just an Os but is the future of the humanity !
- Citation ubuntu : "... You are encorouraged and legally entiltled to copy, reinstall, modify and redistribute this CD ..." Yeaaah !! :D Le libre !

- Si Billou à inventer crosoft et windaube alors le Manchot a inventer Billou (meme si il l'a rater :-° ).
- La connerie n'est pas un virus mais elle se propage a la meme vitesse.


Citation : Alert
Attention, Votre windows n'a pas planter depuis plus d'1h,
-Windows va maintenant effectuer un plantage de routine.
-FATALERROR
 
Hors ligne lemirandais # Posté le 08/06/2008 à 10:54:12
Ubuntu, Debian, Tiger USER
Avatar
Groupe : Membres
Toujours un problème:
Code : Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
/root/domaine.sh: Utilisateur knoppix cree\n
/root/domaine.sh: Verfication du password 
/root/domaine.sh: Creation des dossiers et application du chmod
chmod: ne peut accéder `/etc/apache2/sites-available/knoppix.conf': Aucun fichier ou répertoire de ce type
/root/domaine.sh: Confiduration de Vsftpd
/root/domaine.sh:  On configure mysql
/root/domaine.sh: On configure apache
This site does not exist!
Reloading web server config...2462
.

/root/domaine.sh: -- Le vHost leknoppix a ete ajouter avec succes --


Voici le code que j'ai utilisé:
Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/bin/bash

# Definition des variables
pass_mysql_ftp=elisha32vanille
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd

fonction_end(){
		echo ''
        echo "$0: -- Le vHost $DOMAINE a ete ajouter avec succes --"
		exit 0
}

fonction_apache_conf(){
echo "$0: On configure apache"
echo "
<VirtualHost 192.168.1.99:80>
        DocumentRoot /$DOSSIER/$nom/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost 192.168.1.99:80>
	ServerName www.$DOMAINE
	ServerAlias *.$DOMAINE
	DocumentRoot /$DOSSIER/$nom/public_html/www/
	<Directory /$DOSSIER/$nom/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /$DOSSIER/$nom/logs/error.log
	LogLevel warn
	CustomLog /$DOSSIER/$nom/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$nom.conf
 
        a2ensite $nom

        /etc/init.d/apache2 reload
fonction_end
		}

fonction_mysql_conf(){
		echo "$0:  On configure mysql"
        
  mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));"
        
                   mysql -u root -p"$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass'; GRANT USAGE ON *.* TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; CREATE DATABASE IF NOT EXISTS $nom; GRANT ALL PRIVILEGES ON $nom.* TO '$nom'@'localhost';"
fonction_apache_conf
		}
		
fonction_create_dir(){
echo "$0: Creation des dossiers et application du chmod"
chmod 755 -R /$DOSSIER/$nom
mkdir /$DOSSIER/$nom/logs
mkdir /$DOSSIER/$nom/public_html
mkdir /$DOSSIER/$nom/public_html/www
chmod 777 -R /$DOSSIER/$nom
chmod 755 /$DOSSIER/$nom
chmod 777 /etc/apache2/sites-available/$nom.conf
fonction_vsftpd_conf
}
		
fonction_vsftpd_conf(){
echo "$0: Confiduration de Vsftpd"
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom       #lecture seule
echo "local_root=/home/$DOMAINE" >> $USER_CONFIG_DIR/$nom        #repertoire d'arrivee
echo 'write_enable=YES' >> $USER_CONFIG_DIR/$nom            	 #droit d'ecriture
echo 'anon_upload_enable=YES' >> $USER_CONFIG_DIR/$nom			 #droit d'upload
echo 'anon_mkdir_write_enable=YES' >> $USER_CONFIG_DIR/$nom		 #droit de creer des repertoires
echo 'anon_other_write_enable=YES' >> $USER_CONFIG_DIR/$nom	
echo 'hide_file=(none)' >> $USER_CONFIG_DIR/$nom
echo 'force_dot_files=YES' >> $USER_CONFIG_DIR/$nom				 
echo '' >> $USER_CONFIG_DIR/$nom								 #On laisse une ligne vide
fonction_mysql_conf
}

fonction_test_pass() {
echo "$0: Verfication du password "
if [ "$pass" = "$pass2" ]; then
{
fonction_create_dir
}
else 
{
echo "$0:  Attention : Les deux mots de passes ne sont pas identiques"  
echo "$0: ## Annulation ... ##"
fonction_first_menu 
}
fi 
}

fonction_create_user(){
# creation du user (le programme s'arrete par securite si le user existe deja )

/usr/sbin/useradd $nom -p `perl -e "print crypt('$pass',pwet)"` -d /$DOSSIER/$nom -m -s /bin/bash

if [ $? -ne 0 ]; then
{
    echo "$0: L'utilisateur $nom existe deja , operation annulee !"
fonction_first_menu 
}
else
{
echo "$0: Utilisateur $nom cree\n"
fonction_test_pass
}
fi
}



fonction_menu(){
echo -n "Nom d'utilisateur : "
read nom
echo -n "Nom de domaine (sans les www) : "
read DOMAINE
echo -n "Mot de passe : "
read  pass
echo -n "Mot de passe (le retour) : "
read  pass2
echo "#####################################"
fonction_create_user
}

fonction_first_menu(){
echo "'$0': Menu :"
echo ''
echo '      ---'
echo ''
echo '1.Creer un vHost.'
echo '2.Quitter'
echo ''
echo -n 'Votre choix ( 1 - 2) :'
read choix
if [ "$choix" = "1" ]; then
{
fonction_menu
}
else
{
exit 0
}
fi
}

fonction_first_menu



En relisant, il y a un petit problème au niveau de la config de vsftpd, mais sa ne viens pas de là le problème.
Il dit qu'il ne peux pas chroner le fichier car il n'existe pas.Tu chrone et après tu crais. Il ne faudrai pas faire ceci avant de chrone
Code : Bash
1
echo "" >> $USER_CONFIG_DIR/$nom


Après j'ai une petite question, L'ip du virtualhost, c'est laquelle? L'ip de la machine sur le réseau 192.168.1.99 ou l'ip du FAI?
Édité le 08/06/2008 à 11:10:53 par lemirandais
 
Hors ligne bb_awa # Posté le 08/06/2008 à 13:52:44
Nux addicT
Groupe : Membres
Pour l'ip oui c'est l'ip de la machine 192.168.*.**

Pour le fichier .conf je pense plutot qu'il n'est pas creer a aucun moment en fait car cette commande

Initialisation du fichier + ecriture :

Code : Bash
1
echo 'anon_world_readable_only=NO' > $USER_CONFIG_DIR/$nom


Ecriture a la suite du fichier :

Code : Bash
1
echo "local_root=/home/$DOMAINE" >> $USER_CONFIG_DIR/$nom


Meme avec un seul > je ne pense pas que cela creer et modifie le fichier,
sa redonne juste le fichier vierge, donc si il n'existe pas il sera pas creer
On va essayer de faire un touch sur ce fichier

Code : Bash
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#!/bin/bash

# Definition des variables
pass_mysql_ftp=elisha32vanille
pass_mysql_root=elisha32vanille
DOSSIER=home
USER_CONFIG_DIR=/etc/vsftpd

fonction_end(){
		echo ''
        echo "$0: -- Le vHost $DOMAINE a ete ajouter avec succes --"
		exit 0
}

fonction_apache_conf(){
echo "$0: On configure apache"
echo "
<VirtualHost 192.168.1.99:80>
        DocumentRoot /$DOSSIER/$nom/public_html/www
        ServerName www.$DOMAINE
        </VirtualHost>

<VirtualHost 192.168.1.99:80>
	ServerName www.$DOMAINE
	ServerAlias *.$DOMAINE
	DocumentRoot /$DOSSIER/$nom/public_html/www/
	<Directory /$DOSSIER/$nom/public_html/>
		Options -Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /$DOSSIER/$nom/logs/error.log
	LogLevel warn
	CustomLog /$DOSSIER/$nom/logs/access.log combined
	ServerSignature Off
</VirtualHost> 

" > /etc/apache2/sites-available/$nom.conf
 
        a2ensite $nom

        /etc/init.d/apache2 reload
fonction_end
		}

fonction_mysql_conf(){
		echo "$0:  On configure mysql"
        
  mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));"
        
                   mysql -u root -p"$pass_mysql_root" -e