Skip to content

Commit aee932d

Browse files
committed
Fixed Issue #160
1 parent 29cafe0 commit aee932d

File tree

1 file changed

+251
-10
lines changed

1 file changed

+251
-10
lines changed

usr/local/sbin/eeupdate

Lines changed: 251 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,7 @@ EEUPDATE()
6060
if [ ! -L /usr/local/sbin/ee ]
6161
then
6262
ln -s /usr/local/sbin/easyengine /usr/local/sbin/ee
63-
fi
64-
65-
# Adjust FastCGI Cache Size 20% Of /var/run
66-
VARRUNSIZE=$(df --block-size=M /var/run | awk '{print $4}' | tail -n1 |cut -d'M' -f1)
67-
FCSIZE=$(expr $VARRUNSIZE \* 25 / 100)
68-
69-
# Change Size
70-
sed -i "s/500m/$FCSIZE\m/" /usr/share/easyengine/nginx/conf.d/fastcgi.conf || OwnError "Unable To Change Fastcgi Cache Size"
63+
fi
7164

7265
# Git Config Settings
7366
EEGITNAME=$(git config user.name)
@@ -181,6 +174,248 @@ EE110()
181174
sed -i '/allow ;/d' /etc/nginx/common/acl.conf
182175
}
183176

177+
PHP_PACKAGES()
178+
{
179+
# Opcache Settings
180+
if [ ! -d /var/www/22222/htdocs/php/opcache ]
181+
then
182+
# Create Directory
183+
mkdir -p /var/www/22222/htdocs/php/opcache || OwnError "Unable To Create Opcache Directory"
184+
185+
# Download Opcache Status Files
186+
echo -e "\033[34mInstalling Opcache Tool, Please Wait...\e[0m"
187+
wget -cqO /var/www/22222/htdocs/php/opcache/opcache.php https://raw.github.com/rlerdorf/opcache-status/master/opcache.php
188+
wget -cqO /var/www/22222/htdocs/php/opcache/opgui.php https://raw.github.com/amnuts/opcache-gui/master/index.php
189+
wget -cqO /var/www/22222/htdocs/php/opcache/ocp.php https://gist.github.com/ck-on/4959032/raw/0b871b345fd6cfcd6d2be030c1f33d1ad6a475cb/ocp.php
190+
fi
191+
192+
# Memcache Settings
193+
if [ ! -d /var/www/22222/htdocs/php/memcache ]
194+
then
195+
# Create Directory
196+
mkdir -p /var/www/22222/htdocs/php/memcache || OwnError "Unable To Create Memcache Directory"
197+
198+
# Download phpMemcachedAdmin
199+
echo -e "\033[34mInstalling Memcache Tool, Please Wait...\e[0m"
200+
wget -cqO /var/www/22222/htdocs/php/memcache/memcache.tar.gz http://phpmemcacheadmin.googlecode.com/files/phpMemcachedAdmin-1.2.2-r262.tar.gz
201+
202+
# Extract phpMemcachedAdmin
203+
tar -zxf /var/www/22222/htdocs/php/memcache/memcache.tar.gz -C /var/www/22222/htdocs/php/memcache
204+
205+
# Remove Unwanted Files
206+
rm -f /var/www/22222/htdocs/php/memcache/memcache.tar.gz
207+
fi
208+
209+
if [ ! -d /var/www/22222/htdocs/php/webgrind/ ]
210+
then
211+
# Download Opcache Status Files
212+
mkdir -p mkdir -p /var/www/22222/htdocs/php/webgrind/ || OwnError "Unable To Create webgrind Directory"
213+
214+
# Download Webgrind
215+
echo -e "\033[34mCloning Webgrind, Please Wait...\e[0m"
216+
git clone https://github.com/jokkedk/webgrind.git /var/www/22222/htdocs/php/webgrind/ &>> $INSTALLLOG || OwnError "Unable To Clone Webgrind"
217+
sed -i "s'/usr/local/bin/dot'/usr/bin/dot'" /var/www/22222/htdocs/php/webgrind/config.php
218+
219+
# Install Graphviz
220+
dpkg -l | grep graphviz &>> $INSTALLLOG
221+
if [ $? -ne 0 ]
222+
then
223+
echo -e "\033[34mInstalling Graphviz, Please Wait...\e[0m"
224+
apt-get -y install graphviz || OwnError "Unable To Install Graphviz"
225+
fi
226+
fi
227+
228+
# Create info.php File To Display The phpinfo Information
229+
echo -e "<?php \n\t phpinfo(); \n?>" &>> /var/www/22222/htdocs/php/info.php
230+
231+
# Fake PHP5-FPM Status Pages
232+
if [ ! -d /var/www/22222/htdocs/php/status/ ]
233+
then
234+
mkdir -p /var/www/22222/htdocs/php/status/ || OwnError "Unable To Create webgrind Directory"
235+
touch /var/www/22222/htdocs/php/status/{php,debug}
236+
fi
237+
238+
# Anemometer Setup
239+
if [ ! -d /var/www/22222/htdocs/db/anemometer/ ]
240+
then
241+
mkdir -p /var/www/22222/htdocs/db/anemometer/ || OwnError "Unable To Create Anemometer Directory"
242+
243+
# Download Anemometer
244+
git clone https://github.com/box/Anemometer.git /var/www/22222/htdocs/db/anemometer &>> $INSTALLLOG \
245+
|| OwnError "Unable To Clone Anemometer"
246+
247+
# Setup Anemometer
248+
# Collect MySQL Login Details
249+
MYSQLROOT
250+
251+
# Setup Anemometer Database
252+
mysql -u $MYSQLUSER -p$MYSQLPASS < /var/www/22222/htdocs/db/anemometer/install.sql \
253+
|| OwnError "Unable To Import Anemometer Database"
254+
255+
# Setup Anemometer Database Grants
256+
ANEMOMETERPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1)
257+
mysql -u $MYSQLUSER -p$MYSQLPASS -e "grant all on slow_query_log.* to 'anemometer'@'localhost' IDENTIFIED BY '$ANEMOMETERPASS';"
258+
259+
# Put Data In Anemometer Database
260+
pt-query-digest --user=anemometer --password=$ANEMOMETERPASS \
261+
--review D=slow_query_log,t=global_query_review \
262+
--review-history D=slow_query_log,t=global_query_review_history \
263+
--no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /var/log/mysql/slow.log &>> $INSTALLLOG
264+
265+
# Execute On MySQL Logrotation
266+
sed -i "/endscript/,/}/d" /etc/logrotate.d/mysql-server
267+
echo -e " pt-query-digest --user=anemometer --password=$ANEMOMETERPASS \\" >> /etc/logrotate.d/mysql-server
268+
echo -e " --review D=slow_query_log,t=global_query_review \\" >> /etc/logrotate.d/mysql-server
269+
echo -e " --review-history D=slow_query_log,t=global_query_review_history \\" >> /etc/logrotate.d/mysql-server
270+
echo -e " --no-report --limit=0% --filter=\" \\\$event->{Bytes} = length(\\\$event->{arg}) and \\\$event->{hostname}="\\\"\$HOSTNAME\\\"\" /var/log/mysql/slow.log >> /etc/logrotate.d/mysql-server
271+
echo -e "\t\tendscript" >> /etc/logrotate.d/mysql-server
272+
echo -e "}" >> /etc/logrotate.d/mysql-server
273+
274+
# Copy Anemometer Configuration File
275+
cp /var/www/22222/htdocs/db/anemometer/conf/sample.config.inc.php /var/www/22222/htdocs/db/anemometer/conf/config.inc.php \
276+
|| OwnError "Unable To Copy Anemometer Configuration File"
277+
278+
# Update Anemoneter Configuration File
279+
sed -i "s/root/anemometer/g" /var/www/22222/htdocs/db/anemometer/conf/config.inc.php
280+
sed -i "/password/ s/''/'$ANEMOMETERPASS'/g" /var/www/22222/htdocs/db/anemometer/conf/config.inc.php
281+
282+
fi
283+
284+
# Call PHPUSERINFO Function For PHP User Details
285+
PHPUSERINFO
286+
287+
# Change Ownership
288+
chown -R $PHPUSER:$PHPUSER /var/www/22222 || OwnError "Unable To Change Ownership For /var/www/22222"
289+
}
290+
291+
INSTALLPMA()
292+
{
293+
# Install PMA/phpMyAdmin
294+
if [ ! -d /var/www/22222/htdocs/db/pma ] || [ ! -d /var/www/22222/htdocs/db/adminer ]
295+
then
296+
if [ ! -d /var/www/22222/htdocs/db/pma ]
297+
then
298+
echo -e "\033[34mDownloading phpMyAdmin, Please Wait...\e[0m"
299+
300+
# Setup PMA/phpMyAdmin
301+
mkdir -p /var/www/22222/htdocs/db/pma/ || OwnError "Unable To Create phpMyAdmin Directory: /var/www/22222/htdocs/db/pma/"
302+
303+
# Download PMA/phpMyAdmin
304+
wget -cqO /var/www/22222/htdocs/db/pma/pma.tar.gz http://dl.cihar.com/phpMyAdmin/master/phpMyAdmin-master-latest.tar.gz \
305+
|| OwnError "Unable To Download phpMyAdmin"
306+
307+
# Extract PMA/phpMyAdmin
308+
tar --strip-components=1 -zxf /var/www/22222/htdocs/db/pma/pma.tar.gz -C /var/www/22222/htdocs/db/pma/ \
309+
|| OwnError "Unable To Extract phpMyAdmin"
310+
311+
# Remove Unwanted Files
312+
rm -f /var/www/22222/htdocs/db/pma/pma.tar.gz
313+
314+
fi
315+
316+
if [ ! -d /var/www/22222/htdocs/db/adminer ]
317+
then
318+
echo -e "\033[34mDownloading Adminer, Please Wait...\e[0m"
319+
# Setup Adminer
320+
mkdir -p /var/www/22222/htdocs/db/adminer/ || OwnError "Unable To Create Adminer Directory: /var/www/22222/htdocs/db/adminer/"
321+
322+
# Download Adminer
323+
wget -cqO /var/www/22222/htdocs/db/adminer/index.php http://downloads.sourceforge.net/adminer/adminer-4.0.3.php \
324+
|| OwnError "Unable To Download Adminer"
325+
326+
fi
327+
328+
else
329+
echo -e "\033[34mAlready Installed phpMyAdmin (/var/www/22222/htdocs/db/pma)...\e[0m"
330+
fi
331+
}
332+
EE122()
333+
{
334+
# Install Packages:
335+
apt-get -y install php5-xdebug percona-toolkit graphviz
336+
337+
338+
# EasyEngine Config File
339+
sed -i "/# WordPress Defaults/i # Comma Separated Whitelist/Debugging IP Address\nip_address = \n" /etc/easyengine/ee.conf
340+
341+
# Nginx File Copy
342+
cp /usr/share/easyengine/nginx/conf.d/upstream.conf /etc/nginx/conf.d/ || OwnError "Unable To Copy Nginx Upstream File"
343+
cp /usr/share/easyengine/nginx/common/locations.conf /etc/nginx/common/ || OwnError "Unable To Copy Nginx Common Location File"
344+
cp /usr/share/easyengine/nginx/common/wpcommon.conf /etc/nginx/common/ || OwnError "Unable To Copy Nginx Common WordPress File"
345+
346+
# Nginx Changes
347+
sed -i "/worker_processes/a \worker_rlimit_nofile 100000;" /etc/nginx/nginx.conf
348+
sed -i "s/# multi_accept/multi_accept/" /etc/nginx/nginx.conf
349+
sed -i "s/keepalive_timeout.*/keepalive_timeout 30;/" /etc/nginx/nginx.conf
350+
351+
# EasyEngine Admin Setup
352+
cp /usr/share/easyengine/nginx/22222 /etc/nginx/sites-available/ || OwnError "Unable To Copy 22222 Nginx Configuration File"
353+
ln -s /etc/nginx/sites-available/22222 /etc/nginx/sites-enabled/ || OwnError "Unable To Create Symbolic Link For 22222 Nginx Configuration"
354+
355+
# EasyEngine Admin Logs Setup
356+
if [ ! -d /var/www/22222/logs ]
357+
then
358+
mkdir -p /var/www/22222/logs || OwnError "Unable To Create /var/www/22222/logs"
359+
fi
360+
361+
# Symbolic Links
362+
ln -s /var/log/nginx/eeadmin.access.log /var/www/22222/logs/access.log
363+
ln -s /var/log/nginx/eeadmin.error.log /var/www/22222/logs/error.log
364+
365+
# EasyEngine Admin SSL Setup
366+
if [ ! -d /var/www/22222/cert ]
367+
then
368+
mkdir -p /var/www/22222/cert || OwnError "Unable To Create /var/www/22222/cert"
369+
fi
370+
371+
# Generate SSL Key
372+
echo -e "\033[34mGenerating SSL Private Key, Please Wait...\e[0m"
373+
openssl genrsa -out /var/www/22222/cert/22222.key 2048 &>> $INSTALLLOG \
374+
|| OwnError "Unable To Generate SSL Private Key"
375+
376+
echo -e "\033[34mGenerating a Certificate Signing Request (CSR), Please Wait...\e[0m"
377+
openssl req -new -batch -subj /commonName=127.0.0.1/ -key /var/www/22222/cert/22222.key -out /var/www/22222/cert/22222.csr &>> $INSTALLLOG \
378+
|| OwnError "Unable To Generate Certificate Signing Request (CSR)"
379+
380+
echo -e "\033[34mRemoving Passphrase From SSL Private Key, Please Wait...\e[0m"
381+
mv /var/www/22222/cert/22222.key /var/www/22222/cert/22222.key.org
382+
openssl rsa -in /var/www/22222/cert/22222.key.org -out /var/www/22222/cert/22222.key &>> $INSTALLLOG \
383+
|| OwnError "Unable To Remove Passphrase From SSL Private Key"
384+
385+
echo -e "\033[34mGenerating SSL Certificate, Please Wait...\e[0m"
386+
openssl x509 -req -days 3652 -in /var/www/22222/cert/22222.csr -signkey /var/www/22222/cert/22222.key -out /var/www/22222/cert/22222.crt &>> $INSTALLLOG \
387+
|| OwnError "Unable To Generate SSL Certificate"
388+
389+
# Personal Settings For PHP
390+
echo -e "\033[34mUpdating PHP Configuration Files, Please Wait...\e[0m"
391+
392+
# Needed For Custome PHP5 Logs
393+
if [ ! -d /var/log/php5/ ]
394+
then
395+
mkdir -p /var/log/php5/ || OwnError "Unable To Create PHP5 Log Directory: /var/log/php5/"
396+
fi
397+
398+
TIME_ZONE=$(cat /etc/timezone | sed "s'/'\\\/'")
399+
sed -i "s/;date.timezone.*/date.timezone = $TIME_ZONE/" /etc/php5/fpm/php.ini
400+
401+
# Change PHP5-FPM Error Logs Location
402+
sed -i "s'error_log.*'error_log = /var/log/php5/fpm.log'" /etc/php5/fpm/php-fpm.conf
403+
404+
# Separate PHP POOL For Slow Logs
405+
cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/debug.conf
406+
sed -i "s'\[www\]'[debug]'" /etc/php5/fpm/pool.d/debug.conf || OwnError "Unable To Change PHP Pool Name"
407+
sed -i "s'listen = 127.0.0.1:9000'listen = 127.0.0.1:9001'" /etc/php5/fpm/pool.d/debug.conf || OwnError "Unable To Change PHP Fastcgi Listen Port"
408+
sed -i "s/pm = dynamic/pm = ondemand/" /etc/php5/fpm/pool.d/debug.conf || OwnError "Unable To Chnage Process Manager From Dynamic To Ondemand"
409+
sed -i "s';slowlog.*'slowlog = /var/log/php5/slow.log'" /etc/php5/fpm/pool.d/debug.conf || OwnError "Unable To Change PHP Slowlog"
410+
sed -i "s';request_slowlog_timeout.*'request_slowlog_timeout = 10s'" /etc/php5/fpm/pool.d/debug.conf || OwnError "Unable To Change PHP Request Slowlog Timeout"
411+
echo -e "php_admin_value[xdebug.profiler_output_dir] = /tmp/ \nphp_admin_value[xdebug.profiler_output_name] = cachegrind.out.%p-%H-%R \nphp_admin_flag[xdebug.profiler_enable_trigger] = on \nphp_admin_flag[xdebug.profiler_enable] = off" | tee -ai /etc/php5/fpm/pool.d/debug.conf &>> $INSTALLLOG \
412+
|| OwnError "Unable To Add Xdebug Settings"
413+
414+
# Install PHP Packages
415+
PHP_PACKAGES
416+
INSTALLPMA
417+
}
418+
184419
HTTPAUTH()
185420
{
186421
# Get The htpasswd Details
@@ -220,7 +455,7 @@ HTTPAUTH()
220455
RESTARTSERVICE()
221456
{
222457
echo -e "\033[34mRestarting Nginx & PHP5-FPM Configuration, Please Wait...\e[0m"
223-
service php5-fpm restart &>> $INSTALLLOG || OwnError "Unable To Restart PHP5-FPM After Update"
458+
(php5-fpm -t && service php5-fpm restart) &>> $INSTALLLOG || OwnError "Unable To Restart PHP5-FPM After Update"
224459
(nginx -t && service nginx restart) &>> $INSTALLLOG || OwnError "Unable To Restart Nginx After Update"
225460
}
226461

@@ -264,12 +499,18 @@ then
264499
EE101
265500
HTTPAUTH
266501
MYCNFCHECK
267-
EE110
502+
EECURRENTVERSION="1.1.0"
268503
fi
269504

270505
if [[ $EECURRENTVERSION = 1.1.0 ]]
271506
then
272507
EE110
508+
EECURRENTVERSION="1.2.2"
509+
fi
510+
511+
if [[ $EECURRENTVERSION = 1.2.2 ]]
512+
then
513+
EE122
273514
fi
274515
fi
275516

0 commit comments

Comments
 (0)