Доброе время суток!
В этом посте, я наглядно покажу, как создать простой и в тоже время полезный bash скрипт для создания площадки под ваш сайт в ubuntu!
Скрипт создания площадки create_site.sh
Код удаления площадки delete_site.sh
Как использовать:
Ставим права доступа на выполнение:
Выполняем:
В этом посте, я наглядно покажу, как создать простой и в тоже время полезный bash скрипт для создания площадки под ваш сайт в ubuntu!
Скрипт создания площадки create_site.sh
#!/bin/bash
public_dir='/home/flabla/workspace'; #путь где будут храниться проекты-площадки
mysql_usr='root'; #mysql username
mysql_pwd='root'; #mysql password
username='flabla'; #ваш юзернейм
domain_prefix='localhost'; #префикс вашего домена
NAME_OF_PROJECT=$1;
if [ "$NAME_OF_PROJECT" == "" ]; then
echo -e "Название проекта не введено. Синтаксис: ./create_site.sh название проекта";
else
#создаем папки проекта
mkdir $public_dir/$NAME_OF_PROJECT
mkdir $public_dir/$NAME_OF_PROJECT/public/
mkdir $public_dir/$NAME_OF_PROJECT/logs/
#указываем владельца и права на папку "public_html"
chown -R $username:$username $public_dir/$NAME_OF_PROJECT/
chmod -R 755 $public_dir/$NAME_OF_PROJECT/
chown -R $username:$username $public_dir/$NAME_OF_PROJECT/public_html/
chmod -R 755 $public_dir/$NAME_OF_PROJECT/public_html/
#добавляем правила в конфигурационный файл апача
add_to_apache_conf="
<VirtualHost *:80>
ServerName ${NAME_OF_PROJECT}.$domain_prefix
DocumentRoot $public_dir/${NAME_OF_PROJECT}/public_html
ErrorLog $public_dir/${NAME_OF_PROJECT}/logs/error.log
LogLevel warn
CustomLog $public_dir/${NAME_OF_PROJECT}/logs/access.log combined
</VirtualHost>"
add_to_hosts_conf="127.0.0.1 ${NAME_OF_PROJECT}.$domain_prefix"
#добавляем новый хост
echo "$add_to_hosts_conf" >> /etc/hosts
echo "$add_to_apache_conf" >> /etc/apache2/sites-available/${NAME_OF_PROJECT}
#создаем новую базу
mysql -u${mysql_usr} -p${mysql_pwd} --execute="create database ${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON ${NAME_OF_PROJECT}.* TO ${username}@localhost WITH GRANT OPTION;"
echo -e "\033[1mБаза данных ${NAME_OF_PROJECT} создана.\033[0m";
#включаем конфигурацию сайта
a2ensite ${NAME_OF_PROJECT}
#перезапускаем апач
/etc/init.d/apache2 restart
echo -e "\033[1mЛокальный сайт готов к работе.\033[0m";
fi
public_dir='/home/flabla/workspace'; #путь где будут храниться проекты-площадки
mysql_usr='root'; #mysql username
mysql_pwd='root'; #mysql password
username='flabla'; #ваш юзернейм
domain_prefix='localhost'; #префикс вашего домена
NAME_OF_PROJECT=$1;
if [ "$NAME_OF_PROJECT" == "" ]; then
echo -e "Название проекта не введено. Синтаксис: ./create_site.sh название проекта";
else
#создаем папки проекта
mkdir $public_dir/$NAME_OF_PROJECT
mkdir $public_dir/$NAME_OF_PROJECT/public/
mkdir $public_dir/$NAME_OF_PROJECT/logs/
#указываем владельца и права на папку "public_html"
chown -R $username:$username $public_dir/$NAME_OF_PROJECT/
chmod -R 755 $public_dir/$NAME_OF_PROJECT/
chown -R $username:$username $public_dir/$NAME_OF_PROJECT/public_html/
chmod -R 755 $public_dir/$NAME_OF_PROJECT/public_html/
#добавляем правила в конфигурационный файл апача
add_to_apache_conf="
<VirtualHost *:80>
ServerName ${NAME_OF_PROJECT}.$domain_prefix
DocumentRoot $public_dir/${NAME_OF_PROJECT}/public_html
ErrorLog $public_dir/${NAME_OF_PROJECT}/logs/error.log
LogLevel warn
CustomLog $public_dir/${NAME_OF_PROJECT}/logs/access.log combined
</VirtualHost>"
add_to_hosts_conf="127.0.0.1 ${NAME_OF_PROJECT}.$domain_prefix"
#добавляем новый хост
echo "$add_to_hosts_conf" >> /etc/hosts
echo "$add_to_apache_conf" >> /etc/apache2/sites-available/${NAME_OF_PROJECT}
#создаем новую базу
mysql -u${mysql_usr} -p${mysql_pwd} --execute="create database ${NAME_OF_PROJECT}; GRANT ALL PRIVILEGES ON ${NAME_OF_PROJECT}.* TO ${username}@localhost WITH GRANT OPTION;"
echo -e "\033[1mБаза данных ${NAME_OF_PROJECT} создана.\033[0m";
#включаем конфигурацию сайта
a2ensite ${NAME_OF_PROJECT}
#перезапускаем апач
/etc/init.d/apache2 restart
echo -e "\033[1mЛокальный сайт готов к работе.\033[0m";
fi
Код удаления площадки delete_site.sh
#!/bin/bash
site_name=$1
#здесь те же настройки, что и выше.
public_dir='/home/flabla/workspace';
mysql_usr='root';
mysql_pwd='root';
#удаляем директорию с проектом
rm -r $public_dir/$site_name
#удаляем конфигурации проекта
a2dissite $site_name
#удаляем базу проекта
mysql -u${mysql_usr} -p${mysql_pwd} --execute="DROP DATABASE $site_name"
#удаляем файл виртуального хоста
rm /etc/apache2/sites-available/$site_name
#рестартим апач
/etc/init.d/apache2 restart
site_name=$1
#здесь те же настройки, что и выше.
public_dir='/home/flabla/workspace';
mysql_usr='root';
mysql_pwd='root';
#удаляем директорию с проектом
rm -r $public_dir/$site_name
#удаляем конфигурации проекта
a2dissite $site_name
#удаляем базу проекта
mysql -u${mysql_usr} -p${mysql_pwd} --execute="DROP DATABASE $site_name"
#удаляем файл виртуального хоста
rm /etc/apache2/sites-available/$site_name
#рестартим апач
/etc/init.d/apache2 restart
Как использовать:
Ставим права доступа на выполнение:
chmod +x ./create_site.sh
chmod +x ./delete_site.sh
chmod +x ./delete_site.sh
Выполняем:
sudo ./create_site.sh myproject
sudo ./delete_site.sh myproject
sudo ./delete_site.sh myproject