Home > System administration, Web 2.0 and something like that > Скрипт для добавления площадок с сайтами. Centos 6 + apache + nginx .

Скрипт для добавления площадок с сайтами. Centos 6 + apache + nginx .

Всем доброго времени суток. Выкладываю простенький скрипт для автоматизации добавления площадок на сервер с centos, apache, nginx.
Для начала не забудьте включить поддержку acl для файловой системы в файле /etc/fstab и перезагрузиться, либо, перемонтировать раздел . Текст скрипта под катом.

#!/bin/bash
echo -n "Название сайта полностью without www: " # выводим надпись, запрещаем переход на следующую строку
read sitename	 #считываем значение в переменную user
echo -n "aliases cherez probel: "
read aliases
echo -n "Название учетной записи пользователя: " 
read user	
echo -n "Пароль пользователя: "
read password
echo -n "Имя учетной записи Mysql: "
read mysqluser
echo -n "Пароль пользователя mysql: "
read mysqluserpassword
echo -n "название базы пользователя mysql: "
read databasename
echo -n "В какой кодировке делать базу 1) utf8 2) cp1251 : "
read answer
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -d /var/www/html/$sitename -m -c $sitename -s /sbin/nologin -p $pass $user
mkdir /var/www/html/$sitename/htdocs
mkdir /var/www/html/$sitename/logs
touch /var/www/html/$sitename/logs/${sitename}_error.log
touch /var/www/html/$sitename/logs/${sitename}_access.log
chmod 750 -R /var/www/html/$sitename/
chown -R apache:apache /var/www/html/$sitename
setfacl -R -m default:u:apache:rwx /var/www/html/$sitename
setfacl -R -m default:u:$user:rwx /var/www/html/$sitename
setfacl -R -m default:u:nginx:rwx /var/www/html/$sitename
setfacl -R -m u:apache:rwx /var/www/html/$sitename
setfacl -R -m u:$user:rwx /var/www/html/$sitename
setfacl -R -m u:nginx:rwx /var/www/html/$sitename
setfacl -R -m m::rwx /var/www/html/$sitename
setfacl -R -m d:m::rwx /var/www/html/$sitename

if [ "$answer" -eq "1" ]
then 
mysql -u root -pmysql_root-password' -e "CREATE DATABASE IF NOT EXISTS $databasename COLLATE utf8_general_ci; CREATE USER '$mysqluser'@'localhost' IDENTIFIED BY '$mysqluserpassword'; GRANT USAGE ON * . * TO '$mysqluser'@'localhost' IDENTIFIED BY '$mysqluserpassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; GRANT ALL PRIVILEGES ON $databasename . * TO '$mysqluser'@'localhost';"
else
mysql -u root -p'mysql_root-password' -e "CREATE DATABASE IF NOT EXISTS $databasename COLLATE cp1251_general_ci; CREATE USER '$mysqluser'@'localhost' IDENTIFIED BY '$mysqluserpassword'; GRANT USAGE ON * . * TO '$user'@'localhost' IDENTIFIED BY '$mysqluserpassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; GRANT ALL PRIVILEGES ON $databasename . * TO '$mysqluser'@'localhost';"
fi
echo "<VirtualHost 127.0.0.1:8080>
ServerName $sitename
ServerAlias $aliases
ServerAdmin kostin@rane.ru
DocumentRoot /var/www/html/$sitename/htdocs
ErrorLog /var/www/html/$sitename/logs/${sitename}_error.log
CustomLog /var/www/html/$sitename/logs/${sitename}_access.log combined
<Directory "/var/www/html/$sitename/htdocs">
Options -Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
" >> /etc/httpd/vhost.d/vhost-hostname.conf
echo "server {
listen 80;
server_name $sitename $aliases;
location / {
proxy_pass http:/ 
/localhost:8080/;
}
location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|swf|js|html|htm|)$ {
root /var/www/html/$sitename/htdocs/;" >> /etc/nginx/conf.d/virtual.conf
echo '
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php;
}
}
}' >> /etc/nginx/conf.d/virtual.conf
echo "/var/www/html/$sitename/logs/*.log {
missingok
notifempty
sharedscripts
compress
delaycompress
create 0750 apache apache
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}

" >> /etc/logrotate.d/httpd

echo "Завершено"

И еще один скрипт для переназначения прав на папку с сайтом, может кому пригодиться
Думаю в комментариях не нуждается.

echo -n "path: "
read path
echo -n "Название учетной записи пользователя: "
read user
chmod 750 -R $path
chown -R apache:apache $path
setfacl -R -m default:u:apache:rwx $path
setfacl -R -m default:u:$user:rwx $path
setfacl -R -m default:u:nginx:rwx $path
setfacl -R -m u:apache:rwx $path
setfacl -R -m u:$user:rwx $path
setfacl -R -m u:nginx:rwx $path
setfacl -R -m d:m::rwx $path
setfacl -R -m m::rwx $path
restorecon -R $path

Вроде всё. Удачи!

  1. rumanzo
    July 12th, 2012 at 19:21 | #1

    фтор, подправь свой парсер, часть скрипта слизало.

  1. No trackbacks yet.