Скрипт для добавления площадок с сайтами. 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
Вроде всё. Удачи!
фтор, подправь свой парсер, часть скрипта слизало.