Skip to content

Instantly share code, notes, and snippets.

@Electrica
Last active October 6, 2017 16:33
Show Gist options
  • Save Electrica/4b9fd102ebade530f3e3ad202626d1ff to your computer and use it in GitHub Desktop.
Save Electrica/4b9fd102ebade530f3e3ad202626d1ff to your computer and use it in GitHub Desktop.
Создание хоста ubuntu
#!/bin/bash
#Читаем название сайта
echo "Введите название каталога"
read catalogName
echo "Нужна установка MODX и создание базы для него?"
read setup
if [ $setup == n ]
then
echo "Нужна установка базы данных?"
read setupbase
fi
baseDir="/home/electrica/www"
echo "Create directory $catalogName"
mkdir $baseDir/$catalogName.local
echo "Create directory www"
mkdir $baseDir/$catalogName.local/www
echo "Create directory tmp"
mkdir $baseDir/$catalogName.local/tmp
echo "Create directory logs"
mkdir $baseDir/$catalogName.local/logs
echo "Chown directory"
chown -R electrica:electrica $baseDir/$catalogName.local/
echo "Create nginx config"
echo "
upstream backend-$catalogName {server unix:/var/run/php/php7.0-$catalogName.sock;}
server {
listen 80;
server_name $catalogName.local;
root /home/electrica/www/$catalogName.local/www;
access_log /home/electrica/www/$catalogName.local/logs/$catalogName-access.log;
error_log /home/electrica/www/$catalogName.local/logs/$catalogName-error.log;
index index.php;
rewrite_log on;
location /core/ {
deny all;
}
location / {
try_files \$uri \$uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=\$1;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_pass backend-$catalogName;
}
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
access_log off;
expires 10d;
break;
}
location ~ /\.ht {
deny all;
}
}
" > /etc/nginx/sites-available/$catalogName.conf
echo "Create php-fpm process"
echo "
[$catalogName]
listen = /var/run/php/php7.0-$catalogName.sock
listen.mode = 0666
user = electrica
group = electrica
chdir = /home/electrica/www/$catalogName.local/www
php_admin_value[upload_tmp_dir] = /home/electrica/www/$catalogName.local/tmp
php_admin_value[soap.wsdl_cache_dir] = /home/electrica/www/$catalogName.local/tmp
php_admin_value[date.timezone] = Europe/Moscow
php_admin_value[session.save_path] = /home/electrica/www/$catalogName.local/tmp
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
" > /etc/php/7.0/fpm/pool.d/$catalogName.conf
echo "Create link nginx conf"
ln -s /etc/nginx/sites-available/$catalogName.conf /etc/nginx/sites-enabled/$catalogName.conf
echo "Create hosts"
echo "127.0.0.1 $catalogName.local" >> /etc/hosts
echo "Restart service nginx"
service nginx restart
echo "Restart php7.0-fpm"
service php7.0-fpm restart
if [ $setup == y ]
then
cd /var
mkdir modx
cd /var/modx
echo "Скачиваем последний MODX";
wget -O modx.zip http://modx.com/download/latest/
echo "Распаковываем...";
unzip modx.zip -d /var/modx
echo "Перемещаем в директорию";
mv modx*/* /home/electrica/www/$catalogName.local/www
echo "Удаляем временные файлы";
find /var/modx -type d -exec rm -d -R {} \;
echo "Создаем базу данных";
echo "[client]
user = root
password = Electricatiger
host = localhost
" > /home/electrica/www/$catalogName.local/db.cnf
NEWDATABASEPASSWD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-10};`
Q1="CREATE DATABASE IF NOT EXISTS $catalogName DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
Q2="GRANT ALTER,DELETE,DROP,CREATE,INDEX,INSERT,SELECT,UPDATE,CREATE TEMPORARY TABLES,LOCK TABLES ON $catalogName.* TO '$catalogName'@'localhost' IDENTIFIED BY '$NEWDATABASEPASSWD';"
Q3="FLUSH PRIVILEGES;"
SQL="${Q1}${Q2}${Q3}"
echo $NEWDATABASEPASSWD > /home/electrica/www/$catalogName.local/basepasswd.txt
mysql --defaults-extra-file=/home/electrica/www/$catalogName.local/db.cnf -e "$SQL"
rm -f /home/electrica/www/$catalogName.local/db.cnf
fi
if [ $setupbase == y ]
then
echo "Создаем базу данных";
echo "[client]
user = root
password = Electricatiger
host = localhost
" > /home/electrica/www/$catalogName.local/db.cnf
NEWDATABASEPASSWD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-10};`
Q1="CREATE DATABASE IF NOT EXISTS $catalogName DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
Q2="GRANT ALTER,DELETE,DROP,CREATE,INDEX,INSERT,SELECT,UPDATE,CREATE TEMPORARY TABLES,LOCK TABLES ON $catalogName.* TO '$catalogName'@'localhost' IDENTIFIED BY '$NEWDATABASEPASSWD';"
Q3="FLUSH PRIVILEGES;"
SQL="${Q1}${Q2}${Q3}"
echo $NEWDATABASEPASSWD > /home/electrica/www/$catalogName.local/basepasswd.txt
mysql --defaults-extra-file=/home/electrica/www/$catalogName.local/db.cnf -e "$SQL"
rm -f /home/electrica/www/$catalogName.local/db.cnf
echo "<?php
phpinfo();
" > $baseDir/$catalogName.local/www/index.php
else
echo "<?php
phpinfo();
" > $baseDir/$catalogName.local/www/index.php
fi
dir=/home/electrica/www/$catalogName.local/www
user=electrica
chown -R $user:$user "$dir";
find "$dir" -type d -exec chmod 0755 '{}' \;
find "$dir" -type f -exec chmod 0644 '{}' \;
#!/bin/bash
echo "Введите хост";
read host;
echo "Удаляем симлинк nginx";
rm -f /etc/nginx/sites-enabled/$host.conf
echo "Удаляем конфиг nginx";
rm -f /etc/nginx/sites-available/$host.conf
echo "Удаляем настройку php";
rm -f /etc/php/7.0/fpm/pool.d/$host.conf
echo "Удаляем каталоги";
find /home/electrica/www/$host.local/ -type f -exec rm '{}' \;
find /home/electrica/www/$host.local/ -type d -exec rm -d -R '{}' \;
#rm -fd /home/electrica/www/$host.local/*
#rm -fd /home/electrica/www/$host.local
echo "Удаляем строку с hosts";
cat /etc/hosts | grep -v "127.0.0.1 "$host.local > /etc/hosts_o
rm -f /etc/hosts
mv /etc/hosts_o /etc/hosts
rm -f /etc/hosts_o
echo "Готово";
echo "Готово";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment