Итак, я создаю веб-сервер и сервер MySQL с нуля ...

Сервер A будет иметь Apache, а сервер PHP B будет иметь MySQL На обоих серверах работает сервер Ubuntu 12.04 LTS

Я планирую позволить моей семье и друзьям иметь свои собственные учетные записи (как РЕАЛЬНЫЙ веб-хостинг!) и решили попытаться написать сценарий процесса создания учетной записи. Теперь я могу делать простые однострочные сценарии в Linux или пакетном сценарии DOS, черт возьми, из того, что я хочу сделать, но полноценные сценарии оболочки меня пугают.

Итак, вот что у меня есть ... Будет ли это работать без катастрофического обвала ???

REM Lets prompt for the user info...

echo -n "Please enter the new username: "
read user
echo -n "Enter the default password: "
read password
home=/var/www/$user

REM Create the user and assign the password

sudo useradd $user
net user $user $password

REM Create them an account on the MySQL server

database='$user'_db
mysql [mysql-server-hostname] -u root@[hostname] -p [pass] -e "create user '$user'@'%' identified by '$password';"
mysql [mysql-server-hostname] -u root@[hostname] -p [pass] -e "create database $database;"
mysql [mysql-server-hostname] -u root@[hostname] -p [pass] -e "grant all on '$database'.* to '$user'@%;"

REM Making some dirs

mkdir $home
mkdir $home/public_html
mkdir $home/public_ftp
usermod -m -d $home

REM Gotta let them have access

chown -R $user:$user $home
chmod 755 $home/public_html
chmod 755 $home/public_ftp

REM Add to some groups

useradd -G sftp $user
useradd -G ftp $user
useradd -G ssh $user

/etc/init.d/apache2 restart

1 ответ1

0

Вам лучше использовать существующий продукт. На ум приходит ISPConfig. Я использовал его в прошлом и отлично работал. Вы даже можете предоставить графический интерфейс своим конечным пользователям для управления их частью сервера. У вас также есть ограничения квоты на количество доменов и / или сайтов, которые могут быть размещены.

http://www.howtoforge.com/perfect-server-ubuntu-12.04-lts-apache2-bind-dovecot-ispconfig-3

http://www.ispconfig.org/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .