Browse Source

Addded WordPress debug

bugfixes
gau1991 10 years ago
parent
commit
2c5e602b92
  1. 103
      ee/cli/plugins/debug.py

103
ee/cli/plugins/debug.py

@ -4,6 +4,7 @@ from cement.core.controller import CementBaseController, expose
from cement.core import handler, hook from cement.core import handler, hook
from ee.core.shellexec import EEShellExec from ee.core.shellexec import EEShellExec
from ee.core.mysql import EEMysql from ee.core.mysql import EEMysql
import os
def debug_plugin_hook(app): def debug_plugin_hook(app):
@ -46,6 +47,7 @@ class EEDebugController(CementBaseController):
@expose(hide=True) @expose(hide=True)
def debug_nginx(self): def debug_nginx(self):
self.trigger_nginx = False self.trigger_nginx = False
# start global debug
if self.start and not self.app.pargs.site_name: if self.start and not self.app.pargs.site_name:
try: try:
debug_address = (self.app.config.get('stack', 'ip-address') debug_address = (self.app.config.get('stack', 'ip-address')
@ -67,6 +69,7 @@ class EEDebugController(CementBaseController):
self.msg = self.msg + " /var/log/nginx/*.error.log" self.msg = self.msg + " /var/log/nginx/*.error.log"
# stop global debug
elif not self.start and not self.app.pargs.site_name: elif not self.start and not self.app.pargs.site_name:
if "debug_connection " in open('/etc/nginx/nginx.conf').read(): if "debug_connection " in open('/etc/nginx/nginx.conf').read():
print("Disabling Nginx debug connections") print("Disabling Nginx debug connections")
@ -76,14 +79,48 @@ class EEDebugController(CementBaseController):
else: else:
print("Nginx debug connection already disbaled") print("Nginx debug connection already disbaled")
# start site specific debug
elif self.start and self.app.pargs.site_name: elif self.start and self.app.pargs.site_name:
print("Enabling debug for "+self.app.pargs.site_name) config_path = ("/etc/nginx/sites-available/{0}"
.format(self.app.pargs.site_name))
if os.path.isfile(config_path):
if not EEShellExec.cmd_exec("grep \"error.log debug\" {0}"
.format(config_path)):
print("Starting NGINX debug connection for {0}"
.format(self.app.pargs.site_name))
EEShellExec.cmd_exec("sed -i \"s/error.log;/error.log "
"debug;/\" {0}".format(config_path))
self.trigger_nginx = True
else:
print("Debug for site allready enabled")
else:
print("{0} domain not valid".format(self.app.pargs.site_name))
# stop site specific debug
elif not self.start and self.app.pargs.site_name: elif not self.start and self.app.pargs.site_name:
print("Disabling debug for "+self.app.pargs.site_name) config_path = ("/etc/nginx/sites-available/{0}"
.format(self.app.pargs.site_name))
if os.path.isfile(config_path):
if EEShellExec.cmd_exec("grep \"error.log debug\" {0}"
.format(config_path)):
print("Stoping NGINX debug connection for {0}"
.format(self.app.pargs.site_name))
EEShellExec.cmd_exec("sed -i \"s/error.log debug;/"
"error.log;/\" {0}"
.format(config_path))
self.trigger_nginx = True
else:
print("Debug for site allready disbaled")
else:
print("{0} domain not valid".format(self.app.pargs.site_name))
@expose(hide=True) @expose(hide=True)
def debug_php(self): def debug_php(self):
# PHP global debug start
if self.start: if self.start:
if not (EEShellExec.cmd_exec(self, "sed -n \"/upstream php" if not (EEShellExec.cmd_exec(self, "sed -n \"/upstream php"
"{/,/}/p \" /etc/nginx/" "{/,/}/p \" /etc/nginx/"
@ -99,6 +136,8 @@ class EEDebugController(CementBaseController):
self.trigger_php = True self.trigger_php = True
else: else:
print("PHP debug is allready enabled") print("PHP debug is allready enabled")
# PHP global debug stop
else: else:
if EEShellExec.cmd_exec(self, "sed -n \"/upstream php {/,/}/p\" " if EEShellExec.cmd_exec(self, "sed -n \"/upstream php {/,/}/p\" "
"/etc/nginx/conf.d/upstream.conf " "/etc/nginx/conf.d/upstream.conf "
@ -116,6 +155,7 @@ class EEDebugController(CementBaseController):
@expose(hide=True) @expose(hide=True)
def debug_fpm(self): def debug_fpm(self):
# PHP5-FPM start global debug
if self.start: if self.start:
if not EEShellExec.cmd_exec(self, "grep \"log_level = debug\" " if not EEShellExec.cmd_exec(self, "grep \"log_level = debug\" "
"/etc/php5/fpm/php-fpm.conf"): "/etc/php5/fpm/php-fpm.conf"):
@ -126,6 +166,7 @@ class EEDebugController(CementBaseController):
self.trigger_php = True self.trigger_php = True
else: else:
print("PHP5-FPM log_level = debug already setup") print("PHP5-FPM log_level = debug already setup")
# PHP5-FPM stop global debug
else: else:
if EEShellExec.cmd_exec(self, "grep \"log_level = debug\" " if EEShellExec.cmd_exec(self, "grep \"log_level = debug\" "
"/etc/php5/fpm/php-fpm.conf"): "/etc/php5/fpm/php-fpm.conf"):
@ -139,6 +180,7 @@ class EEDebugController(CementBaseController):
@expose(hide=True) @expose(hide=True)
def debug_mysql(self): def debug_mysql(self):
# MySQL start global debug
if self.start: if self.start:
if not EEShellExec.cmd_exec(self, "mysql -e \"show variables like" if not EEShellExec.cmd_exec(self, "mysql -e \"show variables like"
" \'slow_query_log\';\" | " " \'slow_query_log\';\" | "
@ -165,6 +207,7 @@ class EEDebugController(CementBaseController):
" }} | crontab -\"".format(cron_time)) " }} | crontab -\"".format(cron_time))
else: else:
print("MySQL slow log is allready enabled") print("MySQL slow log is allready enabled")
# MySQL stop global debug
else: else:
if EEShellExec.cmd_exec(self, "mysql -e \"show variables like \'" if EEShellExec.cmd_exec(self, "mysql -e \"show variables like \'"
"slow_query_log\';\" | grep ON"): "slow_query_log\';\" | grep ON"):
@ -183,9 +226,58 @@ class EEDebugController(CementBaseController):
@expose(hide=True) @expose(hide=True)
def debug_wp(self): def debug_wp(self):
if self.start and self.app.pargs.site_name: if self.start and self.app.pargs.site_name:
print("Start WP debug for site") wp_config = ("/var/www/{0}/wp-config.php"
elif not self.start and not self.app.pargs.site_name: .format(self.app.pargs.site_name))
print("Stop WP debug for site") webroot = "/var/www/{0}".format(self.app.pargs.site_name)
if os.path.isfile(wp_config):
if not EEShellExec.cmd_exec(self, "grep \"\'WP_DEBUG\'\" {0} |"
" grep true".format(wp_config)):
print("Starting WordPress debug")
open("{0}/htdocs/wp-content/debug.log".format(webroot),
'a').close()
EEShellExec.cmd_exec(self, "chown www-data: {0}/htdocs/wp-"
"content/debug.log".format(webroot))
EEShellExec.cmd_exec(self, "sed -i \"s/define(\'WP_DEBUG\'"
".*/define(\'WP_DEBUG\', true);\\n"
"define(\'WP_DEBUG_DISPLAY\', false);"
"\\ndefine(\'WP_DEBUG_LOG\', true);"
"\\ndefine(\'SAVEQUERIES\', true);/\""
" {0}".format(wp_config))
EEShellExec.cmd_exec(self, "cd {0}/htdocs/ && wp"
" plugin --allow-root install "
"developer".format(webroot))
EEShellExec.cmd_exec(self, "chown -R www-data: {0}/htdocs/"
"wp-content/plugins"
.format(webroot))
else:
print("WordPress debug log already enabled")
else:
print("{0} domain not valid".format(self.app.pargs.site_name))
elif not self.start and self.app.pargs.site_name:
wp_config = ("/var/www/{0}/wp-config.php"
.format(self.app.pargs.site_name))
webroot = "/var/www/{0}".format(self.app.pargs.site_name)
if os.path.isfile(wp_config):
if EEShellExec.cmd_exec(self, "grep \"\'WP_DEBUG\'\" {0} | "
"grep true".format(wp_config)):
print("Disabling WordPress debug")
EEShellExec.cmd_exec(self, "sed -i \"s/define(\'WP_DEBUG\'"
", true);/define(\'WP_DEBUG\', "
"false);/\" {0}".format(wp_config))
EEShellExec.cmd_exec(self, "sed -i \"/define(\'"
"WP_DEBUG_DISPLAY\', false);/d\" {0}"
.format(wp_config))
EEShellExec.cmd_exec(self, "sed -i \"/define(\'"
"WP_DEBUG_LOG\', true);/d\" {0}"
.format(wp_config))
EEShellExec.cmd_exec("sed -i \"/define(\'"
"SAVEQUERIES\', "
"true);/d\" {0}".format(wp_config))
else:
print("WordPress debug all already disbaled")
else:
print("{0} domain not valid".format(self.app.pargs.site_name))
else: else:
print("Missing argument site_name") print("Missing argument site_name")
@ -205,7 +297,6 @@ class EEDebugController(CementBaseController):
self.start = True self.start = True
self.interactive = False self.interactive = False
self.msg = "" self.msg = ""
print(self.app.pargs.site_name)
if self.app.pargs.stop: if self.app.pargs.stop:
self.start = False self.start = False

Loading…
Cancel
Save