Люблю писать bash
скрипты, в них нет ничего сложного но при этом они могут решать довольно большие проблемы.
Такой вот скрипт стоит у меня для добавления домена в nginx
, точнее скрипт создания конфига для домена.
Usage - nginx_domain.sh
1
sudo ./nginx_domain.sh testdomain.com
nginx_domain.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/bash
#config
web_root='/usr/share/nginx/'
config_dir='/etc/nginx/'
hosts_file="/etc/hosts"
if [ -z " $1" ]
then
#user input
echo -e "Enter domain name:"
read DOMAIN
echo "Creating Nginx domain settings for: $DOMAIN"
if [ -z " $DOMAIN" ]
then
echo "Domain required"
exit 1
fi
fi
if [ -z " $DOMAIN" ]
then
DOMAIN= $1
fi
(
cat <<EOF
server {
listen 80 ;
server_name $DOMAIN. www. $DOMAIN ;
root $web_root/$DOMAIN/public/ ;
index index.php index.html ;
charset utf8 ;
location = /favicon.ico {
log_not_found off ;
access_log off ;
}
location = /robots.txt {
allow all ;
log_not_found off ;
access_log off ;
}
location / {
try_files $uri $uri/ /index.php? $query_string ;
}
location ~ \.php {
fastcgi_pass 127.0.0.1 : 9000 ;
fastcgi_index index.php ;
include fastcgi_params ;
fastcgi_param PHP_VALUE "upload_max_filesize=15M" ;
fastcgi_param APPLICATION_ENV dev ;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
fastcgi_param PATH_INFO $fastcgi_script_name ;
}
access_log $web_root/$DOMAIN/log/access_log.txt ;
error_log $web_root/$DOMAIN/log/error_log.txt error ;
}
EOF
) > $config_dir/sites-available/$DOMAIN.conf
(
cat <<EOF
127 .0.0.1 $domain
127 .0.0.1 www. $domain
EOF
) >> hosts_file
echo "Making web directories"
mkdir -p $web_root/"$DOMAIN"
mkdir -p $web_root/"$DOMAIN"/{public,private,log,backup}
ln -s $config_dir/sites-available/"$DOMAIN".conf $config_dir/sites-enabled/"$DOMAIN".conf
/etc/init.d/nginx reload
echo "Nginx - reload"
chown -R www-data:www-data $web_root/"$DOMAIN"
chmod 755 $web_root/"$DOMAIN"/public
echo "Permissions have been set"
echo " $DOMAIN has been setup"
Конечно, скрипт подойдет не всем, все зависит от того как установлен и настроен сервер, но подкорректировать довольно просто используя переменные конфигурации, ну и если вообще не подходит то подкорректировать сам скрипт,
так же можно задавать вопросы в коменты, всегда рад помочь.