forked from EasyEngine/easyengine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
180 lines (142 loc) · 5.55 KB
/
install.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#!/bin/bash
# Checking Linux Distro Is Ubuntu
if [ ! -f /etc/lsb-release ]
then
echo -e "\033[31m EasyEngine Is Made For Ubuntu Only As Of Now \e[0m"
echo -e "\033[31m You Are Free To Fork EasyEngine: https://github.com/rtCamp/easyengine/fork \e[0m"
exit 100
fi
# Checking Permissions
Permission=$(id -u)
if [ $Permission -ne 0 ]
then
echo -e "\033[31m Sudo Privilege Required... \e[0m"
echo -e "\033[31m Uses:\e[0m\033[34m curl -sL rt.cx/ee | sudo bash \e[0m"
exit 100
fi
# Make Variables Available For Later Use
LOGDIR=/var/log/easyengine
INSTALLLOG=/var/log/easyengine/install.log
# Capture Errors
OwnError()
{
echo -e "[ `date` ] \033[31m $@ \e[0m" | tee -ai $INSTALLLOG
exit 101
}
# Pre Checks To Avoid Later Screw Ups
# Checking Logs Directory
if [ ! -d $LOGDIR ]
then
echo -e "\033[34m Creating Easy Engine Log Directory, Please Wait... \e[0m"
mkdir -p $LOGDIR || OwnError "Unable To Create Log Directory $LOGDIR"
fi
echo &>> $INSTALLLOG
echo &>> $INSTALLLOG
echo -e "\033[34m EasyEngine Installation Started `date +"%d-%b-%Y %H:%M:%S"` \e[0m" | tee -ai $INSTALLLOG
# Checking Tee
if [ ! -x /usr/bin/tee ]
then
echo -e "\033[31m Tee Command Not Found ! \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m Installing Tee \e[0m" | tee -ai $INSTALLLOG
sudo apt-get -y install coreutils || OwnError "Unable to install tee"
fi
# Checking Ed
if [ ! -x /bin/ed ]
then
echo -e "\033[31m Ed Command Not Found ! \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m Installing Ed \e[0m" | tee -ai $INSTALLLOG
sudo apt-get -y install ed || OwnError "Unable to install ed"
fi
# Checking Wget
if [ ! -x /usr/bin/wget ]
then
echo -e "\033[31m Wget Command Not Found ! \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m Installing Wget \e[0m" | tee -ai $INSTALLLOG
sudo apt-get -y install wget || OwnError "Unable To Install Wget"
fi
# Checking Curl
if [ ! -x /usr/bin/curl ]
then
echo -e "\033[31m Curl Command Not Found ! \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m Installing Curl \e[0m" | tee -ai $INSTALLLOG
sudo apt-get -y install curl || OwnError "Unable To Install Curl"
fi
# Checking Tar
if [ ! -x /bin/tar ]
then
echo -e "\033[31m Tar Command Not Found ! \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m Installing Tar \e[0m" | tee -ai $INSTALLLOG
sudo apt-get -y install tar || OwnError "Unable To Install Tar"
fi
# Checking Git
if [ ! -x /usr/bin/git ]
then
echo -e "\033[31m Git Command Not Found ! \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m Installing Git, Please Wait... \e[0m" | tee -ai $INSTALLLOG
sudo apt-get -y install git-core || OwnError "Unable To Install Git"
fi
# Checking Name Servers
if [[ -z $(cat /etc/resolv.conf 2> /dev/null | awk '/^nameserver/ { print $2 }') ]]
then
echo -e "\033[31m No Name Servers Detected ! \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[31m Please Configure /etc/resolv.conf \e[0m" | tee -ai $INSTALLLOG
exit 102
fi
# Pre Checks End
# Check The Easy Engine Is Available
EXIST=$(basename `pwd`)
if [ "$EXIST" != "easyengine" ]
then
echo -e "\033[34m Cloning Easy Engine, Please Wait... \e[0m" | tee -ai $INSTALLLOG
# Remove Older Easy Engine If Found
rm -rf /tmp/easyengine &>> /dev/null
# Clone Easy Engine Repository
git clone git://github.com/rtCamp/easyengine.git /tmp/easyengine || OwnError "Unable To Clone Easy Engine"
fi
# Create Directory /etc/easyengine
if [ ! -d /etc/easyengine ]
then
# Create A Directory For EE Configurations
mkdir -p /etc/easyengine \
|| OwnError "Unable To Create Dir /etc/easyengine"
fi
# Create Directory /usr/share/easyengine
if [ ! -d /usr/share/easyengine/nginx ]
then
# Create A Directory For EE Nginx Configurations
mkdir -p /usr/share/easyengine/nginx \
|| OwnError "Unable To Create Dir /usr/share/easyengine/nginx"
fi
# Install Easy Engine
echo -e "\033[34m Installing Easy Engine, Please Wait... \e[0m" | tee -ai $INSTALLLOG
# EE /etc Files
cp -a /tmp/easyengine/etc/bash_completion.d/ee /etc/bash_completion.d/ &>> /dev/null || OwnError "Unable To Copy EE Auto Complete File"
cp -a /tmp/easyengine/etc/easyengine/ee.conf /etc/easyengine/ &>> /dev/null || OwnError "Unable To Copy ee.conf File"
# EE /usr/share/easyengine Files
cp -a /tmp/easyengine/etc/nginx/* /usr/share/easyengine/nginx/ &>> /dev/null || OwnError "Unable To Copy Configuration Files "
cp -a /tmp/easyengine/usr/share/easyengine/* /usr/share/easyengine/ &>> /dev/null || OwnError "Unable To Copy Configuration Files "
# EE Command
cp -a /tmp/easyengine/usr/local/sbin/easyengine /usr/local/sbin/ &>> /dev/null || OwnError "Unable To Copy EasyEngine Command"
# Change Permission For EE
chmod 750 /usr/local/sbin/easyengine || OwnError "Unable To Change EasyEngine Command Permission"
# Create Symbolic Link If Not Exist
if [ ! -L /usr/local/sbin/ee ]
then
ln -s /usr/local/sbin/easyengine /usr/local/sbin/ee
else
rm /usr/local/sbin/ee
ln -s /usr/local/sbin/easyengine /usr/local/sbin/ee
fi
# Adjust FastCGI Cache Size 20% Of /var/run
VARRUNSIZE=$(df --block-size=M /var/run | awk '{print $4}' | tail -n1 |cut -d'M' -f1)
FCSIZE=$(expr $VARRUNSIZE \* 25 / 100)
# Change Size
sed -i "s/500m/$FCSIZE\m/" /usr/share/easyengine/nginx/conf.d/fastcgi.conf || OwnError "Unable To Change Fastcgi Cache Size"
# Source EE Auto Complete To Take Effect
echo -e "\033[34m For Easy Engine Auto Completion Run Following Command \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m source /etc/bash_completion.d/ee \e[0m" | tee -ai $INSTALLLOG
echo
# Display Success Message
echo -e "\033[34m Easy Engine Installed Successfully \e[0m" | tee -ai $INSTALLLOG
echo -e "\033[34m Easy Engine Help: http://rtcamp.com/easyengine/docs/ \e[0m" | tee -ai $INSTALLLOG
echo