From 9b5ec7d12fc75f90431535ee6c0a0633d1ac8978 Mon Sep 17 00:00:00 2001 From: usmannasir <01-134132-158@student.bahria.edu.pk> Date: Sun, 5 Nov 2017 03:02:51 +0500 Subject: [PATCH] Run CyberPanel as user cyberpanel --- api/urls.py | 1 + api/views.py | 89 +- .../templates/backup/backupDestinations.html | 6 +- backup/views.py | 173 +- .../themes/frontend/color-schemes/default.css | 81 +- .../templates/baseTemplate/index.html | 2 +- databases/views.py | 2 +- filemanager_app/filemanager.py | 8 +- firewall/views.py | 105 +- install/firewallUtilities.py | 8 +- install/gun-configs/gunicorn.service | 4 +- install/install.py | 155 +- install/installCyberPanel.py | 69 +- install/installLog.py | 11 - locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 48363 bytes locale/ja/LC_MESSAGES/django.po | 2832 +++++++++++++++++ loginSystem/templates/loginSystem/login.html | 4 +- mailServer/views.py | 20 +- manageSSL/views.py | 4 +- plogical/backupSchedule.py | 3 +- plogical/backupUtilities.py | 49 +- plogical/firewallUtilities.py | 8 +- plogical/ftpUtilities.py | 23 +- plogical/installUtilities.py | 34 +- plogical/mysqlUtilities.py | 6 +- plogical/phpUtilities.py | 4 +- plogical/remoteBackup.py | 17 +- plogical/sslUtilities.py | 25 +- plogical/test.py | 71 +- plogical/virtualHostUtilities.py | 97 +- websiteFunctions/views.py | 169 +- 31 files changed, 3775 insertions(+), 305 deletions(-) create mode 100644 locale/ja/LC_MESSAGES/django.mo create mode 100644 locale/ja/LC_MESSAGES/django.po diff --git a/api/urls.py b/api/urls.py index 52c9485ed..ddee0c3e2 100644 --- a/api/urls.py +++ b/api/urls.py @@ -21,5 +21,6 @@ urlpatterns = [ url(r'^cyberPanelVersion', views.cyberPanelVersion, name='cyberPanelVersion'), + url(r'^putSSHkey', views.putSSHkey, name='putSSHkey'), ] \ No newline at end of file diff --git a/api/views.py b/api/views.py index 2bb979083..132da5e02 100644 --- a/api/views.py +++ b/api/views.py @@ -21,6 +21,8 @@ import signal from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging from shutil import rmtree from baseTemplate.models import version +import subprocess +import shlex # Create your views here. @@ -336,10 +338,25 @@ def fetchSSHkey(request): admin = Administrator.objects.get(userName=username) if hashPassword.check_password(admin.password, password): - pubKey = "/root/.ssh/cyberpanel.pub" + keyPath = "/home/cyberpanel/.ssh" + + if not os.path.exists(keyPath): + os.makedirs(keyPath) + command = "ssh-keygen -f " + keyPath + "/cyberpanel -t rsa -N ''" + cmd = shlex.split(command) + res = subprocess.call(cmd) + else: + if not os.path.exists(keyPath+"/cyberpanel"): + command = "ssh-keygen -f " + keyPath + "/cyberpanel -t rsa -N ''" + cmd = shlex.split(command) + res = subprocess.call(cmd) + + pubKey = keyPath + "/cyberpanel.pub" f = open(pubKey) data = f.read() + + data_ret = {'pubKeyStatus': 1, 'error_message': "None", "pubKey":data} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -367,6 +384,8 @@ def remoteTransfer(request): admin = Administrator.objects.get(userName=username) if hashPassword.check_password(admin.password, password): dir = str(randint(1000, 9999)) + + transferRequest = rBackup.remoteBackup.remoteTransfer(ipAddress, dir,accountsToTransfer) if transferRequest[0] == 1: @@ -538,3 +557,71 @@ def cyberPanelVersion(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) +def putSSHkey(request): + try: + if request.method == 'POST': + + data = json.loads(request.body) + + adminUser = data['username'] + adminPass = data['password'] + pubKey = data['putSSHKey'] + + + admin = Administrator.objects.get(userName=adminUser) + + if hashPassword.check_password(admin.password, adminPass): + keyPath = "/home/cyberpanel/.ssh" + + if not os.path.exists(keyPath): + os.makedirs(keyPath) + + + ## writeKey + + authorized_keys = keyPath+"/authorized_keys" + presenseCheck = 0 + try: + data = open(authorized_keys, "r").readlines() + for items in data: + if items.find(pubKey) > -1: + presenseCheck = 1 + except: + pass + + if presenseCheck == 0: + writeToFile = open(authorized_keys, 'a') + writeToFile.writelines("#Added by CyberPanel\n") + writeToFile.writelines("\n") + writeToFile.writelines(pubKey) + writeToFile.writelines("\n") + writeToFile.close() + + ## + + command = "sudo chmod g-w /home/cyberpanel" + cmd = shlex.split(command) + res = subprocess.call(cmd) + + os.chmod(keyPath,0700) + os.chmod(authorized_keys, 0600) + + + data_ret = {"putSSHKey": 1, + 'error_message': "None",} + + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + else: + data_ret = {"putSSHKey": 0, + 'error_message': "Could not authorize access to API"} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + + except BaseException, msg: + data_ret = {"putSSHKey": 0, + 'error_message': str(msg)} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + + diff --git a/backup/templates/backup/backupDestinations.html b/backup/templates/backup/backupDestinations.html index ae8dc8162..dfe398c79 100644 --- a/backup/templates/backup/backupDestinations.html +++ b/backup/templates/backup/backupDestinations.html @@ -18,7 +18,7 @@

- {% trans "Set up Back up Destinations" %} + {% trans "Set up Back up Destinations (SSH port should be 22 on backup server)" %}

@@ -37,7 +37,7 @@
- +
@@ -59,7 +59,7 @@
-

{% trans "Connection to" %} {$ IPAddress $} {% trans "failed. Please delete and re-add." %}

+

{% trans "Connection to" %} {$ IPAddress $} {% trans "failed. Please delete and re-add. " %} {$ errorMessage $}

diff --git a/backup/views.py b/backup/views.py index 6d14ed0f2..b7605ca85 100644 --- a/backup/views.py +++ b/backup/views.py @@ -20,6 +20,7 @@ import signal import plogical.remoteBackup as rBackup import requests from baseTemplate.models import version +from plogical.virtualHostUtilities import virtualHostUtilities def loadBackupHome(request): try: @@ -51,6 +52,12 @@ def restoreSite(request): all_files = [] ext = ".tar.gz" + command = 'sudo chown -R cyberpanel:cyberpanel '+path + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + files = os.listdir(path) for filename in files: if filename.endswith(ext): @@ -513,30 +520,51 @@ def submitDestinationCreation(request): try: - dest.objects.get(destLoc=ipAddress) + d = dest.objects.get(destLoc=ipAddress) final_dic = {'destStatus': 0, 'error_message': "This destination already exists."} final_json = json.dumps(final_dic) return HttpResponse(final_json) except: - status = backupUtil.backupUtilities.setupSSHKeys(ipAddress,password) - if status == 1: + keyPath = "/home/cyberpanel/.ssh" + + if not os.path.exists(keyPath): + os.makedirs(keyPath) + command = "ssh-keygen -f "+keyPath+"/cyberpanel -t rsa -N ''" + cmd = shlex.split(command) + res = subprocess.call(cmd) + + pubKey = keyPath+"/cyberpanel.pub" + + f = open(pubKey) + data = f.read() + + finalData = json.dumps({'username': "admin", "password": password,"putSSHKey":data}) + + url = "https://" + ipAddress + ":8090/api/putSSHkey" + + r = requests.post(url, data=finalData, verify=False) + + data = json.loads(r.text) + + if data['putSSHKey'] == 1: + newDest = dest(destLoc=ipAddress) newDest.save() - - writeToFile = open(destinations,"w") - writeToFile.writelines(ipAddress+"\n") + writeToFile = open(destinations, "w") + writeToFile.writelines(ipAddress + "\n") writeToFile.close() + backupUtil.backupUtilities.initiateBackupDirCreation(ipAddress) final_dic = {'destStatus': 1, 'error_message': "None"} final_json = json.dumps(final_dic) return HttpResponse(final_json) else: - final_dic = {'destStatus': 0, 'error_message': status} + final_dic = {'destStatus': 0, 'error_message': data['error_message']} final_json = json.dumps(final_dic) return HttpResponse(final_json) @@ -599,17 +627,18 @@ def getConnectionStatus(request): data = json.loads(request.body) ipAddress = data['IPAddress'] - if backupUtil.backupUtilities.checkConnection(ipAddress)==1: + checkCon = backupUtil.backupUtilities.checkConnection(ipAddress) + + if checkCon[0]==1: final_dic = {'connStatus': 1, 'error_message': "None"} final_json = json.dumps(final_dic) return HttpResponse(final_json) else: - final_dic = {'connStatus': 0, 'error_message': "None"} + final_dic = {'connStatus': 0, 'error_message': checkCon[1]} final_json = json.dumps(final_dic) return HttpResponse(final_json) - except BaseException,msg: final_dic = {'connStatus': 1, 'error_message': str(msg)} final_json = json.dumps(final_dic) @@ -764,11 +793,15 @@ def submitBackupSchedule(request): if backupDest == "Home" and backupFreq == "Daily": cronJob = "0 3 * * 0-6 root python /usr/local/CyberCP/plogical/backupScheduleLocal.py" + virtualHostUtilities.permissionControl(path) + writeToFile = open(path,'a') writeToFile.writelines(cronJob+"\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -782,11 +815,15 @@ def submitBackupSchedule(request): elif backupDest == "Home" and backupFreq == "Weekly": cronJob = "0 3 * * 3 root python /usr/local/CyberCP/plogical/backupScheduleLocal.py " + virtualHostUtilities.permissionControl(path) + writeToFile = open(path, 'a') writeToFile.writelines(cronJob + "\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -800,11 +837,15 @@ def submitBackupSchedule(request): elif backupDest != "Home" and backupFreq == "Daily": cronJob = "0 3 * * 0-6 root python /usr/local/CyberCP/plogical/backupSchedule.py" + virtualHostUtilities.permissionControl(path) + writeToFile = open(path, 'a') writeToFile.writelines(cronJob + "\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -818,11 +859,15 @@ def submitBackupSchedule(request): elif backupDest != "Home" and backupFreq == "Weekly": cronJob = "0 3 * * 3 root python /usr/local/CyberCP/plogical/backupSchedule.py " + virtualHostUtilities.permissionControl(path) + writeToFile = open(path, 'a') writeToFile.writelines(cronJob + "\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -836,11 +881,15 @@ def submitBackupSchedule(request): if backupDest == "Home" and backupFreq == "Daily": cronJob = "0 3 * * 0-6 root python /usr/local/CyberCP/plogical/backupScheduleLocal.py" + virtualHostUtilities.permissionControl(path) + writeToFile = open(path, 'a') writeToFile.writelines(cronJob + "\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -854,11 +903,15 @@ def submitBackupSchedule(request): elif backupDest == "Home" and backupFreq == "Weekly": cronJob = "0 3 * * 3 root python /usr/local/CyberCP/plogical/backupScheduleLocal.py " + virtualHostUtilities.permissionControl(path) + writeToFile = open(path, 'a') writeToFile.writelines(cronJob + "\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -872,11 +925,15 @@ def submitBackupSchedule(request): elif backupDest != "Home" and backupFreq == "Daily": cronJob = "0 3 * * 0-6 root python /usr/local/CyberCP/plogical/backupSchedule.py" + virtualHostUtilities.permissionControl(path) + writeToFile = open(path, 'a') writeToFile.writelines(cronJob + "\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -890,11 +947,15 @@ def submitBackupSchedule(request): elif backupDest != "Home" and backupFreq == "Weekly": cronJob = "0 3 * * 3 root python /usr/local/CyberCP/plogical/backupSchedule.py " + virtualHostUtilities.permissionControl(path) + writeToFile = open(path, 'a') writeToFile.writelines(cronJob + "\n") writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -929,6 +990,8 @@ def scheduleDelete(request): if backupDest == "Home" and backupFreq == "Daily": + virtualHostUtilities.permissionControl(path) + data = open(path, "r").readlines() writeToFile = open(path, 'w') @@ -940,7 +1003,9 @@ def scheduleDelete(request): writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -953,6 +1018,8 @@ def scheduleDelete(request): elif backupDest == "Home" and backupFreq == "Weekly": + virtualHostUtilities.permissionControl(path) + data = open(path, "r").readlines() writeToFile = open(path, 'w') @@ -964,7 +1031,9 @@ def scheduleDelete(request): writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -977,6 +1046,8 @@ def scheduleDelete(request): elif backupDest != "Home" and backupFreq == "Daily": + virtualHostUtilities.permissionControl(path) + data = open(path, "r").readlines() writeToFile = open(path, 'w') @@ -988,7 +1059,9 @@ def scheduleDelete(request): writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -1001,6 +1074,8 @@ def scheduleDelete(request): elif backupDest != "Home" and backupFreq == "Weekly": + virtualHostUtilities.permissionControl(path) + data = open(path, "r").readlines() writeToFile = open(path, 'w') @@ -1012,7 +1087,9 @@ def scheduleDelete(request): writeToFile.close() - command = "systemctl restart crond" + virtualHostUtilities.leaveControl(path) + + command = "sudo systemctl restart crond" subprocess.call(shlex.split(command)) @@ -1099,37 +1176,51 @@ def submitRemoteBackups(request): else: final_json = json.dumps({'status': 0, 'error_message': sshkey[1]}) return HttpResponse(final_json) - sshkey = sshkey[1] - pathToSSH = "/root/.ssh/authorized_keys" + pubKey = sshkey[1] - if not os.path.exists("/root/.ssh"): - os.makedirs("/root/.ssh") - if not os.path.exists(pathToSSH): - f = open(pathToSSH,"w") - f.close() - else: - if not os.path.exists(pathToSSH): - f = open(pathToSSH,"w") - f.close() + keyPath = "/home/cyberpanel/.ssh" + + if not os.path.exists(keyPath): + os.makedirs(keyPath) + + ## writeKey + + authorized_keys = keyPath + "/authorized_keys" presenseCheck = 0 - - data = open(pathToSSH,"r").readlines() - - for items in data: - if items.find(sshkey)>-1: - presenseCheck = 1 + try: + data = open(authorized_keys, "r").readlines() + for items in data: + if items.find(pubKey) > -1: + presenseCheck = 1 + except: + pass if presenseCheck == 0: - writeToFile = open(pathToSSH, 'a') + writeToFile = open(authorized_keys, 'a') writeToFile.writelines("#Added by CyberPanel\n") writeToFile.writelines("\n") - writeToFile.writelines(sshkey) + writeToFile.writelines(pubKey) writeToFile.writelines("\n") writeToFile.close() + ## + + command = "sudo chown cyberpanel:cyberpanel /home/cyberpanel" + cmd = shlex.split(command) + res = subprocess.call(cmd) + + command = "sudo chmod g-w /home/cyberpanel" + cmd = shlex.split(command) + res = subprocess.call(cmd) + + os.chmod(keyPath, 0700) + os.chmod(authorized_keys, 0600) + + ## + try: finalData = json.dumps({'username': "admin","password": password}) diff --git a/baseTemplate/static/baseTemplate/assets/themes/frontend/color-schemes/default.css b/baseTemplate/static/baseTemplate/assets/themes/frontend/color-schemes/default.css index 59beb63c4..d49b90eae 100755 --- a/baseTemplate/static/baseTemplate/assets/themes/frontend/color-schemes/default.css +++ b/baseTemplate/static/baseTemplate/assets/themes/frontend/color-schemes/default.css @@ -1,7 +1,84 @@ /* Default color schemes */ -@import url(https://fonts.googleapis.com/css?family=Raleway:300); -@import url(https://fonts.googleapis.com/css?family=Open+Sans); +/* Google imports */ + +/* latin-ext */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 300; + src: local('Raleway Light'), local('Raleway-Light'), url(https://fonts.gstatic.com/s/raleway/v12/ZKwULyCG95tk6mOqHQfRBCEAvth_LlrfE80CYdSH47w.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 300; + src: local('Raleway Light'), local('Raleway-Light'), url(https://fonts.gstatic.com/s/raleway/v12/-_Ctzj9b56b8RgXW8FArifk_vArhqVIZ0nv9q090hN8.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + + +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + + + /* General */ diff --git a/baseTemplate/templates/baseTemplate/index.html b/baseTemplate/templates/baseTemplate/index.html index a19e8f345..360e8402f 100755 --- a/baseTemplate/templates/baseTemplate/index.html +++ b/baseTemplate/templates/baseTemplate/index.html @@ -21,7 +21,7 @@ - + diff --git a/databases/views.py b/databases/views.py index c0b11ac84..0e410710d 100644 --- a/databases/views.py +++ b/databases/views.py @@ -324,7 +324,7 @@ def changePassword(request): passwordCMD = "use mysql;SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + dbPassword + "');FLUSH PRIVILEGES;" - command = 'mysql -u root -p' + password + ' -e "' + passwordCMD + '"' + command = 'sudo mysql -u root -p' + password + ' -e "' + passwordCMD + '"' cmd = shlex.split(command) res = subprocess.call(cmd) diff --git a/filemanager_app/filemanager.py b/filemanager_app/filemanager.py index 0e1292aab..fa81aa1d2 100755 --- a/filemanager_app/filemanager.py +++ b/filemanager_app/filemanager.py @@ -95,7 +95,13 @@ class FileManager: if not os.path.exists(path) or not path.startswith(self.root): return {'result': ''} - command = 'chown -R nobody:nobody '+path + command = 'sudo chmod -R 775 '+path + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + command = 'sudo chown -R nobody:cyberpanel ' + path cmd = shlex.split(command) diff --git a/firewall/views.py b/firewall/views.py index dcf2493fc..9df7cb9d1 100644 --- a/firewall/views.py +++ b/firewall/views.py @@ -150,7 +150,7 @@ def reloadFirewall(request): if request.method == 'POST': - command = 'firewall-cmd --reload' + command = 'sudo firewall-cmd --reload' cmd = shlex.split(command) @@ -185,7 +185,7 @@ def startFirewall(request): if request.method == 'POST': - command = 'systemctl start firewalld' + command = 'sudo systemctl start firewalld' cmd = shlex.split(command) @@ -220,7 +220,7 @@ def stopFirewall(request): if request.method == 'POST': - command = 'systemctl stop firewalld' + command = 'sudo systemctl stop firewalld' cmd = shlex.split(command) @@ -302,6 +302,14 @@ def getSSHConfigs(request): if type=="1": + ## temporarily changing permission for sshd files + + command = 'sudo chown -R cyberpanel:cyberpanel /etc/ssh/sshd_config' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + pathToSSH = "/etc/ssh/sshd_config" @@ -318,10 +326,27 @@ def getSSHConfigs(request): if items.find("Port") > -1 and not items.find("GatewayPorts") > -1: sshPort = items.split(" ")[1].strip("\n") + ## changing permission back + + command = 'sudo chown -R root:root /etc/ssh/sshd_config' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + final_dic = {'permitRootLogin': permitRootLogin, 'sshPort': sshPort} final_json = json.dumps(final_dic) return HttpResponse(final_json) else: + + ## temporarily changing permission for sshd files + + command = 'sudo chown -R cyberpanel:cyberpanel /root' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + pathToKeyFile = "/root/.ssh/authorized_keys" json_data = "[" @@ -352,6 +377,14 @@ def getSSHConfigs(request): json_data = json_data + ']' + ## changing permission back + + command = 'sudo chown -R root:root /root' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data}) return HttpResponse(final_json) @@ -381,12 +414,13 @@ def saveSSHConfigs(request): sshPort = data['sshPort'] rootLogin = data['rootLogin'] - command = 'semanage port -a -t ssh_port_t -p tcp ' +sshPort + command = 'sudo semanage port -a -t ssh_port_t -p tcp ' +sshPort cmd = shlex.split(command) res = subprocess.call(cmd) + FirewallUtilities.addRule('tcp',sshPort) try: @@ -399,6 +433,17 @@ def saveSSHConfigs(request): newFireWallRule.save() + ## temporarily changing permission for sshd files + + command = 'sudo chown -R cyberpanel:cyberpanel /etc/ssh/sshd_config' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + if rootLogin == True: rootLogin = "PermitRootLogin yes\n" else: @@ -425,12 +470,22 @@ def saveSSHConfigs(request): writeToFile.writelines(items) writeToFile.close() - command = 'systemctl restart sshd' + command = 'sudo systemctl restart sshd' cmd = shlex.split(command) res = subprocess.call(cmd) + ## changin back permissions + + command = 'sudo chown -R root:root /etc/ssh/sshd_config' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + final_dic = {'saveStatus': 1} final_json = json.dumps(final_dic) @@ -454,6 +509,16 @@ def deleteSSHKey(request): data = json.loads(request.body) key = data['key'] + # temp change of permissions + + command = 'sudo chown -R cyberpanel:cyberpanel /root' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + keyPart = key.split(" ")[1] pathToSSH = "/root/.ssh/authorized_keys" @@ -469,6 +534,16 @@ def deleteSSHKey(request): writeToFile.writelines(items) writeToFile.close() + # change back permissions + + command = 'sudo chown -R root:root /root' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + final_dic = {'delete_status': 1} final_json = json.dumps(final_dic) @@ -492,6 +567,16 @@ def addSSHKey(request): data = json.loads(request.body) key = data['key'] + # temp change of permissions + + command = 'sudo chown -R cyberpanel:cyberpanel /root' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + sshDir = "/root/.ssh" pathToSSH = "/root/.ssh/authorized_keys" @@ -516,6 +601,16 @@ def addSSHKey(request): writeToFile.writelines("\n") writeToFile.close() + # change back permissions + + command = 'sudo chown -R root:root /root' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + final_dic = {'add_status': 1} final_json = json.dumps(final_dic) diff --git a/install/firewallUtilities.py b/install/firewallUtilities.py index 5bba51375..0020774da 100644 --- a/install/firewallUtilities.py +++ b/install/firewallUtilities.py @@ -15,7 +15,7 @@ class FirewallUtilities: def addRule(proto,port): try: if port == "21": - command = "firewall-cmd --add-service=ftp --permanent" + command = "sudo firewall-cmd --add-service=ftp --permanent" cmd = shlex.split(command) res = subprocess.call(cmd) @@ -26,7 +26,7 @@ class FirewallUtilities: ruleProtocol = 'port protocol="' + proto + '"' rulePort = 'port="' + port + '"' - command = "firewall-cmd --permanent --zone=public --add-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" + command = "sudo firewall-cmd --permanent --zone=public --add-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" cmd = shlex.split(command) @@ -51,7 +51,7 @@ class FirewallUtilities: def deleteRule(proto, port): try: if port=="21": - command = "firewall-cmd --remove-service=ftp --permanent" + command = "sudo firewall-cmd --remove-service=ftp --permanent" cmd = shlex.split(command) res = subprocess.call(cmd) @@ -62,7 +62,7 @@ class FirewallUtilities: ruleProtocol = 'port protocol="' + proto + '"' rulePort = 'port="' + port + '"' - command = "firewall-cmd --permanent --zone=public --remove-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" + command = "sudo firewall-cmd --permanent --zone=public --remove-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" cmd = shlex.split(command) diff --git a/install/gun-configs/gunicorn.service b/install/gun-configs/gunicorn.service index 4d92565fb..65484c768 100644 --- a/install/gun-configs/gunicorn.service +++ b/install/gun-configs/gunicorn.service @@ -5,8 +5,8 @@ After=network.target [Service] PIDFile=/run/gunicorn/pid -User=root -Group=root +User=cyberpanel +Group=cyberpanel RuntimeDirectory=gunicorn WorkingDirectory=/usr/local/CyberCP ExecStart=/usr/bin/gunicorn --pid /run/gunicorn/gucpid \ diff --git a/install/install.py b/install/install.py index 00e442ecf..5b52b7738 100644 --- a/install/install.py +++ b/install/install.py @@ -18,6 +18,85 @@ class preFlightsChecks: self.cwd = cwd self.server_root_path = rootPath + + def setup_account_cyberpanel(self): + try: + command = "yum install sudo -y" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + command = "adduser cyberpanel" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + command = "usermod -aG wheel cyberpanel" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ############################### + + path = "/etc/sudoers" + + data = open(path,'r').readlines() + + writeToFile = open(path,'w') + + for items in data: + if items.find("wheel ALL=(ALL) NOPASSWD: ALL")>-1: + writeToFile.writelines("%wheel ALL=(ALL) NOPASSWD: ALL") + else: + writeToFile.writelines(items) + + writeToFile.close() + + ############################### + + command = "mkdir /etc/letsencrypt" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + + command = "chown cyberpanel:cyberpanel /etc/letsencrypt" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + + command = "usermod -a -G root cyberpanel" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + command = "usermod -a -G nobody cyberpanel" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + except: + logging.InstallLog.writeToFile("[116] setup_account_cyberpanel") + + def yum_update(self): try: @@ -522,19 +601,23 @@ class preFlightsChecks: def fix_selinux_issue(self): - cmd = [] + try: - cmd.append("setsebool") - cmd.append("-P") - cmd.append("httpd_can_network_connect") - cmd.append("1") + cmd = [] - res = subprocess.call(cmd) + cmd.append("setsebool") + cmd.append("-P") + cmd.append("httpd_can_network_connect") + cmd.append("1") - if res == 1: + res = subprocess.call(cmd) + + if res == 1: + logging.InstallLog.writeToFile("fix_selinux_issue problem") + else: + pass + except BaseException,msg: logging.InstallLog.writeToFile("fix_selinux_issue problem") - else: - pass def install_psmisc(self): @@ -599,7 +682,7 @@ class preFlightsChecks: cmd = [] cmd.append("wget") - cmd.append("http://cyberpanel.net/CyberPanel.1.5.tar.gz") + cmd.append("http://cyberpanel.net/CyberPanelTemp.tar.gz") res = subprocess.call(cmd) @@ -618,7 +701,7 @@ class preFlightsChecks: cmd.append("tar") cmd.append("zxf") - cmd.append("CyberPanel.1.5.tar.gz") + cmd.append("CyberPanelTemp.tar.gz") res = subprocess.call(cmd) @@ -1375,7 +1458,7 @@ class preFlightsChecks: def downoad_and_install_raindloop(self): try: - command = 'chown -R nobody:nobody /usr/local/lscp/cyberpanel/' + command = 'chown -R nobody:cyberpanel /usr/local/lscp/cyberpanel/' cmd = shlex.split(command) @@ -1795,7 +1878,48 @@ class preFlightsChecks: while (1): - command = 'chown -R nobody:nobody /usr/local/lsws' + command = 'chown -R nobody:cyberpanel /usr/local/lsws' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + command = 'chown -R nobody:cyberpanel /home' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + + command = "chown cyberpanel:cyberpanel /usr/local/lscp" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + command = "sudo chmod -R 775 /home" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + command = "sudo chmod -R 775 /usr/local/lsws" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + ## + + command = "sudo chmod -R 775 /etc/postfix" cmd = shlex.split(command) @@ -1842,7 +1966,6 @@ def Main(): checks = preFlightsChecks("/usr/local/lsws/",args.publicip,"/usr/local",cwd) - checks.checkPythonVersion() checks.yum_update() checks.installCyberPanelRepo() @@ -1857,11 +1980,9 @@ def Main(): checks.install_pexpect() checks.install_python_mysql_library() checks.install_wget() + checks.setup_account_cyberpanel() checks.install_gunicorn() checks.install_psutil() - - - checks.setup_gunicorn() import installCyberPanel diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index 91828fc5a..65bee0751 100644 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -644,7 +644,11 @@ class InstallCyberPanel: print("###############################################") + commad = "usermod -a -G cyberpanel ftpuser" + cmd = shlex.split(commad) + + subprocess.call(cmd) except OSError, msg: logging.InstallLog.writeToFile(str(msg) + " [installPureFTPD]") @@ -933,27 +937,58 @@ class InstallCyberPanel: while (1): - cmd.append("yum") - cmd.append("-y") - cmd.append("install") - cmd.append("certbot") + if subprocess.check_output('systemd-detect-virt').find("openvz") > -1: - res = subprocess.call(cmd) + command = "pip install pyOpenSSL==16.2.0" - if res == 1: - print("###############################################") - print(" Could not install CertBot ") - print("###############################################") - logging.InstallLog.writeToFile("Certbot not installed" + " [installCertBot]") - count = count + 1 - print("Trying again, try number: " + str(count)+"\n") - if count == 3: + cmd = shlex.split(command) + + subprocess.call(cmd) + + command = "pip install certbot" + + cmd = shlex.split(command) + + subprocess.call(cmd) + + if res == 1: + print("###############################################") + print(" Could not install CertBot ") + print("###############################################") + logging.InstallLog.writeToFile("Certbot not installed" + " [installCertBot]") + count = count + 1 + print("Trying again, try number: " + str(count)+"\n") + if count == 3: + break + else: + print("###############################################") + print(" Certbot Installed ") + print("###############################################") break + else: - print("###############################################") - print(" Certbot Installed ") - print("###############################################") - break + + cmd.append("yum") + cmd.append("-y") + cmd.append("install") + cmd.append("certbot") + + res = subprocess.call(cmd) + + if res == 1: + print("###############################################") + print(" Could not install CertBot ") + print("###############################################") + logging.InstallLog.writeToFile("Certbot not installed" + " [installCertBot]") + count = count + 1 + print("Trying again, try number: " + str(count)+"\n") + if count == 3: + break + else: + print("###############################################") + print(" Certbot Installed ") + print("###############################################") + break diff --git a/install/installLog.py b/install/installLog.py index bd2a3b476..c38f015f5 100644 --- a/install/installLog.py +++ b/install/installLog.py @@ -8,14 +8,3 @@ class InstallLog: file = open(InstallLog.fileName,'a') file.writelines(message + "\n") file.close() - - @staticmethod - def readLastNFiles(numberOfLines): - try: - - lastFewLines = subprocess.check_output(["tail", "-n",str(numberOfLines),CyberCPLogFileWriter.fileName]) - - return lastFewLines - - except subprocess.CalledProcessError,msg: - CyberCPLogFileWriter.writeToFile(str(msg) + "[readLastNFiles]") diff --git a/locale/ja/LC_MESSAGES/django.mo b/locale/ja/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2822c58bcc3799a341ce69e86e8c81b8fd46a27c GIT binary patch literal 48363 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 literal 0 HcmV?d00001 diff --git a/locale/ja/LC_MESSAGES/django.po b/locale/ja/LC_MESSAGES/django.po new file mode 100644 index 000000000..94b23f4fa --- /dev/null +++ b/locale/ja/LC_MESSAGES/django.po @@ -0,0 +1,2832 @@ +# CyberPanel Translation File. +# Copyright (C) 2017 LiteSpeedTech +# This file is distributed under the same license as the CyberPanel package. +# FIRST AUTHOR , 2017. +# +#: baseTemplate/templates/baseTemplate/index.html:211 +#: baseTemplate/templates/baseTemplate/index.html:301 +#: baseTemplate/templates/baseTemplate/index.html:356 +#: baseTemplate/templates/baseTemplate/index.html:362 +#: baseTemplate/templates/baseTemplate/index.html:368 +#: baseTemplate/templates/baseTemplate/index.html:374 +#: baseTemplate/templates/baseTemplate/index.html:380 +#: baseTemplate/templates/baseTemplate/index.html:386 +msgid "" +msgstr "" +"Project-Id-Version: CyberPanel\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-02 02:08+0500\n" +"PO-Revision-Date: 2017-10-31 23:38+0900\n" +"Last-Translator: @ kazuo210 \n" +"Language-Team: LANGUAGE \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: CyberCP/settings.py:167 +msgid "English" +msgstr "英語" + +#: CyberCP/settings.py:168 +msgid "Chinese" +msgstr "中国語" + +#: CyberCP/settings.py:169 +msgid "Bulgarian" +msgstr "ブルガリア語" + +#: CyberCP/settings.py:170 +msgid "Portuguese" +msgstr "ポルトガル語" + +#: CyberCP/settings.py:171 +msgid "Japanese" +msgstr "日本語" + +#: CyberCP/settings.py:172 +msgid "Bosnian" +msgstr "ボスニア語" + +#: backup/templates/backup/backup.html:3 backup/templates/backup/backup.html:13 +#: backup/templates/backup/backup.html:20 +msgid "Back up Website" +msgstr "Web サイトのバックアップ" + +#: backup/templates/backup/backup.html:14 +msgid "This page can be used to Back up your websites" +msgstr "このページは、Web サイトをバックアップするために使用することができます" + +#: backup/templates/backup/backup.html:29 +#: databases/templates/databases/createDatabase.html:28 +#: databases/templates/databases/deleteDatabase.html:28 +#: ftp/templates/ftp/createFTPAccount.html:28 +#: mailServer/templates/mailServer/changeEmailPassword.html:28 +#: mailServer/templates/mailServer/createEmailAccount.html:28 +#: mailServer/templates/mailServer/deleteEmailAccount.html:28 +#: manageSSL/templates/manageSSL/manageSSL.html:29 +#: manageSSL/templates/manageSSL/sslForHostName.html:29 +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:28 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:28 +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:29 +msgid "Select Website" +msgstr "Web サイトを選択" + +#: backup/templates/backup/backup.html:40 +#: backup/templates/backup/backupSchedule.html:90 +msgid "Destination" +msgstr "宛先" + +#: backup/templates/backup/backup.html:43 +#: baseTemplate/templates/baseTemplate/homePage.html:12 +msgid "Home" +msgstr "ホーム" + +#: backup/templates/backup/backup.html:59 +#: backup/templates/backup/restore.html:62 +msgid "File Name" +msgstr "ファイル名" + +#: backup/templates/backup/backup.html:60 +#: backup/templates/backup/backup.html:105 +#: backup/templates/backup/restore.html:63 +#: baseTemplate/templates/baseTemplate/index.html:390 +#: firewall/templates/firewall/firewall.html:36 +#: managePHP/templates/managePHP/installExtensions.html:65 +msgid "Status" +msgstr "状態" + +#: backup/templates/backup/backup.html:65 +msgid "Running" +msgstr "実行中" + +#: backup/templates/backup/backup.html:80 +#: baseTemplate/templates/baseTemplate/index.html:561 +msgid "Create Back up" +msgstr "バックアップの作成" + +#: backup/templates/backup/backup.html:87 +msgid "Cancel Backup" +msgstr "バックアップを中止" + +#: backup/templates/backup/backup.html:101 +#: backup/templates/backup/backupDestinations.html:90 +#: backup/templates/backup/backupSchedule.html:89 +#: databases/templates/databases/listDataBases.html:87 +#: dns/templates/dns/addDeleteDNSRecords.html:129 +#: firewall/templates/firewall/firewall.html:135 +#: ftp/templates/ftp/listFTPAccounts.html:87 +#: managePHP/templates/managePHP/installExtensions.html:61 +msgid "ID" +msgstr "ID" + +#: backup/templates/backup/backup.html:102 +msgid "File" +msgstr "ファイル" + +#: backup/templates/backup/backup.html:103 +msgid "Date" +msgstr "日付" + +#: backup/templates/backup/backup.html:104 +#: ftp/templates/ftp/listFTPAccounts.html:90 +msgid "Size" +msgstr "サイズ" + +#: backup/templates/backup/backup.html:106 +#: backup/templates/backup/backupDestinations.html:93 +#: backup/templates/backup/backupSchedule.html:92 +#: dns/templates/dns/addDeleteDNSRecords.html:134 +#: firewall/templates/firewall/firewall.html:140 +#: firewall/templates/firewall/secureSSH.html:122 +#: websiteFunctions/templates/websiteFunctions/website.html:451 +msgid "Delete" +msgstr "削除" + +#: backup/templates/backup/backup.html:130 +msgid "Cannot delete website, Error message: " +msgstr "Web サイトを削除できません、エラーメッセージ: " + +#: backup/templates/backup/backup.html:134 +msgid "Successfully Deleted" +msgstr "削除されました" + +#: backup/templates/backup/backupDestinations.html:3 +#: backup/templates/backup/backupDestinations.html:14 +#: backup/templates/backup/backupDestinations.html:21 +msgid "Set up Back up Destinations" +msgstr "バックアップ先の設定" + +#: backup/templates/backup/backupDestinations.html:15 +msgid "On this page you can set up your Back up destinations. (SFTP)" +msgstr "このページでは、バックアップ先を設定できます。 (SFTP)" + +#: backup/templates/backup/backupDestinations.html:30 +#: backup/templates/backup/remoteBackups.html:29 +#: dns/templates/dns/addDeleteDNSRecords.html:60 +#: dns/templates/dns/createNameServer.html:48 +#: dns/templates/dns/createNameServer.html:65 +#: firewall/templates/firewall/firewall.html:138 +msgid "IP Address" +msgstr "IP アドレス" + +#: backup/templates/backup/backupDestinations.html:38 +#: backup/templates/backup/remoteBackups.html:37 +#: databases/templates/databases/createDatabase.html:58 +#: databases/templates/databases/listDataBases.html:90 +#: ftp/templates/ftp/listFTPAccounts.html:91 +#: mailServer/templates/mailServer/changeEmailPassword.html:52 +#: mailServer/templates/mailServer/createEmailAccount.html:51 +#: userManagment/templates/userManagment/createUser.html:123 +#: userManagment/templates/userManagment/modifyUser.html:106 +msgid "Password" +msgstr "パスワード" + +#: backup/templates/backup/backupDestinations.html:48 +#: backup/templates/backup/backupSchedule.html:54 +#: baseTemplate/templates/baseTemplate/index.html:563 +msgid "Add Destination" +msgstr "バックアップ先の追加" + +#: backup/templates/backup/backupDestinations.html:62 +#: backup/templates/backup/backupDestinations.html:66 +msgid "Connection to" +msgstr "接続" + +#: backup/templates/backup/backupDestinations.html:62 +msgid "failed. Please delete and re-add." +msgstr "失敗しました。削除して再追加してください。" + +#: backup/templates/backup/backupDestinations.html:66 +msgid "successful." +msgstr "成功。" + +#: backup/templates/backup/backupDestinations.html:70 +msgid "Cannot add destination. Error message:" +msgstr "宛先を追加できません。エラーメッセージ:" + +#: backup/templates/backup/backupDestinations.html:74 +msgid "Destination Added." +msgstr "追加された宛先。" + +#: backup/templates/backup/backupDestinations.html:78 +#: backup/templates/backup/backupSchedule.html:77 +#: backup/templates/backup/restore.html:95 +#: databases/templates/databases/createDatabase.html:88 +#: databases/templates/databases/deleteDatabase.html:73 +#: dns/templates/dns/addDeleteDNSRecords.html:185 +#: dns/templates/dns/createDNSZone.html:60 +#: dns/templates/dns/createNameServer.html:100 +#: dns/templates/dns/deleteDNSZone.html:67 +#: mailServer/templates/mailServer/changeEmailPassword.html:80 +#: mailServer/templates/mailServer/createEmailAccount.html:79 +#: mailServer/templates/mailServer/deleteEmailAccount.html:79 +#: manageSSL/templates/manageSSL/manageSSL.html:60 +#: userManagment/templates/userManagment/createUser.html:162 +#: userManagment/templates/userManagment/modifyUser.html:138 +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:77 +#: websiteFunctions/templates/websiteFunctions/website.html:157 +#: websiteFunctions/templates/websiteFunctions/website.html:363 +#: websiteFunctions/templates/websiteFunctions/website.html:405 +#: websiteFunctions/templates/websiteFunctions/website.html:535 +#: websiteFunctions/templates/websiteFunctions/website.html:590 +#: websiteFunctions/templates/websiteFunctions/website.html:645 +#: websiteFunctions/templates/websiteFunctions/website.html:792 +msgid "Could not connect to server. Please refresh this page." +msgstr "サーバーに接続できませんでした。 このページを更新してください。" + +#: backup/templates/backup/backupDestinations.html:91 +msgid "IP" +msgstr "IP" + +#: backup/templates/backup/backupDestinations.html:92 +#: backup/templates/backup/backupDestinations.html:100 +msgid "Check Connection" +msgstr "接続を確認" + +#: backup/templates/backup/backupSchedule.html:3 +msgid "Schedule Back up - CyberPanel" +msgstr "バックアップスケジュール - Cyber​​Panel" + +#: backup/templates/backup/backupSchedule.html:13 +#: backup/templates/backup/backupSchedule.html:20 +#: baseTemplate/templates/baseTemplate/index.html:564 +msgid "Schedule Back up" +msgstr "バックアップスケジュール" + +#: backup/templates/backup/backupSchedule.html:14 +msgid "" +"On this page you can schedule Back ups to localhost or remote server (If you " +"have added one)." +msgstr "" +"このページでは、ローカルホストまたはリモートサーバーへのバックアップをスケ" +"ジュールすることができます(追加した場合)。" + +#: backup/templates/backup/backupSchedule.html:29 +msgid "Select Destination" +msgstr "移動先を選択" + +#: backup/templates/backup/backupSchedule.html:40 +msgid "Select Frequency" +msgstr "実行間隔を選択" + +#: backup/templates/backup/backupSchedule.html:43 +msgid "Daily" +msgstr "日次" + +#: backup/templates/backup/backupSchedule.html:44 +msgid "Weekly" +msgstr "週次" + +#: backup/templates/backup/backupSchedule.html:69 +msgid "Cannot add schedule. Error message:" +msgstr "スケジュールを追加できません。エラーメッセージ:" + +#: backup/templates/backup/backupSchedule.html:73 +msgid "Schedule Added" +msgstr "スケジュールの追加" + +#: backup/templates/backup/backupSchedule.html:91 +msgid "Frequency" +msgstr "実行間隔" + +#: backup/templates/backup/index.html:3 +msgid "Back up Home - CyberPanel" +msgstr "バックアップ ホーム - CyberPanel" + +#: backup/templates/backup/index.html:13 backup/templates/backup/index.html:29 +#: backup/templates/backup/index.html:45 +#: baseTemplate/templates/baseTemplate/homePage.html:268 +#: baseTemplate/templates/baseTemplate/homePage.html:271 +#: baseTemplate/templates/baseTemplate/homePage.html:463 +#: baseTemplate/templates/baseTemplate/homePage.html:466 +#: baseTemplate/templates/baseTemplate/index.html:554 +#: baseTemplate/templates/baseTemplate/index.html:556 +#: baseTemplate/templates/baseTemplate/index.html:573 +msgid "Back up" +msgstr "バックアップ" + +#: backup/templates/backup/index.html:14 +msgid "Back up and restore sites." +msgstr "バックアップし、サイトを復元します。" + +#: backup/templates/backup/index.html:19 +#: baseTemplate/templates/baseTemplate/homePage.html:164 +#: databases/templates/databases/index.html:19 dns/templates/dns/index.html:19 +#: firewall/templates/firewall/index.html:19 ftp/templates/ftp/index.html:19 +#: mailServer/templates/mailServer/index.html:19 +#: managePHP/templates/managePHP/index.html:18 +#: manageSSL/templates/manageSSL/index.html:20 +#: packages/templates/packages/index.html:19 +#: serverLogs/templates/serverLogs/index.html:19 +#: serverStatus/templates/serverStatus/index.html:19 +#: tuning/templates/tuning/index.html:18 +#: userManagment/templates/userManagment/index.html:20 +#: websiteFunctions/templates/websiteFunctions/index.html:20 +msgid "Available Functions" +msgstr "使用可能な機能" + +#: backup/templates/backup/index.html:27 backup/templates/backup/index.html:43 +msgid "Back up Site" +msgstr "サイトのバックアップ" + +#: backup/templates/backup/index.html:55 +#: baseTemplate/templates/baseTemplate/index.html:562 +msgid "Restore Back up" +msgstr "バックアップの復元" + +#: backup/templates/backup/index.html:57 +#: backup/templates/backup/restore.html:45 +msgid "Restore" +msgstr "復元" + +#: backup/templates/backup/remoteBackups.html:3 +msgid "Transfer Websites from Remote Server - CyberPanel" +msgstr "リモートサーバーからWebサイトを転送 - Cyber​​Panel" + +#: backup/templates/backup/remoteBackups.html:14 +#: backup/templates/backup/remoteBackups.html:21 +msgid "Remote Backups" +msgstr "リモートバックアップ" + +#: backup/templates/backup/remoteBackups.html:15 +msgid "This feature can import website(s) from remote server" +msgstr "この機能は、リモート サーバーからウェブサイトをインポートします" + +#: backup/templates/backup/remoteBackups.html:46 +msgid "Fetch Accounts" +msgstr "アカウントの取得" + +#: backup/templates/backup/remoteBackups.html:55 +msgid "Start Transfer" +msgstr "転送を開始" + +#: backup/templates/backup/remoteBackups.html:59 +#: websiteFunctions/templates/websiteFunctions/website.html:296 +msgid "Cancel" +msgstr "キャンセル" + +#: backup/templates/backup/remoteBackups.html:72 +msgid "Could not connect, please refresh this page." +msgstr "接続できませんでした。このページを更新してください。" + +#: backup/templates/backup/remoteBackups.html:76 +msgid "Accounts Successfully Fetched from remote server." +msgstr "アカウントはリモートサーバーから取得されました。" + +#: backup/templates/backup/remoteBackups.html:80 +msgid "Backup Process successfully started." +msgstr "バックアップ処理が開始されました。" + +#: backup/templates/backup/remoteBackups.html:84 +msgid "Backup successfully cancelled." +msgstr "バックアップはキャンセルされました。" + +#: backup/templates/backup/remoteBackups.html:96 +msgid "Search Accounts.." +msgstr "アカウントを検索。" + +#: backup/templates/backup/remoteBackups.html:107 +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:65 +msgid "Website" +msgstr "Web サイト" + +#: backup/templates/backup/remoteBackups.html:108 +#: baseTemplate/templates/baseTemplate/homePage.html:333 +#: baseTemplate/templates/baseTemplate/index.html:626 +#: baseTemplate/templates/baseTemplate/index.html:628 +#: managePHP/templates/managePHP/installExtensions.html:62 +msgid "PHP" +msgstr "PHP" + +#: backup/templates/backup/remoteBackups.html:109 +#: packages/templates/packages/createPackage.html:99 +#: packages/templates/packages/deletePackage.html:63 +#: packages/templates/packages/modifyPackage.html:112 +msgid "Package" +msgstr "パッケージ" + +#: backup/templates/backup/remoteBackups.html:110 +#: baseTemplate/templates/baseTemplate/index.html:514 +#: baseTemplate/templates/baseTemplate/index.html:516 +#: userManagment/templates/userManagment/createUser.html:47 +#: userManagment/templates/userManagment/modifyUser.html:54 +#: userManagment/templates/userManagment/userProfile.html:50 +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:60 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:67 +msgid "Email" +msgstr "メール" + +#: backup/templates/backup/restore.html:3 +msgid "Restore Website - CyberPanel" +msgstr "Web サイトの復元 - Cyber​​Panel" + +#: backup/templates/backup/restore.html:14 +#: backup/templates/backup/restore.html:21 +msgid "Restore Website" +msgstr "Web サイトの復元" + +#: backup/templates/backup/restore.html:15 +msgid "" +"This page can be used to restore your websites, Back up should be generated " +"from CyberPanel Back up generation tool, it will detect all Back ups under " +"/home/backup." +msgstr "" +"このページは、Web サイトを復元するために使用することができます。バックアップ" +"は CyberPanel バックアップ生成ツールから生成され、/home/backup下のすべてのバックアップを検出します。" + +#: backup/templates/backup/restore.html:30 +msgid "Select Back up" +msgstr "バックアップを選択" + +#: backup/templates/backup/restore.html:86 +#: databases/templates/databases/deleteDatabase.html:64 +#: databases/templates/databases/listDataBases.html:54 +#: firewall/templates/firewall/firewall.html:166 +#: managePHP/templates/managePHP/editPHPConfig.html:212 +msgid "Error message:" +msgstr "エラーメッセージ:" + +#: backup/templates/backup/restore.html:90 +msgid "Site related to this Back up already exists." +msgstr "このバックアップに関連するサイトは既に存在します。" + +#: baseTemplate/templates/baseTemplate/homePage.html:3 +msgid "Home - CyberPanel" +msgstr "ホーム - CyberPanel" + +#: baseTemplate/templates/baseTemplate/homePage.html:13 +msgid "Use the tabs to navigate through the control panel." +msgstr "タブを使用して、コントロール パネルを操作します。" + +#: baseTemplate/templates/baseTemplate/homePage.html:23 +#: websiteFunctions/templates/websiteFunctions/website.html:33 +msgid "Usage" +msgstr "使用量" + +#: baseTemplate/templates/baseTemplate/homePage.html:34 +#: baseTemplate/templates/baseTemplate/index.html:221 +msgid "CPU Usage" +msgstr "CPU の使用量" + +#: baseTemplate/templates/baseTemplate/homePage.html:55 +#: baseTemplate/templates/baseTemplate/index.html:232 +msgid "Ram Usage" +msgstr "Ram の使用量" + +#: baseTemplate/templates/baseTemplate/homePage.html:74 +msgid "Disk Usage '/'" +msgstr "ディスクの使用量 '/'" + +#: baseTemplate/templates/baseTemplate/homePage.html:98 +msgid "HTTP Statistics" +msgstr "HTTP の統計情報" + +#: baseTemplate/templates/baseTemplate/homePage.html:107 +msgid "Available/Max Connections" +msgstr "利用可能/最大 接続数" + +#: baseTemplate/templates/baseTemplate/homePage.html:118 +msgid "Available/Max SSL Connections" +msgstr "利用可能/最大 SSL 接続数" + +#: baseTemplate/templates/baseTemplate/homePage.html:127 +msgid "Requests Processing" +msgstr "リクエスト処理数" + +#: baseTemplate/templates/baseTemplate/homePage.html:136 +msgid "Total Requests" +msgstr "合計リクエスト数" + +#: baseTemplate/templates/baseTemplate/homePage.html:175 +#: baseTemplate/templates/baseTemplate/homePage.html:389 +#: userManagment/templates/userManagment/index.html:13 +msgid "User Functions" +msgstr "ユーザ機能" + +#: baseTemplate/templates/baseTemplate/homePage.html:178 +#: baseTemplate/templates/baseTemplate/homePage.html:392 +#: baseTemplate/templates/baseTemplate/index.html:426 +#: baseTemplate/templates/baseTemplate/index.html:427 +#: baseTemplate/templates/baseTemplate/index.html:428 +msgid "Users" +msgstr "ユーザー" + +#: baseTemplate/templates/baseTemplate/homePage.html:188 +#: baseTemplate/templates/baseTemplate/homePage.html:402 +#: websiteFunctions/templates/websiteFunctions/index.html:13 +msgid "Website Functions" +msgstr "Web サイト機能" + +#: baseTemplate/templates/baseTemplate/homePage.html:191 +#: baseTemplate/templates/baseTemplate/homePage.html:405 +#: baseTemplate/templates/baseTemplate/index.html:360 +#: baseTemplate/templates/baseTemplate/index.html:444 +#: baseTemplate/templates/baseTemplate/index.html:445 +#: baseTemplate/templates/baseTemplate/index.html:446 +#: websiteFunctions/templates/websiteFunctions/listWebsites.html:21 +msgid "Websites" +msgstr "Web サイト" + +#: baseTemplate/templates/baseTemplate/homePage.html:201 +msgid "Add/Modify Packages" +msgstr "パッケージの追加/変更" + +#: baseTemplate/templates/baseTemplate/homePage.html:204 +#: baseTemplate/templates/baseTemplate/index.html:366 +#: baseTemplate/templates/baseTemplate/index.html:461 +#: baseTemplate/templates/baseTemplate/index.html:463 +#: packages/templates/packages/index.html:13 +msgid "Packages" +msgstr "パッケージ" + +#: baseTemplate/templates/baseTemplate/homePage.html:225 +#: baseTemplate/templates/baseTemplate/homePage.html:415 +#: databases/templates/databases/index.html:12 +msgid "Database Functions" +msgstr "データベース機能" + +#: baseTemplate/templates/baseTemplate/homePage.html:228 +#: baseTemplate/templates/baseTemplate/homePage.html:418 +#: baseTemplate/templates/baseTemplate/index.html:477 +#: baseTemplate/templates/baseTemplate/index.html:478 +#: baseTemplate/templates/baseTemplate/index.html:479 +#: packages/templates/packages/createPackage.html:67 +#: packages/templates/packages/modifyPackage.html:73 +#: websiteFunctions/templates/websiteFunctions/website.html:44 +msgid "Databases" +msgstr "データベース" + +#: baseTemplate/templates/baseTemplate/homePage.html:237 +#: baseTemplate/templates/baseTemplate/homePage.html:438 +msgid "Control DNS" +msgstr "DNS制御" + +#: baseTemplate/templates/baseTemplate/homePage.html:240 +#: baseTemplate/templates/baseTemplate/homePage.html:441 +#: baseTemplate/templates/baseTemplate/index.html:372 +#: baseTemplate/templates/baseTemplate/index.html:495 +#: baseTemplate/templates/baseTemplate/index.html:497 +msgid "DNS" +msgstr "DNS" + +#: baseTemplate/templates/baseTemplate/homePage.html:250 +#: baseTemplate/templates/baseTemplate/homePage.html:451 +#: ftp/templates/ftp/index.html:12 +msgid "FTP Functions" +msgstr "FTP 機能" + +#: baseTemplate/templates/baseTemplate/homePage.html:253 +#: baseTemplate/templates/baseTemplate/homePage.html:454 +#: baseTemplate/templates/baseTemplate/index.html:378 +#: baseTemplate/templates/baseTemplate/index.html:536 +#: baseTemplate/templates/baseTemplate/index.html:538 +#: websiteFunctions/templates/websiteFunctions/website.html:39 +msgid "FTP" +msgstr "FTP" + +#: baseTemplate/templates/baseTemplate/homePage.html:280 +#: baseTemplate/templates/baseTemplate/homePage.html:283 +#: baseTemplate/templates/baseTemplate/homePage.html:483 +#: baseTemplate/templates/baseTemplate/homePage.html:486 +#: packages/templates/packages/createPackage.html:75 +#: packages/templates/packages/modifyPackage.html:80 +msgid "Emails" +msgstr "メール" + +#: baseTemplate/templates/baseTemplate/homePage.html:293 +#: baseTemplate/templates/baseTemplate/homePage.html:296 +#: tuning/templates/tuning/index.html:12 +msgid "Server Tuning" +msgstr "サーバーのチューニング" + +#: baseTemplate/templates/baseTemplate/homePage.html:317 +#: baseTemplate/templates/baseTemplate/homePage.html:320 +#: baseTemplate/templates/baseTemplate/index.html:607 +#: baseTemplate/templates/baseTemplate/index.html:609 +#: baseTemplate/templates/baseTemplate/index.html:642 +#: serverStatus/templates/serverStatus/index.html:13 +msgid "Server Status" +msgstr "サーバーの状態" + +#: baseTemplate/templates/baseTemplate/homePage.html:330 +msgid "PHP Configurations" +msgstr "PHPの設定" + +#: baseTemplate/templates/baseTemplate/homePage.html:342 +#: baseTemplate/templates/baseTemplate/homePage.html:345 +#: baseTemplate/templates/baseTemplate/index.html:644 +#: websiteFunctions/templates/websiteFunctions/website.html:113 +msgid "Logs" +msgstr "ログ" + +#: baseTemplate/templates/baseTemplate/homePage.html:365 +#: baseTemplate/templates/baseTemplate/homePage.html:368 +#: baseTemplate/templates/baseTemplate/index.html:660 +#: baseTemplate/templates/baseTemplate/index.html:662 +msgid "Security" +msgstr "セキュリティ" + +#: baseTemplate/templates/baseTemplate/index.html:212 +msgid "CPU Status" +msgstr "CPU の状態" + +#: baseTemplate/templates/baseTemplate/index.html:241 +#: websiteFunctions/templates/websiteFunctions/website.html:51 +#: websiteFunctions/templates/websiteFunctions/website.html:72 +msgid "Disk Usage" +msgstr "ディスクの使用量" + +#: baseTemplate/templates/baseTemplate/index.html:275 +#: baseTemplate/templates/baseTemplate/index.html:278 +#: baseTemplate/templates/baseTemplate/index.html:282 +msgid "CyberPanel" +msgstr "CyberPanel" + +#: baseTemplate/templates/baseTemplate/index.html:280 +#: baseTemplate/templates/baseTemplate/index.html:284 +msgid "Web Hosting Control Panel" +msgstr "Web ホスティングコントロールパネル" + +#: baseTemplate/templates/baseTemplate/index.html:286 +msgid "Close sidebar" +msgstr "サイドバーを閉じる" + +#: baseTemplate/templates/baseTemplate/index.html:292 +msgid "My Account" +msgstr "マイ アカウント" + +#: baseTemplate/templates/baseTemplate/index.html:309 +msgid "Edit profile" +msgstr "プロフィールの編集" + +#: baseTemplate/templates/baseTemplate/index.html:310 +#: baseTemplate/templates/baseTemplate/index.html:433 +#: userManagment/templates/userManagment/index.html:26 +#: userManagment/templates/userManagment/index.html:28 +msgid "View Profile" +msgstr "プロフィールの表示" + +#: baseTemplate/templates/baseTemplate/index.html:317 +#: baseTemplate/templates/baseTemplate/index.html:398 +msgid "Logout" +msgstr "ログアウト" + +#: baseTemplate/templates/baseTemplate/index.html:328 +#: baseTemplate/templates/baseTemplate/index.html:332 +#: baseTemplate/templates/baseTemplate/index.html:336 +msgid "CPU Load Average" +msgstr "CPU 負荷平均" + +#: baseTemplate/templates/baseTemplate/index.html:340 +msgid "Fullscreen" +msgstr "フルスクリーン" + +#: baseTemplate/templates/baseTemplate/index.html:345 +msgid "System Status" +msgstr "システムの状態" + +#: baseTemplate/templates/baseTemplate/index.html:350 +msgid "Dashboard Quick Menu" +msgstr "ダッシュボードクイックメニュー" + +#: baseTemplate/templates/baseTemplate/index.html:384 +#: baseTemplate/templates/baseTemplate/index.html:591 +#: baseTemplate/templates/baseTemplate/index.html:593 +msgid "Tuning" +msgstr "チューニング" + +#: baseTemplate/templates/baseTemplate/index.html:411 +msgid "Overview" +msgstr "概要" + +#: baseTemplate/templates/baseTemplate/index.html:413 +#: baseTemplate/templates/baseTemplate/index.html:415 +#: baseTemplate/templates/baseTemplate/index.html:417 +msgid "Dashboard" +msgstr "ダッシュボード" + +#: baseTemplate/templates/baseTemplate/index.html:418 +#: baseTemplate/templates/baseTemplate/index.html:419 +#: baseTemplate/templates/baseTemplate/versionManagment.html:10 +msgid "Version Management" +msgstr "バージョン管理" + +#: baseTemplate/templates/baseTemplate/index.html:423 +msgid "Main" +msgstr "メイン" + +#: baseTemplate/templates/baseTemplate/index.html:434 +#: userManagment/templates/userManagment/createUser.html:12 +msgid "Create New User" +msgstr "新しいユーザーの作成" + +#: baseTemplate/templates/baseTemplate/index.html:435 +#: userManagment/templates/userManagment/index.html:52 +#: userManagment/templates/userManagment/index.html:54 +#: userManagment/templates/userManagment/modifyUser.html:12 +#: userManagment/templates/userManagment/modifyUser.html:119 +msgid "Modify User" +msgstr "ユーザーの変更" + +#: baseTemplate/templates/baseTemplate/index.html:436 +#: userManagment/templates/userManagment/deleteUser.html:13 +#: userManagment/templates/userManagment/deleteUser.html:20 +#: userManagment/templates/userManagment/deleteUser.html:42 +#: userManagment/templates/userManagment/index.html:74 +#: userManagment/templates/userManagment/index.html:76 +msgid "Delete User" +msgstr "ユーザーの削除" + +#: baseTemplate/templates/baseTemplate/index.html:451 +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:12 +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:102 +#: websiteFunctions/templates/websiteFunctions/index.html:26 +#: websiteFunctions/templates/websiteFunctions/index.html:28 +msgid "Create Website" +msgstr "Web サイトの作成" + +#: baseTemplate/templates/baseTemplate/index.html:452 +#: websiteFunctions/templates/websiteFunctions/index.html:38 +#: websiteFunctions/templates/websiteFunctions/index.html:40 +#: websiteFunctions/templates/websiteFunctions/listWebsites.html:14 +msgid "List Websites" +msgstr "Webサイトの一覧" + +#: baseTemplate/templates/baseTemplate/index.html:453 +#: websiteFunctions/templates/websiteFunctions/index.html:50 +#: websiteFunctions/templates/websiteFunctions/index.html:52 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:12 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:19 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:95 +msgid "Modify Website" +msgstr "Web サイトの変更" + +#: baseTemplate/templates/baseTemplate/index.html:454 +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:41 +msgid "Suspend/Unsuspend" +msgstr "休止/休止解除" + +#: baseTemplate/templates/baseTemplate/index.html:455 +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:12 +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:19 +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:42 +#: websiteFunctions/templates/websiteFunctions/index.html:84 +#: websiteFunctions/templates/websiteFunctions/index.html:86 +msgid "Delete Website" +msgstr "Web サイトの削除" + +#: baseTemplate/templates/baseTemplate/index.html:468 +#: packages/templates/packages/createPackage.html:13 +#: packages/templates/packages/createPackage.html:84 +#: packages/templates/packages/index.html:25 +#: packages/templates/packages/index.html:27 +msgid "Create Package" +msgstr "パッケージの作成" + +#: baseTemplate/templates/baseTemplate/index.html:469 +#: packages/templates/packages/deletePackage.html:12 +#: packages/templates/packages/deletePackage.html:18 +#: packages/templates/packages/deletePackage.html:40 +#: packages/templates/packages/index.html:37 +#: packages/templates/packages/index.html:39 +msgid "Delete Package" +msgstr "パッケージの削除" + +#: baseTemplate/templates/baseTemplate/index.html:470 +#: packages/templates/packages/index.html:49 +#: packages/templates/packages/index.html:51 +#: packages/templates/packages/modifyPackage.html:9 +#: packages/templates/packages/modifyPackage.html:15 +#: packages/templates/packages/modifyPackage.html:95 +msgid "Modify Package" +msgstr "パッケージの変更" + +#: baseTemplate/templates/baseTemplate/index.html:484 +#: databases/templates/databases/createDatabase.html:12 +#: databases/templates/databases/createDatabase.html:19 +#: databases/templates/databases/createDatabase.html:68 +#: databases/templates/databases/index.html:25 +#: databases/templates/databases/index.html:27 +#: manageSSL/templates/manageSSL/index.html:26 +msgid "Create Database" +msgstr "データベースの作成" + +#: baseTemplate/templates/baseTemplate/index.html:485 +#: databases/templates/databases/deleteDatabase.html:12 +#: databases/templates/databases/deleteDatabase.html:19 +#: databases/templates/databases/deleteDatabase.html:53 +#: databases/templates/databases/index.html:37 +#: databases/templates/databases/index.html:39 +#: manageSSL/templates/manageSSL/index.html:38 +msgid "Delete Database" +msgstr "データベースの削除" + +#: baseTemplate/templates/baseTemplate/index.html:486 +#: databases/templates/databases/index.html:53 +#: databases/templates/databases/index.html:55 +#: databases/templates/databases/listDataBases.html:13 +#: databases/templates/databases/listDataBases.html:19 +msgid "List Databases" +msgstr "データベースの一覧" + +#: baseTemplate/templates/baseTemplate/index.html:487 +#: databases/templates/databases/index.html:65 +#: databases/templates/databases/index.html:67 +msgid "PHPMYAdmin" +msgstr "PHPMYAdmin" + +#: baseTemplate/templates/baseTemplate/index.html:502 +#: dns/templates/dns/createNameServer.html:12 +#: dns/templates/dns/createNameServer.html:76 dns/templates/dns/index.html:72 +#: dns/templates/dns/index.html:74 +msgid "Create Nameserver" +msgstr "ネームサーバーの作成" + +#: baseTemplate/templates/baseTemplate/index.html:503 +#: dns/templates/dns/createDNSZone.html:12 +#: dns/templates/dns/createDNSZone.html:40 dns/templates/dns/index.html:29 +#: dns/templates/dns/index.html:31 dns/templates/dns/index.html:84 +#: dns/templates/dns/index.html:86 +msgid "Create DNS Zone" +msgstr "DNSゾーンの作成" + +#: baseTemplate/templates/baseTemplate/index.html:504 +#: dns/templates/dns/deleteDNSZone.html:40 dns/templates/dns/index.html:41 +#: dns/templates/dns/index.html:43 dns/templates/dns/index.html:96 +#: dns/templates/dns/index.html:98 +msgid "Delete Zone" +msgstr "ゾーンの削除" + +#: baseTemplate/templates/baseTemplate/index.html:505 +msgid "Add/Delete Records" +msgstr "レコードの追加/削除" + +#: baseTemplate/templates/baseTemplate/index.html:521 +#: mailServer/templates/mailServer/createEmailAccount.html:12 +#: mailServer/templates/mailServer/createEmailAccount.html:19 +msgid "Create Email Account" +msgstr "メールアカウントの作成" + +#: baseTemplate/templates/baseTemplate/index.html:521 +#: mailServer/templates/mailServer/createEmailAccount.html:64 +#: mailServer/templates/mailServer/index.html:25 +#: mailServer/templates/mailServer/index.html:27 +msgid "Create Email" +msgstr "メールの作成" + +#: baseTemplate/templates/baseTemplate/index.html:522 +#: mailServer/templates/mailServer/deleteEmailAccount.html:12 +#: mailServer/templates/mailServer/deleteEmailAccount.html:19 +msgid "Delete Email Account" +msgstr "メールアカウントの削除" + +#: baseTemplate/templates/baseTemplate/index.html:522 +#: mailServer/templates/mailServer/deleteEmailAccount.html:56 +#: mailServer/templates/mailServer/index.html:37 +#: mailServer/templates/mailServer/index.html:39 +msgid "Delete Email" +msgstr "メールの削除" + +#: baseTemplate/templates/baseTemplate/index.html:523 +#: databases/templates/databases/listDataBases.html:73 +#: ftp/templates/ftp/listFTPAccounts.html:73 +#: mailServer/templates/mailServer/changeEmailPassword.html:64 +#: mailServer/templates/mailServer/index.html:49 +#: mailServer/templates/mailServer/index.html:51 +msgid "Change Password" +msgstr "パスワードの変更" + +#: baseTemplate/templates/baseTemplate/index.html:524 +msgid "Access Webmail" +msgstr "Webメール アクセス" + +#: baseTemplate/templates/baseTemplate/index.html:543 +#: ftp/templates/ftp/createFTPAccount.html:12 +#: ftp/templates/ftp/createFTPAccount.html:19 ftp/templates/ftp/index.html:25 +#: ftp/templates/ftp/index.html:27 +#: websiteFunctions/templates/websiteFunctions/website.html:710 +#: websiteFunctions/templates/websiteFunctions/website.html:712 +msgid "Create FTP Account" +msgstr "FTP アカウントの作成" + +#: baseTemplate/templates/baseTemplate/index.html:544 +#: ftp/templates/ftp/deleteFTPAccount.html:12 +#: ftp/templates/ftp/deleteFTPAccount.html:18 +#: ftp/templates/ftp/deleteFTPAccount.html:52 ftp/templates/ftp/index.html:37 +#: ftp/templates/ftp/index.html:39 +#: websiteFunctions/templates/websiteFunctions/website.html:722 +#: websiteFunctions/templates/websiteFunctions/website.html:724 +msgid "Delete FTP Account" +msgstr "FTP アカウントの削除" + +#: baseTemplate/templates/baseTemplate/index.html:545 +#: ftp/templates/ftp/index.html:49 ftp/templates/ftp/index.html:51 +#: ftp/templates/ftp/listFTPAccounts.html:13 +#: ftp/templates/ftp/listFTPAccounts.html:19 +msgid "List FTP Accounts" +msgstr "FTP アカウントの一覧" + +#: baseTemplate/templates/baseTemplate/index.html:563 +msgid "Add/Delete Destination" +msgstr "バックアップ先の追加/削除" + +#: baseTemplate/templates/baseTemplate/index.html:565 +#, fuzzy +#| msgid "Remote Backups" +msgid "Remote Back ups" +msgstr "リモートバックアップ" + +#: baseTemplate/templates/baseTemplate/index.html:574 +#: baseTemplate/templates/baseTemplate/index.html:575 +msgid "SSL" +msgstr "SSL" + +#: baseTemplate/templates/baseTemplate/index.html:580 +#: manageSSL/templates/manageSSL/index.html:28 +#: manageSSL/templates/manageSSL/manageSSL.html:13 +#: manageSSL/templates/manageSSL/manageSSL.html:20 +msgid "Manage SSL" +msgstr "SSL の管理" + +#: baseTemplate/templates/baseTemplate/index.html:581 +#: manageSSL/templates/manageSSL/index.html:40 +msgid "Hostname SSL" +msgstr "ホスト名 SSL" + +#: baseTemplate/templates/baseTemplate/index.html:589 +msgid "Server" +msgstr "サーバー" + +#: baseTemplate/templates/baseTemplate/index.html:594 +msgid "NEW" +msgstr "新規" + +#: baseTemplate/templates/baseTemplate/index.html:599 +#: tuning/templates/tuning/index.html:24 tuning/templates/tuning/index.html:26 +#: tuning/templates/tuning/liteSpeedTuning.html:12 +msgid "LiteSpeed Tuning" +msgstr "LiteSpeed チューニング" + +#: baseTemplate/templates/baseTemplate/index.html:600 +#: tuning/templates/tuning/index.html:36 tuning/templates/tuning/index.html:38 +#: tuning/templates/tuning/phpTuning.html:13 +msgid "PHP Tuning" +msgstr "PHP チューニング" + +#: baseTemplate/templates/baseTemplate/index.html:615 +#: serverStatus/templates/serverStatus/index.html:25 +#: serverStatus/templates/serverStatus/index.html:27 +msgid "LiteSpeed Status" +msgstr "LiteSpeed の状態" + +#: baseTemplate/templates/baseTemplate/index.html:616 +#: serverStatus/templates/serverStatus/cybercpmainlogfile.html:15 +#: serverStatus/templates/serverStatus/index.html:37 +#: serverStatus/templates/serverStatus/index.html:39 +msgid "CyberPanel Main Log File" +msgstr "Cyber​​Panel メインログファイル" + +#: baseTemplate/templates/baseTemplate/index.html:633 +#: managePHP/templates/managePHP/installExtensions.html:13 +msgid "Install PHP Extensions" +msgstr "PHP拡張機能のインストール" + +#: baseTemplate/templates/baseTemplate/index.html:633 +#: managePHP/templates/managePHP/index.html:24 +#: managePHP/templates/managePHP/index.html:26 +msgid "Install Extensions" +msgstr "拡張機能のインストール" + +#: baseTemplate/templates/baseTemplate/index.html:634 +#: managePHP/templates/managePHP/index.html:36 +#: managePHP/templates/managePHP/index.html:38 +msgid "Edit PHP Configs" +msgstr "PHP 設定の編集" + +#: baseTemplate/templates/baseTemplate/index.html:649 +msgid "Access Log" +msgstr "アクセスログ" + +#: baseTemplate/templates/baseTemplate/index.html:650 +#: serverLogs/templates/serverLogs/errorLogs.html:14 +#: serverLogs/templates/serverLogs/index.html:37 +#: serverLogs/templates/serverLogs/index.html:39 +#: websiteFunctions/templates/websiteFunctions/website.html:133 +msgid "Error Logs" +msgstr "エラーログ" + +#: baseTemplate/templates/baseTemplate/index.html:651 +#: serverLogs/templates/serverLogs/emailLogs.html:14 +#: serverLogs/templates/serverLogs/index.html:49 +#: serverLogs/templates/serverLogs/index.html:51 +msgid "Email Logs" +msgstr "メールログ" + +#: baseTemplate/templates/baseTemplate/index.html:651 +msgid "Email Log" +msgstr "メールログ" + +#: baseTemplate/templates/baseTemplate/index.html:652 +#: serverLogs/templates/serverLogs/ftplogs.html:14 +#: serverLogs/templates/serverLogs/index.html:61 +#: serverLogs/templates/serverLogs/index.html:63 +msgid "FTP Logs" +msgstr "FTP ログ" + +#: baseTemplate/templates/baseTemplate/index.html:667 +msgid "Firewall Home" +msgstr "ファイアウォールホーム" + +#: baseTemplate/templates/baseTemplate/index.html:667 +#: firewall/templates/firewall/index.html:25 +#: firewall/templates/firewall/index.html:27 +msgid "Firewall" +msgstr "ファイアウォール" + +#: baseTemplate/templates/baseTemplate/index.html:668 +#: firewall/templates/firewall/index.html:36 +#: firewall/templates/firewall/index.html:38 +#: firewall/templates/firewall/secureSSH.html:13 +#: firewall/templates/firewall/secureSSH.html:20 +msgid "Secure SSH" +msgstr "SSH のセキュリティ" + +#: baseTemplate/templates/baseTemplate/versionManagment.html:3 +msgid "Version Management - CyberPanel" +msgstr "バージョン管理 - Cyber​​Panel" + +#: baseTemplate/templates/baseTemplate/versionManagment.html:11 +msgid "" +"On this page you can manage versions and or upgrade to latest version of " +"CyberPanel" +msgstr "" +"このページでは、バージョン管理や CyberPanel の最新バージョンへのアップグレー" +"ドが可能です" + +#: baseTemplate/templates/baseTemplate/versionManagment.html:25 +msgid "Current Version" +msgstr "現在のバージョン" + +#: baseTemplate/templates/baseTemplate/versionManagment.html:33 +msgid "Build" +msgstr "ビルド" + +#: baseTemplate/templates/baseTemplate/versionManagment.html:42 +msgid "Latest Version" +msgstr "最新バージョン" + +#: baseTemplate/templates/baseTemplate/versionManagment.html:50 +msgid "Latest Build" +msgstr "最新のビルド" + +#: baseTemplate/templates/baseTemplate/versionManagment.html:66 +#: firewall/templates/firewall/secureSSH.html:78 +#: managePHP/templates/managePHP/editPHPConfig.html:140 +msgid "Error message: " +msgstr "エラーメッセージ: " + +#: baseTemplate/templates/baseTemplate/versionManagment.html:70 +msgid "Update started..." +msgstr "更新を開始..." + +#: baseTemplate/templates/baseTemplate/versionManagment.html:74 +msgid "Update finished..." +msgstr "更新を終了..." + +#: baseTemplate/templates/baseTemplate/versionManagment.html:79 +#: firewall/templates/firewall/secureSSH.html:87 +#: firewall/templates/firewall/secureSSH.html:172 +#: managePHP/templates/managePHP/editPHPConfig.html:149 +#: managePHP/templates/managePHP/editPHPConfig.html:221 +#: managePHP/templates/managePHP/installExtensions.html:113 +msgid "Could not connect. Please refresh this page." +msgstr "接続できませんでした。このページを更新してください。" + +#: databases/templates/databases/createDatabase.html:3 +msgid "Create New Database - CyberPanel" +msgstr "新しいデータベースの作成 - Cyber​​Panel" + +#: databases/templates/databases/createDatabase.html:13 +msgid "Create a new database on this page." +msgstr "このページで新しいデータベースを作成します。" + +#: databases/templates/databases/createDatabase.html:42 +#: databases/templates/databases/listDataBases.html:88 +msgid "Database Name" +msgstr "データベース名" + +#: databases/templates/databases/createDatabase.html:50 +#: firewall/templates/firewall/secureSSH.html:120 +#: ftp/templates/ftp/createFTPAccount.html:43 +#: ftp/templates/ftp/listFTPAccounts.html:88 +#: mailServer/templates/mailServer/createEmailAccount.html:43 +msgid "User Name" +msgstr "ユーザー名" + +#: databases/templates/databases/createDatabase.html:79 +msgid "Cannot create database. Error message:" +msgstr "データベースを作成できません。エラーメッセージ:" + +#: databases/templates/databases/createDatabase.html:83 +msgid "Database created successfully." +msgstr "データベースが作成されました。" + +#: databases/templates/databases/deleteDatabase.html:3 +msgid "Delete Database - CyberPanel" +msgstr "データベースの削除 - Cyber​​Panel" + +#: databases/templates/databases/deleteDatabase.html:13 +msgid "Delete an existing database on this page." +msgstr "このページで既存のデータベースを削除します。" + +#: databases/templates/databases/deleteDatabase.html:40 +msgid "Select Database" +msgstr "データベースの選択" + +#: databases/templates/databases/deleteDatabase.html:68 +msgid "Database deleted successfully." +msgstr "データベースが削除されました。" + +#: databases/templates/databases/index.html:3 +msgid "Database Functions - CyberPanel" +msgstr "データベース機能 - Cyber​​Panel" + +#: databases/templates/databases/index.html:13 +msgid "Create, edit and delete databases on this page." +msgstr "このページでデータベースの作成、編集、削除を行います。" + +#: databases/templates/databases/listDataBases.html:3 +msgid "List Databases - CyberPanel" +msgstr "データベースの一覧 - Cyber​​Panel" + +#: databases/templates/databases/listDataBases.html:14 +msgid "List Databases or change their passwords." +msgstr "データベースを一覧表示するか、パスワードを変更します。" + +#: databases/templates/databases/listDataBases.html:28 +#: dns/templates/dns/addDeleteDNSRecords.html:28 +#: ftp/templates/ftp/deleteFTPAccount.html:27 +#: ftp/templates/ftp/listFTPAccounts.html:28 +msgid "Select Domain" +msgstr "ドメインタイプの選択" + +#: databases/templates/databases/listDataBases.html:46 +#: dns/templates/dns/addDeleteDNSRecords.html:168 +#: ftp/templates/ftp/listFTPAccounts.html:46 +msgid "Records successfully fetched for" +msgstr "レコードが取得されました" + +#: databases/templates/databases/listDataBases.html:50 +msgid "Password changed for: " +msgstr "パスワードを変更: " + +#: databases/templates/databases/listDataBases.html:54 +msgid "Cannot change password for " +msgstr "パスワードを変更できません " + +#: databases/templates/databases/listDataBases.html:59 +#: firewall/templates/firewall/firewall.html:176 +#: ftp/templates/ftp/listFTPAccounts.html:59 +msgid "Could Not Connect to server. Please refresh this page" +msgstr "サーバーに接続できませんでした。 このページを更新してください" + +#: databases/templates/databases/listDataBases.html:89 +msgid "Database User" +msgstr "データベースのユーザー" + +#: databases/templates/databases/listDataBases.html:98 +#: ftp/templates/ftp/listFTPAccounts.html:100 +msgid "Change" +msgstr "変更" + +#: dns/templates/dns/addDeleteDNSRecords.html:3 +msgid "Add/Modify DNS Records - CyberPanel" +msgstr "追加/変更 DNS レコード - CyberPanel" + +#: dns/templates/dns/addDeleteDNSRecords.html:13 +msgid "Add/Modify DNS Zone" +msgstr "DNS ゾーンの追加/変更" + +#: dns/templates/dns/addDeleteDNSRecords.html:14 +msgid "" +"On this page you can add/modify dns records for domains whose dns zone is " +"already created." +msgstr "" +"このページでは、DNS ゾーンがすでに作成されているドメインの DNS レコードを追" +"加/変更できます。" + +#: dns/templates/dns/addDeleteDNSRecords.html:19 +msgid "Add Records" +msgstr "レコードを追加" + +#: dns/templates/dns/addDeleteDNSRecords.html:53 +#: dns/templates/dns/addDeleteDNSRecords.html:131 +#: firewall/templates/firewall/firewall.html:136 +#: serverStatus/templates/serverStatus/litespeedStatus.html:40 +msgid "Name" +msgstr "名称" + +#: dns/templates/dns/addDeleteDNSRecords.html:69 +msgid "IPV6" +msgstr "IPv6" + +#: dns/templates/dns/addDeleteDNSRecords.html:78 +#: dns/templates/dns/addDeleteDNSRecords.html:133 +msgid "Priority" +msgstr "優先度" + +#: dns/templates/dns/addDeleteDNSRecords.html:87 +#: dns/templates/dns/createDNSZone.html:27 +#: dns/templates/dns/createNameServer.html:27 +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:52 +#: websiteFunctions/templates/websiteFunctions/website.html:290 +msgid "Domain Name" +msgstr "ドメイン名" + +#: dns/templates/dns/addDeleteDNSRecords.html:95 +msgid "Policy" +msgstr "ポリシ" + +#: dns/templates/dns/addDeleteDNSRecords.html:103 +msgid "Text" +msgstr "テキスト" + +#: dns/templates/dns/addDeleteDNSRecords.html:111 +#: firewall/templates/firewall/firewall.html:117 +msgid "Add" +msgstr "追加" + +#: dns/templates/dns/addDeleteDNSRecords.html:130 +msgid "Type" +msgstr "種別" + +#: dns/templates/dns/addDeleteDNSRecords.html:132 +msgid "Value" +msgstr "値" + +#: dns/templates/dns/addDeleteDNSRecords.html:160 +msgid "Cannot fetch records. Error message:" +msgstr "レコードを取得できません。エラー メッセージ:" + +#: dns/templates/dns/addDeleteDNSRecords.html:164 +msgid "Cannot add record. Error message: " +msgstr "レコードを追加できません。エラーメッセージ: " + +#: dns/templates/dns/addDeleteDNSRecords.html:172 +msgid "Record Successfully Deleted" +msgstr "レコードが削除されました" + +#: dns/templates/dns/addDeleteDNSRecords.html:176 +msgid "Cannot delete record. Error message:" +msgstr "レコードを削除できません。エラーメッセージ:" + +#: dns/templates/dns/addDeleteDNSRecords.html:180 +msgid "Record Successfully Added." +msgstr "レコードが追加されました。" + +#: dns/templates/dns/createDNSZone.html:3 +msgid "Create DNS Zone - CyberPanel" +msgstr "DNSゾーンの作成 - Cyber​​Panel" + +#: dns/templates/dns/createDNSZone.html:13 +msgid "" +"This page is used to create DNS zone, to edit dns zone you can visit Modify " +"DNS Zone Page." +msgstr "" +"このページは、DNS ゾーンを作成に使用します。DNS ゾーンを編集するには DNS ゾー" +"ン変更ページを参照してください。" + +#: dns/templates/dns/createDNSZone.html:18 +#: dns/templates/dns/createNameServer.html:18 +#: userManagment/templates/userManagment/modifyUser.html:19 +msgid "Details" +msgstr "詳細" + +#: dns/templates/dns/createDNSZone.html:51 +msgid "Cannot create DNS Zone. Error message:" +msgstr "DNS ゾーンを作成できません。エラーメッセージ:" + +#: dns/templates/dns/createDNSZone.html:55 +msgid "DNS Zone for domain:" +msgstr "ドメインの DNS ゾーン:" + +#: dns/templates/dns/createNameServer.html:3 +msgid "Create Nameserver - CyberPanel" +msgstr "ネームサーバーの作成 - Cyber​​Panel" + +#: dns/templates/dns/createNameServer.html:13 +msgid "" +"You can use this page to setup nameservers using which people on the " +"internet can resolve websites hosted on this server." +msgstr "" +"このページを使用して、インターネット上の人々がこのサーバーでホストされている" +"Webサイトを解決できるネームサーバーを設定できます。" + +#: dns/templates/dns/createNameServer.html:39 +msgid "First Nameserver" +msgstr "ファーストネームサーバー" + +#: dns/templates/dns/createNameServer.html:55 +msgid "Second Nameserver (Back up)" +msgstr "セカンドネームサーバー(バックアップ)" + +#: dns/templates/dns/createNameServer.html:87 +msgid "Nameserver cannot be created. Error message:" +msgstr "ネームサーバーを作成できません。エラー メッセージ:" + +#: dns/templates/dns/createNameServer.html:91 +msgid "The following nameservers were successfully created:" +msgstr "次のネームサーバーが作成されました:" + +#: dns/templates/dns/deleteDNSZone.html:3 +msgid "Delete DNS Zone - CyberPanel" +msgstr "DNSゾーンの削除 - Cyber​​Panel" + +#: dns/templates/dns/deleteDNSZone.html:12 +#: dns/templates/dns/deleteDNSZone.html:18 +msgid "Delete DNS Zone" +msgstr "DNSゾーンの削除" + +#: dns/templates/dns/deleteDNSZone.html:13 +msgid "" +"This page can be used to delete DNS Zone. Deleting the DNS zone will remove " +"all its related records as well." +msgstr "" +"このページを使用して DNS ゾーンを削除できます。DNS ゾーンを削除すると、関連す" +"るすべてのレコードも削除されます。" + +#: dns/templates/dns/deleteDNSZone.html:27 +msgid "Select Zone" +msgstr "ゾーンを選択" + +#: dns/templates/dns/deleteDNSZone.html:49 +#: ftp/templates/ftp/deleteFTPAccount.html:61 +#: mailServer/templates/mailServer/deleteEmailAccount.html:64 +#: packages/templates/packages/deletePackage.html:49 +#: userManagment/templates/userManagment/deleteUser.html:51 +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:51 +msgid "Are you sure?" +msgstr "よろしいですか?" + +#: dns/templates/dns/deleteDNSZone.html:59 +msgid "Cannot delete zone. Error message: " +msgstr "ゾーンを削除できません。エラーメッセージ: " + +#: dns/templates/dns/deleteDNSZone.html:63 +msgid "Zone for domain:" +msgstr "ドメインの DNS ゾーン:" + +#: dns/templates/dns/deleteDNSZone.html:63 +msgid "is successfully erased." +msgstr "消去されました。" + +#: dns/templates/dns/index.html:3 +msgid "DNS Functions - CyberPanel" +msgstr "DNS 機能 - Cyber​​Panel" + +#: dns/templates/dns/index.html:12 +msgid "DNS Functions" +msgstr "DNS 機能" + +#: dns/templates/dns/index.html:13 +msgid "Create, edit and delete DNS zones on this page." +msgstr "このページでDNSゾーンを作成、編集、削除を行います。" + +#: dns/templates/dns/index.html:53 dns/templates/dns/index.html:108 +msgid "Add Delete Records" +msgstr "削除レコードを追加" + +#: dns/templates/dns/index.html:55 dns/templates/dns/index.html:110 +msgid "Add Delete/Records" +msgstr "削除/レコードを追加" + +#: firewall/templates/firewall/firewall.html:3 +msgid "Firewall - CyberPanel" +msgstr "ファイアウォール - Cyber​​Panel" + +#: firewall/templates/firewall/firewall.html:13 +msgid "Add/Delete Firewall Rules" +msgstr "ファイアウォール ルールの追加/削除" + +#: firewall/templates/firewall/firewall.html:14 +msgid "" +"On this page you can add/delete firewall rules. (By default all ports are " +"blocked, except mentioned below)" +msgstr "" +"このページでは、ファイアウォールルールを追加/削除できます。 (デフォルトで" +"は、以下で述べる以外はすべてのポートがブロックされます)" + +#: firewall/templates/firewall/firewall.html:19 +msgid "Add/Delete Rules" +msgstr "ルールの追加/削除" + +#: firewall/templates/firewall/firewall.html:45 +msgid "Start" +msgstr "起動" + +#: firewall/templates/firewall/firewall.html:51 +msgid "Stop" +msgstr "停止" + +#: firewall/templates/firewall/firewall.html:58 +msgid "Reload" +msgstr "再読み込み" + +#: firewall/templates/firewall/firewall.html:63 +msgid "Action failed. Error message:" +msgstr "操作が失敗しました。エラーメッセージ:" + +#: firewall/templates/firewall/firewall.html:67 +#: serverStatus/templates/serverStatus/litespeedStatus.html:85 +msgid "Action successful." +msgstr "操作は終了しました。" + +#: firewall/templates/firewall/firewall.html:137 +msgid "Protocol" +msgstr "プロトコル" + +#: firewall/templates/firewall/firewall.html:139 +msgid "Port" +msgstr "ポート" + +#: firewall/templates/firewall/firewall.html:172 +msgid "Rule successfully added." +msgstr "ルールが追加されました。" + +#: firewall/templates/firewall/index.html:3 +msgid "Security - CyberPanel" +msgstr "セキュリティ - Cyber​​Panel" + +#: firewall/templates/firewall/index.html:12 +msgid "Security Functions" +msgstr "セキュリティ機能" + +#: firewall/templates/firewall/index.html:13 +msgid "Manage the security of the server on this page." +msgstr "このページでサーバーセキュリティを管理します。" + +#: firewall/templates/firewall/secureSSH.html:3 +msgid "Secure SSH - CyberPanel" +msgstr "SSH のセキュリティ - Cyber​​Panel" + +#: firewall/templates/firewall/secureSSH.html:14 +msgid "Secure or harden SSH Configurations." +msgstr "SSHの設定をより安全にするか強化します。" + +#: firewall/templates/firewall/secureSSH.html:28 +#: managePHP/templates/managePHP/editPHPConfig.html:29 +msgid "Basic" +msgstr "基本" + +#: firewall/templates/firewall/secureSSH.html:34 +msgid "SSH Keys" +msgstr "SSH キー" + +#: firewall/templates/firewall/secureSSH.html:47 +msgid "SSH Port" +msgstr "SSH ポート" + +#: firewall/templates/firewall/secureSSH.html:56 +msgid "Permit Root Login" +msgstr "Root ログインを許可する" + +#: firewall/templates/firewall/secureSSH.html:60 +msgid "" +"Before disabling root login, make sure you have another account with sudo " +"priviliges on server." +msgstr "" +"root ログインを無効にする前に、サーバーに sudo 権限を持つ別のアカウントがある" +"ことを確認してください。" + +#: firewall/templates/firewall/secureSSH.html:68 +#: managePHP/templates/managePHP/editPHPConfig.html:130 +#: managePHP/templates/managePHP/editPHPConfig.html:203 +msgid "Save Changes" +msgstr "変更を保存" + +#: firewall/templates/firewall/secureSSH.html:82 +msgid "SSH Configurations Saved." +msgstr "SSH の設定が保存されました。" + +#: firewall/templates/firewall/secureSSH.html:121 +msgid "Key" +msgstr "キー" + +#: firewall/templates/firewall/secureSSH.html:150 +msgid "Add Key" +msgstr "キーを追加" + +#: firewall/templates/firewall/secureSSH.html:158 +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:55 +#: websiteFunctions/templates/websiteFunctions/website.html:554 +#: websiteFunctions/templates/websiteFunctions/website.html:614 +msgid "Save" +msgstr "保存" + +#: firewall/templates/firewall/secureSSH.html:167 +msgid "SSH Key Deleted" +msgstr "SSH キーが削除されました" + +#: ftp/templates/ftp/createFTPAccount.html:3 +msgid "Create FTP Account - CyberPanel" +msgstr "FTP アカウントの作成 - Cyber​​Panel" + +#: ftp/templates/ftp/createFTPAccount.html:13 +msgid "" +"Select the website from list, and its home directory will be set as the path " +"to ftp account." +msgstr "" +"一覧から Web サイトを選択すると、そのホームディレクトリがftpアカウントへのパ" +"スとして設定されます。" + +#: ftp/templates/ftp/createFTPAccount.html:52 +msgid "FTP Password" +msgstr "FTP のパスワード" + +#: ftp/templates/ftp/createFTPAccount.html:59 +msgid "Path (Relative)" +msgstr "パス (相対値)" + +#: ftp/templates/ftp/createFTPAccount.html:61 +msgid "Leave empty to select default home directory." +msgstr "デフォルトのホームディレクトリを選択するには、空のままにします。" + +#: ftp/templates/ftp/createFTPAccount.html:72 +msgid "Create FTP" +msgstr "FTPアカウント の作成" + +#: ftp/templates/ftp/createFTPAccount.html:80 +msgid "Cannot create FTP account. Error message:" +msgstr "FTP アカウントを作成できません。エラーメッセージ:" + +#: ftp/templates/ftp/createFTPAccount.html:84 +#: ftp/templates/ftp/createFTPAccount.html:87 +#: ftp/templates/ftp/deleteFTPAccount.html:75 +msgid "FTP Account with username:" +msgstr "ユーザー名を持つ FTP アカウント:" + +#: ftp/templates/ftp/createFTPAccount.html:84 +#: ftp/templates/ftp/createFTPAccount.html:87 +#: userManagment/templates/userManagment/createUser.html:154 +msgid "is successfully created." +msgstr "作成されました。" + +#: ftp/templates/ftp/deleteFTPAccount.html:3 +msgid "Delete FTP Account - CyberPanel" +msgstr "FTP アカウントの削除 - Cyber​​Panel" + +#: ftp/templates/ftp/deleteFTPAccount.html:13 +msgid "Select domain and delete its related FTP accounts." +msgstr "ドメインを選択し、関連の FTP アカウントを削除します。" + +#: ftp/templates/ftp/deleteFTPAccount.html:40 +msgid "Select FTP Account" +msgstr "FTP アカウントを選択" + +#: ftp/templates/ftp/deleteFTPAccount.html:71 +msgid "Cannot delete account. Error message:" +msgstr "アカウントを削除できません。エラーメッセージ:" + +#: ftp/templates/ftp/deleteFTPAccount.html:75 +msgid " is successfully deleted." +msgstr " 削除されました。" + +#: ftp/templates/ftp/deleteFTPAccount.html:79 +#: userManagment/templates/userManagment/deleteUser.html:70 +msgid "Could not connect to the server. Please refresh this page." +msgstr "サーバーに接続できませんでした。 このページを更新してください。" + +#: ftp/templates/ftp/index.html:3 +msgid "FTP Functions - CyberPanel" +msgstr "FTP 機能 - Cyber​​Panel" + +#: ftp/templates/ftp/index.html:13 +msgid "Delete and create FTP accounts on this page." +msgstr "このページで FTP アカウントを削除して作成します。" + +#: ftp/templates/ftp/listFTPAccounts.html:3 +msgid "List FTP Accounts - CyberPanel" +msgstr "FTP アカウントの一覧 - CyberPanel" + +#: ftp/templates/ftp/listFTPAccounts.html:14 +msgid "List FTP Accounts or change their passwords." +msgstr "FTP アカウントを一覧表示するか、パスワードを変更します。" + +#: ftp/templates/ftp/listFTPAccounts.html:50 +msgid "Password changed for" +msgstr "パスワードが変更されました" + +#: ftp/templates/ftp/listFTPAccounts.html:54 +msgid "" +"Cannot change password for {$ ftpUsername $}. Error message:" +msgstr "" +"{$ ftpUsername $}のパスワードを変更できません。エラーメッ" +"セージ:" + +#: ftp/templates/ftp/listFTPAccounts.html:89 +msgid "Directory" +msgstr "ディレクトリ" + +#: mailServer/templates/mailServer/changeEmailPassword.html:3 +msgid "Change Email Password - CyberPanel" +msgstr "メール パスワードの変更 - CyberPanel" + +#: mailServer/templates/mailServer/changeEmailPassword.html:12 +#: mailServer/templates/mailServer/changeEmailPassword.html:19 +msgid "Change Email Password" +msgstr "メール パスワードの変更" + +#: mailServer/templates/mailServer/changeEmailPassword.html:13 +msgid "Select a website from the list, to change its password." +msgstr "リストボックスから Web サイトを選択し、パスワードを変更します。" + +#: mailServer/templates/mailServer/changeEmailPassword.html:42 +#: mailServer/templates/mailServer/deleteEmailAccount.html:42 +msgid "Select Email" +msgstr "メールを選択" + +#: mailServer/templates/mailServer/changeEmailPassword.html:73 +#: mailServer/templates/mailServer/deleteEmailAccount.html:72 +msgid "Cannot delete email account. Error message:" +msgstr "電子メールアカウントを削除できません。エラーメッセージ:" + +#: mailServer/templates/mailServer/changeEmailPassword.html:77 +msgid "Password successfully changed for :" +msgstr "パスワードが変更されました:" + +#: mailServer/templates/mailServer/changeEmailPassword.html:84 +#: mailServer/templates/mailServer/deleteEmailAccount.html:83 +msgid "Currently no email accounts exist for this domain." +msgstr "現在、このドメインにはメールアカウントはありません。" + +#: mailServer/templates/mailServer/createEmailAccount.html:3 +msgid "Create Email Account - CyberPanel" +msgstr "メールアカウントの作成 - Cyber​​Panel" + +#: mailServer/templates/mailServer/createEmailAccount.html:13 +msgid "Select a website from the list, to create an email account." +msgstr "" +"メールアカウントを作成するには、リストボックスから Web サイトを選択します。" + +#: mailServer/templates/mailServer/createEmailAccount.html:72 +msgid "Cannot create email account. Error message:" +msgstr "メールアカウントを作成できません。エラーメッセージ:" + +#: mailServer/templates/mailServer/createEmailAccount.html:76 +msgid "Email with id :" +msgstr "ID 付きメール:" + +#: mailServer/templates/mailServer/createEmailAccount.html:76 +msgid " is successfully created." +msgstr " 作成されました。" + +#: mailServer/templates/mailServer/deleteEmailAccount.html:3 +msgid "Delete Email Account - CyberPanel" +msgstr "メールアカウントの削除 - Cyber​​Panel" + +#: mailServer/templates/mailServer/deleteEmailAccount.html:13 +msgid "Select a website from the list, to delete an email account." +msgstr "" +"メールアカウントを削除するには、リストボックスから Web サイトを選択します。" + +#: mailServer/templates/mailServer/deleteEmailAccount.html:76 +msgid "Email with id : {$ deletedID $} is successfully deleted." +msgstr "ID 付きメール: {$ deletedID $}は削除されました。" + +#: mailServer/templates/mailServer/index.html:3 +msgid "Mail Functions - CyberPanel" +msgstr "メール機能 - Cyber​​Panel" + +#: mailServer/templates/mailServer/index.html:12 +msgid "Mail Functions" +msgstr "メール機能" + +#: mailServer/templates/mailServer/index.html:13 +msgid "Manage email accounts on this page." +msgstr "このページでメールアカウントを管理します。" + +#: managePHP/templates/managePHP/editPHPConfig.html:3 +msgid "Edit PHP Configurations - CyberPanel" +msgstr "PHP 設定の編集 - Cyber​​Panel" + +#: managePHP/templates/managePHP/editPHPConfig.html:14 +#: managePHP/templates/managePHP/editPHPConfig.html:21 +msgid "Edit PHP Configurations" +msgstr "PHP 設定の編集" + +#: managePHP/templates/managePHP/editPHPConfig.html:15 +msgid "Edit PHP Configurations on this page." +msgstr "このページで PHP 設定を編集してください。" + +#: managePHP/templates/managePHP/editPHPConfig.html:35 +msgid "Advanced" +msgstr "高度" + +#: managePHP/templates/managePHP/editPHPConfig.html:48 +#: managePHP/templates/managePHP/editPHPConfig.html:174 +#: managePHP/templates/managePHP/installExtensions.html:28 +#: tuning/templates/tuning/phpTuning.html:28 +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:68 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:74 +#: websiteFunctions/templates/websiteFunctions/website.html:310 +msgid "Select PHP" +msgstr "PHP の選択" + +#: managePHP/templates/managePHP/editPHPConfig.html:66 +msgid "display_errors" +msgstr "display_errors" + +#: managePHP/templates/managePHP/editPHPConfig.html:73 +msgid "file_uploads" +msgstr "file_uploads" + +#: managePHP/templates/managePHP/editPHPConfig.html:81 +msgid "allow_url_fopen" +msgstr "allow_url_fopen" + +#: managePHP/templates/managePHP/editPHPConfig.html:89 +msgid "allow_url_include" +msgstr "allow_url_include" + +#: managePHP/templates/managePHP/editPHPConfig.html:97 +msgid "memory_limit" +msgstr "memory_limit" + +#: managePHP/templates/managePHP/editPHPConfig.html:104 +msgid "max_execution_time" +msgstr "max_execution_time" + +#: managePHP/templates/managePHP/editPHPConfig.html:111 +msgid "upload_max_filesize" +msgstr "upload_max_filesize" + +#: managePHP/templates/managePHP/editPHPConfig.html:118 +msgid "max_input_time" +msgstr "max_input_time" + +#: managePHP/templates/managePHP/editPHPConfig.html:144 +#: managePHP/templates/managePHP/editPHPConfig.html:216 +msgid "PHP Configs Saved." +msgstr "PHP 設定が保存されました。" + +#: managePHP/templates/managePHP/index.html:3 +msgid "Manage PHP Installations - CyberPanel" +msgstr "PHPインストールの管理 - Cyber​​Panel" + +#: managePHP/templates/managePHP/index.html:12 +msgid "Manage PHP Installations" +msgstr "PHP インストール管理" + +#: managePHP/templates/managePHP/index.html:13 +msgid "Edit your PHP Configurations to suit your needs." +msgstr "必要に応じて PHP 設定を編集します。" + +#: managePHP/templates/managePHP/installExtensions.html:3 +msgid "Install PHP Extensions - CyberPanel" +msgstr "PHP 拡張機能のインストール - Cyber​​Panel" + +#: managePHP/templates/managePHP/installExtensions.html:14 +msgid "Install/uninstall php extensions on this page." +msgstr "このページでPHP拡張機能をインストール/アンインストールします。" + +#: managePHP/templates/managePHP/installExtensions.html:19 +#: tuning/templates/tuning/phpTuning.html:19 +msgid "Select PHP Version" +msgstr "PHP バージョンを選択" + +#: managePHP/templates/managePHP/installExtensions.html:48 +msgid "Search Extensions.." +msgstr "拡張機能を検索.." + +#: managePHP/templates/managePHP/installExtensions.html:63 +msgid "Extension Name" +msgstr "拡張機能名" + +#: managePHP/templates/managePHP/installExtensions.html:64 +msgid "Description" +msgstr "説明" + +#: managePHP/templates/managePHP/installExtensions.html:66 +#: managePHP/templates/managePHP/installExtensions.html:77 +msgid "Install" +msgstr "インストール" + +#: managePHP/templates/managePHP/installExtensions.html:67 +#: managePHP/templates/managePHP/installExtensions.html:78 +msgid "Uninstall" +msgstr "アンインストール" + +#: managePHP/templates/managePHP/installExtensions.html:93 +msgid "Go Back" +msgstr "前に戻る" + +#: managePHP/templates/managePHP/installExtensions.html:104 +#: tuning/templates/tuning/phpTuning.html:114 +#: userManagment/templates/userManagment/modifyUser.html:143 +msgid "Cannot fetch details. Error message:" +msgstr "詳細を取得できません。エラーメッセージ:" + +#: managePHP/templates/managePHP/installExtensions.html:108 +msgid "Cannot perform operation. Error message:" +msgstr "操作を実行できません。エラー メッセージ:" + +#: manageSSL/templates/manageSSL/index.html:3 +msgid "SSL Functions - CyberPanel" +msgstr "SSL 機能 - Cyber​​Panel" + +#: manageSSL/templates/manageSSL/index.html:13 +msgid "SSL Functions" +msgstr "SSL 機能" + +#: manageSSL/templates/manageSSL/index.html:14 +msgid "Issue Let’s Encrypt SSLs for websites and hostname." +msgstr "Web サイトとホスト名で Let’s Encrypt SSL を発行します。" + +#: manageSSL/templates/manageSSL/manageSSL.html:3 +msgid "Manage SSL - CyberPanel" +msgstr "SSL の管理 - Cyber​​Panel" + +#: manageSSL/templates/manageSSL/manageSSL.html:14 +msgid "" +"This page can be used to issue Let’s Encrypt SSL for existing websites on " +"server." +msgstr "" +"このページは、サーバー上の既存の Web サイトに対して Let’s Encrypt SSL を発行" +"するために使用できます。" + +#: manageSSL/templates/manageSSL/manageSSL.html:42 +#: manageSSL/templates/manageSSL/sslForHostName.html:42 +msgid "Issue SSL" +msgstr "SSLを発行する" + +#: manageSSL/templates/manageSSL/manageSSL.html:52 +#: manageSSL/templates/manageSSL/sslForHostName.html:52 +msgid "Cannot issue SSL. Error message:" +msgstr "SSL を発行できません。エラー メッセージ:" + +#: manageSSL/templates/manageSSL/manageSSL.html:56 +msgid "SSL Issued for" +msgstr "SSLが発行されました" + +#: manageSSL/templates/manageSSL/sslForHostName.html:3 +msgid "Issue SSL For Hostname - CyberPanel" +msgstr "ホスト名のSSLを発行 - Cyber​​Panel" + +#: manageSSL/templates/manageSSL/sslForHostName.html:13 +#: manageSSL/templates/manageSSL/sslForHostName.html:20 +msgid "Issue SSL For Hostname" +msgstr "ホスト名にSSLを発行する" + +#: manageSSL/templates/manageSSL/sslForHostName.html:14 +msgid "Let’s Encrypt SSL for hostname to access CyberPanel on verified SSL." +msgstr "" +"検証済みのSSLでCyber​​Panelにアクセスするために、ホスト名でLet’s Encrypt SSLを" +"申請する。" + +#: manageSSL/templates/manageSSL/sslForHostName.html:56 +#: manageSSL/templates/manageSSL/sslForHostName.html:60 +msgid "SSL Issued. You can now access CyberPanel at:" +msgstr "SSL が発行されました。 CyberPanel にアクセスできるようになりました:" + +#: packages/templates/packages/createPackage.html:3 +msgid "Create Package - CyberPanel" +msgstr "パッケージの作成 - Cyber​​Panel" + +#: packages/templates/packages/createPackage.html:14 +#: packages/templates/packages/deletePackage.html:13 +#: packages/templates/packages/index.html:14 +#: packages/templates/packages/modifyPackage.html:10 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:13 +msgid "" +"Packages define resources for your websites, you need to add package before " +"creating a website." +msgstr "" +"パッケージは Web サイトのリソースを定義するため、Web サイトを作成する前にパッ" +"ケージを追加する必要があります。" + +#: packages/templates/packages/createPackage.html:19 +msgid "Package Details" +msgstr "パッケージの詳細" + +#: packages/templates/packages/createPackage.html:26 +msgid "Package Name" +msgstr "パッケージ名" + +#: packages/templates/packages/createPackage.html:35 +#: packages/templates/packages/modifyPackage.html:40 +#: websiteFunctions/templates/websiteFunctions/website.html:250 +msgid "Domains" +msgstr "ドメイン" + +#: packages/templates/packages/createPackage.html:39 +#: packages/templates/packages/modifyPackage.html:44 +msgid "(0 = Unlimited)" +msgstr "( 0 = 無制限 )" + +#: packages/templates/packages/createPackage.html:43 +#: packages/templates/packages/modifyPackage.html:49 +msgid "Disk Space" +msgstr "ディスクスの容量" + +#: packages/templates/packages/createPackage.html:47 +#: packages/templates/packages/createPackage.html:55 +#: packages/templates/packages/modifyPackage.html:53 +#: packages/templates/packages/modifyPackage.html:61 +msgid "MB (0 = Unlimited)" +msgstr "MB (0 = 無制限)" + +#: packages/templates/packages/createPackage.html:51 +#: packages/templates/packages/modifyPackage.html:57 +msgid "Bandwidth" +msgstr "帯域幅" + +#: packages/templates/packages/createPackage.html:60 +#: packages/templates/packages/modifyPackage.html:66 +msgid "FTP Accounts" +msgstr "FTP アカウント" + +#: packages/templates/packages/createPackage.html:95 +msgid "Cannot create package. Error message:" +msgstr "パッケージを作成できません。エラーメッセージ:" + +#: packages/templates/packages/createPackage.html:99 +msgid "Successfully Created" +msgstr "作成されました" + +#: packages/templates/packages/deletePackage.html:3 +msgid "Delete Package - CyberPanel" +msgstr "パッケージの削除 - Cyber​​Panel" + +#: packages/templates/packages/deletePackage.html:27 +#: packages/templates/packages/modifyPackage.html:24 +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:29 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:45 +msgid "Select Package" +msgstr "パッケージの選択" + +#: packages/templates/packages/deletePackage.html:59 +msgid "Cannot delete package. Error message:" +msgstr "パッケージを削除できません。エラーメッセージ:" + +#: packages/templates/packages/deletePackage.html:63 +#: userManagment/templates/userManagment/deleteUser.html:65 +msgid " Successfully Deleted" +msgstr " 削除されました" + +#: packages/templates/packages/index.html:3 +msgid "Packages - CyberPanel" +msgstr "パッケージ - Cyber​​Panel" + +#: packages/templates/packages/modifyPackage.html:3 +msgid "Modify Package - CyberPanel" +msgstr "パッケージの変更 - Cyber​​Panel" + +#: packages/templates/packages/modifyPackage.html:104 +msgid "Cannot fetch package details. Error message:" +msgstr "パッケージの詳細を取得できません。エラー メッセージ:" + +#: packages/templates/packages/modifyPackage.html:108 +msgid "Package Details Successfully Fetched" +msgstr "パッケージの詳細が取得されました" + +#: packages/templates/packages/modifyPackage.html:112 +msgid "Successfully Modified" +msgstr "更新されました" + +#: serverLogs/templates/serverLogs/accessLogs.html:3 +msgid "Access Logs - CyberPanel" +msgstr "アクセスログ - CyberPanel" + +#: serverLogs/templates/serverLogs/accessLogs.html:17 +#: serverLogs/templates/serverLogs/index.html:25 +#: serverLogs/templates/serverLogs/index.html:27 +#: websiteFunctions/templates/websiteFunctions/website.html:121 +msgid "Access Logs" +msgstr "アクセスログ" + +#: serverLogs/templates/serverLogs/accessLogs.html:18 +msgid "Access Logs for main web server." +msgstr "メイン Web サーバーのアクセスログ。" + +#: serverLogs/templates/serverLogs/accessLogs.html:26 +#: serverLogs/templates/serverLogs/emailLogs.html:23 +#: serverLogs/templates/serverLogs/errorLogs.html:23 +#: serverLogs/templates/serverLogs/ftplogs.html:23 +#: serverStatus/templates/serverStatus/cybercpmainlogfile.html:24 +msgid "Last 50 Lines" +msgstr "最後の50行" + +#: serverLogs/templates/serverLogs/accessLogs.html:42 +#: serverLogs/templates/serverLogs/emailLogs.html:39 +#: serverLogs/templates/serverLogs/errorLogs.html:39 +#: serverLogs/templates/serverLogs/ftplogs.html:39 +#: serverStatus/templates/serverStatus/cybercpmainlogfile.html:40 +msgid "Refresh" +msgstr "更新" + +#: serverLogs/templates/serverLogs/accessLogs.html:49 +#: serverLogs/templates/serverLogs/emailLogs.html:46 +#: serverLogs/templates/serverLogs/errorLogs.html:46 +#: serverLogs/templates/serverLogs/ftplogs.html:46 +#: serverStatus/templates/serverStatus/cybercpmainlogfile.html:47 +msgid "Last 50 Lines Fetched" +msgstr "最後の50行を取得しました" + +#: serverLogs/templates/serverLogs/accessLogs.html:54 +#: serverLogs/templates/serverLogs/emailLogs.html:51 +#: serverLogs/templates/serverLogs/errorLogs.html:51 +#: serverLogs/templates/serverLogs/ftplogs.html:51 +#: serverStatus/templates/serverStatus/cybercpmainlogfile.html:52 +msgid "Could not fetch logs. Use the command line to view the log file." +msgstr "" +"ログを取得できませんでした。ログファイルを表示するには、コマンドラインを使用" +"します。" + +#: serverLogs/templates/serverLogs/emailLogs.html:3 +#: serverLogs/templates/serverLogs/errorLogs.html:3 +msgid "Error Logs - CyberPanel" +msgstr "エラーログ - Cyber​​Panel" + +#: serverLogs/templates/serverLogs/emailLogs.html:15 +msgid "Email Logs for main web server." +msgstr "メイン Web サーバーのメールログ。" + +#: serverLogs/templates/serverLogs/errorLogs.html:15 +msgid "Error Logs for main web server." +msgstr "メイン Web サーバーのエラーログ。" + +#: serverLogs/templates/serverLogs/ftplogs.html:3 +msgid "FTP Logs - CyberPanel" +msgstr "FTP ログ - Cyber​​Panel" + +#: serverLogs/templates/serverLogs/ftplogs.html:15 +msgid "FTP Logs for main web server." +msgstr "メイン Web サーバーの FTP ログ。" + +#: serverLogs/templates/serverLogs/index.html:3 +msgid "Server Logs - CyberPanel" +msgstr "サーバーログ - Cyber​​Panel" + +#: serverLogs/templates/serverLogs/index.html:13 +msgid "Server Logs" +msgstr "サーバーログ" + +#: serverLogs/templates/serverLogs/index.html:14 +msgid "" +"These are the logs from main server, to see logs for your website navigate " +"to: Websites -> List Websites -> Select Website -> View Logs." +msgstr "" +"これらはメインサーバーからのログで、Web サイトのログを見るには次のように操作" +"します: Web サイト -> Web サイトの一覧 ->Web サイトの選択 -> ログの表示." + +#: serverStatus/templates/serverStatus/cybercpmainlogfile.html:3 +msgid "CyberPanel Main Log File - CyberPanel" +msgstr "Cyber​​Panel メインログファイル - Cyber​​Panel" + +#: serverStatus/templates/serverStatus/cybercpmainlogfile.html:16 +msgid "" +"This log file corresponds to errors generated by CyberPanel for your domain " +"errors log you can look into /home/domain/logs." +msgstr "" +"このログファイルは Cyber​​Panel によってドメインエラーログ用に生成されたエラー" +"に対応しており、 /home/domain/logs で調べることができます。" + +#: serverStatus/templates/serverStatus/index.html:3 +msgid "Server Status - CyberPanel" +msgstr "サーバーの状態 - CyberPanel" + +#: serverStatus/templates/serverStatus/index.html:14 +msgid "View LiteSpeed status and log files." +msgstr "LiteSpeed の状態とログファイルを表示します。" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:3 +msgid "LiteSpeed Status - CyberPanel" +msgstr "LiteSpeed の状態 - Cyber​​Panel" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:16 +msgid "LiteSpeed Status:" +msgstr "LiteSpeed の状態:" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:17 +msgid "" +"On this page you can get information regarding your LiteSpeed processes." +msgstr "このページでは、LiteSpeed プロセスに関する情報を得ることができます。" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:32 +msgid "LiteSpeed Processes" +msgstr "LiteSpeed 操作" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:39 +msgid "Process ID" +msgstr "プロセス ID" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:51 +msgid "Main Process" +msgstr "メイン機能" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:54 +msgid "lscgid Process" +msgstr "lscgid プロセス" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:57 +msgid "Worker Process" +msgstr "ワーカー プロセス" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:67 +msgid "" +"Could not fetch details, either LiteSpeed is not running or some error " +"occurred, please see CyberPanel Main log file." +msgstr "" +"詳細を取得できませんでした.LiteSpeedが実行されていないか、何らかのエラーが発" +"生しました。Cyber​​Panelメインログファイルを参照してください。" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:72 +msgid "Reboot Litespeed" +msgstr "LiteSpeed を再起動" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:77 +msgid "Stop LiteSpeed" +msgstr "LiteSpeed を停止" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:90 +msgid "Error Occurred. See CyberPanel main log file." +msgstr "" +"エラーが発生しました。 CyberPanelメインログファイルを参照してください。" + +#: serverStatus/templates/serverStatus/litespeedStatus.html:95 +msgid "Could not connect to server." +msgstr "サーバーに接続できませんでした。" + +#: tuning/templates/tuning/index.html:3 +msgid "Server Tuning - CyberPanel" +msgstr "サーバーのチューニング - Cyber​​Panel" + +#: tuning/templates/tuning/index.html:13 +msgid "" +"On this page you can set runing parameters for your webserver depending on " +"your hardware." +msgstr "" +"このページでは、ハードウェアに応じて Web サーバーのランニングパラメータを設定" +"できます。" + +#: tuning/templates/tuning/liteSpeedTuning.html:3 +msgid "LiteSpeed Tuning - CyberPanel" +msgstr "LiteSpeed チューニング - Cyber​​Panel" + +#: tuning/templates/tuning/liteSpeedTuning.html:13 +msgid "" +"You can use this page to tweak your server according to your website " +"requirments." +msgstr "" +"このページを使用して、Webサイトの要件に従ってサーバーを調整することができま" +"す。" + +#: tuning/templates/tuning/liteSpeedTuning.html:18 +msgid "Tuning Details" +msgstr "チューニングの詳細" + +#: tuning/templates/tuning/liteSpeedTuning.html:28 +#: tuning/templates/tuning/phpTuning.html:52 +msgid "Max Connections" +msgstr "最大接続数" + +#: tuning/templates/tuning/liteSpeedTuning.html:36 +msgid "Max SSL Connections" +msgstr "最大 SSL 接続数" + +#: tuning/templates/tuning/liteSpeedTuning.html:44 +msgid "Connection Timeout" +msgstr "接続タイムアウト" + +#: tuning/templates/tuning/liteSpeedTuning.html:52 +msgid "Keep Alive Timeout" +msgstr "Keep Alive タイムアウト" + +#: tuning/templates/tuning/liteSpeedTuning.html:60 +msgid "Cache Size in memory" +msgstr "メモリ内のキャッシュサイズ" + +#: tuning/templates/tuning/liteSpeedTuning.html:67 +msgid "Enable GZIP Compression" +msgstr "GZIP 圧縮を有効にする" + +#: tuning/templates/tuning/liteSpeedTuning.html:70 +#: tuning/templates/tuning/phpTuning.html:93 +msgid "Enable" +msgstr "有効化" + +#: tuning/templates/tuning/liteSpeedTuning.html:71 +#: tuning/templates/tuning/phpTuning.html:94 +msgid "Disable" +msgstr "無効化" + +#: tuning/templates/tuning/liteSpeedTuning.html:74 +#: tuning/templates/tuning/phpTuning.html:97 +#: userManagment/templates/userManagment/modifyUser.html:77 +msgid "Currently:" +msgstr "現在:" + +#: tuning/templates/tuning/liteSpeedTuning.html:82 +msgid "Tune Web Server" +msgstr "Web サーバーをチューニング" + +#: tuning/templates/tuning/liteSpeedTuning.html:93 +msgid "" +"Cannot fetch Current Value, but you can still submit new changes, error " +"reported from server:" +msgstr "" +"現在の値は取得できませんが、サーバーから報告された新しい変更を送信できます:" + +#: tuning/templates/tuning/liteSpeedTuning.html:97 +msgid "Cannot save details, Error Message: " +msgstr "詳細を保存できません、エラーメッセージ: " + +#: tuning/templates/tuning/liteSpeedTuning.html:102 +msgid "Web Server Successfully tuned." +msgstr "Web サーバーをチューニングしました。" + +#: tuning/templates/tuning/phpTuning.html:3 +msgid "PHP Tuning - CyberPanel" +msgstr "PHP チューニング - Cyber​​Panel" + +#: tuning/templates/tuning/phpTuning.html:14 +msgid "Set how each version of PHP behaves in your server here." +msgstr "PHPの各バージョンがサーバー上でどのように動作するかを設定します。" + +#: tuning/templates/tuning/phpTuning.html:45 +msgid "Initial Request Timeout (secs)" +msgstr "初期要求タイムアウト(秒)" + +#: tuning/templates/tuning/phpTuning.html:60 +msgid "Memory Soft Limit" +msgstr "メモリ使用量のソフトリミット" + +#: tuning/templates/tuning/phpTuning.html:67 +msgid "Memory Hard Limit" +msgstr "メモリ使用量のハードリミット" + +#: tuning/templates/tuning/phpTuning.html:75 +msgid "Process Soft Limit" +msgstr "プロセス数のソフトリミット" + +#: tuning/templates/tuning/phpTuning.html:82 +msgid "Process Hard Limit" +msgstr "プロセス数のハードリミット" + +#: tuning/templates/tuning/phpTuning.html:90 +msgid "Persistent Connection" +msgstr "永続的な接続" + +#: tuning/templates/tuning/phpTuning.html:105 +msgid "Tune PHP" +msgstr "PHPをチューニング" + +#: tuning/templates/tuning/phpTuning.html:118 +msgid "Cannot tune. Error message:" +msgstr "チューニングできません。エラー メッセージ:" + +#: tuning/templates/tuning/phpTuning.html:123 +msgid "Details Successfully fetched." +msgstr "詳細が取得されました。" + +#: tuning/templates/tuning/phpTuning.html:127 +msgid "PHP version " +msgstr "PHP バージョン " + +#: tuning/templates/tuning/phpTuning.html:127 +msgid "Successfully tuned." +msgstr "調整されました。" + +#: userManagment/templates/userManagment/createUser.html:3 +msgid "Create New User - CyberPanel" +msgstr "新しいユーザーの作成する - Cyber​​Panel" + +#: userManagment/templates/userManagment/createUser.html:13 +msgid "Create root, reseller or normal users on this page." +msgstr "このページで root 、代理店、または通常のユーザーを作成します。" + +#: userManagment/templates/userManagment/createUser.html:19 +msgid "User Details" +msgstr "ユーザー詳細" + +#: userManagment/templates/userManagment/createUser.html:28 +#: userManagment/templates/userManagment/modifyUser.html:39 +#: userManagment/templates/userManagment/userProfile.html:25 +msgid "First Name" +msgstr "名" + +#: userManagment/templates/userManagment/createUser.html:32 +msgid "First Name should contain only alphabetic characters." +msgstr "名には英字のみを使用してください。" + +#: userManagment/templates/userManagment/createUser.html:37 +#: userManagment/templates/userManagment/modifyUser.html:46 +#: userManagment/templates/userManagment/userProfile.html:33 +msgid "Last Name" +msgstr "姓" + +#: userManagment/templates/userManagment/createUser.html:41 +msgid "Last Name should contain only alphabetic characters." +msgstr "姓には英字のみを使用してください。" + +#: userManagment/templates/userManagment/createUser.html:51 +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:64 +msgid "Invalid Email" +msgstr "無効なメールアドレスです" + +#: userManagment/templates/userManagment/createUser.html:64 +#: userManagment/templates/userManagment/createUser.html:76 +#: userManagment/templates/userManagment/modifyUser.html:69 +msgid "Account Type" +msgstr "アカウント種別" + +#: userManagment/templates/userManagment/createUser.html:67 +#: userManagment/templates/userManagment/modifyUser.html:72 +msgid "Admin" +msgstr "管理者" + +#: userManagment/templates/userManagment/createUser.html:68 +#: userManagment/templates/userManagment/createUser.html:79 +#: userManagment/templates/userManagment/modifyUser.html:73 +msgid "Normal User" +msgstr "通常のユーザー" + +#: userManagment/templates/userManagment/createUser.html:92 +#: userManagment/templates/userManagment/modifyUser.html:88 +#: userManagment/templates/userManagment/userProfile.html:67 +#: userManagment/templates/userManagment/userProfile.html:74 +msgid "User Accounts Limit" +msgstr "ユーザーアカウントの制限" + +#: userManagment/templates/userManagment/createUser.html:96 +#: userManagment/templates/userManagment/createUser.html:107 +msgid "Only Numbers" +msgstr "数字のみ" + +#: userManagment/templates/userManagment/createUser.html:103 +#: userManagment/templates/userManagment/modifyUser.html:98 +#: userManagment/templates/userManagment/userProfile.html:82 +msgid "Websites Limit" +msgstr "Web サイトの制限" + +#: userManagment/templates/userManagment/createUser.html:113 +#: userManagment/templates/userManagment/userProfile.html:42 +msgid "Username" +msgstr "ユーザー名" + +#: userManagment/templates/userManagment/createUser.html:117 +msgid "Username should be lowercase alphanumeric." +msgstr "ユーザー名は小文字の英数字である必要があります。" + +#: userManagment/templates/userManagment/createUser.html:127 +msgid "Must contain one number and one special character." +msgstr "1 つの数字と 1 つの特殊文字を含める必要があります。" + +#: userManagment/templates/userManagment/createUser.html:143 +#: userManagment/templates/userManagment/index.html:40 +#: userManagment/templates/userManagment/index.html:42 +msgid "Create User" +msgstr "ユーザーを作成" + +#: userManagment/templates/userManagment/createUser.html:154 +#: userManagment/templates/userManagment/modifyUser.html:130 +msgid "Account with username:" +msgstr "ユーザー名を持つアカウント:" + +#: userManagment/templates/userManagment/createUser.html:158 +msgid "Cannot create user. Error message:" +msgstr "ユーザーを作成できません。エラーメッセージ:" + +#: userManagment/templates/userManagment/createUser.html:166 +msgid "" +"Length of first and last name combined should be less than or equal to 20 " +"characters" +msgstr "結合された姓と名の長さは20文字以下でなければなりません" + +#: userManagment/templates/userManagment/deleteUser.html:3 +msgid "Delete User - CyberPanel" +msgstr "ユーザーの削除 - Cyber​​Panel" + +#: userManagment/templates/userManagment/deleteUser.html:14 +msgid "Websites owned by this user will automatically transfer to the root." +msgstr "このユーザーが所有する Web サイトは自動的に root に転送されます。" + +#: userManagment/templates/userManagment/deleteUser.html:29 +msgid "Select User" +msgstr "ユーザーを選択" + +#: userManagment/templates/userManagment/deleteUser.html:61 +msgid "Cannot delete user. Error message:" +msgstr "ユーザーを削除できません。エラーメッセージ:" + +#: userManagment/templates/userManagment/deleteUser.html:65 +msgid "User " +msgstr "ユーザー " + +#: userManagment/templates/userManagment/index.html:3 +msgid "User Functions - CyberPanel" +msgstr "ユーザ機能 - Cyber​​Panel" + +#: userManagment/templates/userManagment/index.html:14 +msgid "Create, edit and delete users on this page." +msgstr "このページでユーザーを作成、編集、削除を行います。" + +#: userManagment/templates/userManagment/modifyUser.html:3 +msgid "Modify User - CyberPanel" +msgstr "ユーザーの変更 - Cyber​​Panel" + +#: userManagment/templates/userManagment/modifyUser.html:13 +msgid "Modify existing user settings on this page." +msgstr "このページで既存のユーザー設定を変更します。" + +#: userManagment/templates/userManagment/modifyUser.html:26 +msgid "Select Account" +msgstr "アカウントを選択" + +#: userManagment/templates/userManagment/modifyUser.html:130 +msgid " is successfully modified." +msgstr " 更新されました。" + +#: userManagment/templates/userManagment/modifyUser.html:134 +msgid "Cannot modify user. Error message:" +msgstr "ユーザーを変更できません。エラー メッセージ:" + +#: userManagment/templates/userManagment/modifyUser.html:147 +msgid "Details fetched." +msgstr "詳細が取得されました。" + +#: userManagment/templates/userManagment/userProfile.html:3 +msgid "Account Details - CyberPanel" +msgstr "アカウント詳細 - CyberPanel" + +#: userManagment/templates/userManagment/userProfile.html:12 +#: userManagment/templates/userManagment/userProfile.html:18 +msgid "Account Details" +msgstr "アカウント詳細" + +#: userManagment/templates/userManagment/userProfile.html:13 +msgid "List the account details for the currently logged in user." +msgstr "現在ログインしているユーザーアカウントの詳細を一覧表示します。" + +#: userManagment/templates/userManagment/userProfile.html:58 +msgid "Account Level" +msgstr "アカウントレベル" + +#: userManagment/templates/userManagment/userProfile.html:69 +#: userManagment/templates/userManagment/userProfile.html:76 +#: userManagment/templates/userManagment/userProfile.html:84 +msgid "( 0 = Unlimited )" +msgstr "( 0 = 無制限 )" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:3 +msgid "Create New Website - CyberPanel" +msgstr "新しい Web サイトの作成する - Cyber​​Panel" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:13 +#: websiteFunctions/templates/websiteFunctions/index.html:14 +#: websiteFunctions/templates/websiteFunctions/listWebsites.html:15 +msgid "" +"On this page you can launch, list, modify and delete websites from your " +"server." +msgstr "" +"このページでは、サーバーから Web サイトを起動、一覧表示、変更、削除することが" +"できます。" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:20 +msgid "Website Details" +msgstr "Web サイトの詳細" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:40 +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:56 +msgid "Select Owner" +msgstr "所有者を選択" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:56 +#: websiteFunctions/templates/websiteFunctions/website.html:294 +#: websiteFunctions/templates/websiteFunctions/website.html:305 +msgid "Invalid Domain (Note: You don't need to add 'http' or 'https')" +msgstr "" +"無効なドメイン(注: 'http' または 'https' を追加する必要はありません)" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:84 +#: websiteFunctions/templates/websiteFunctions/website.html:326 +msgid "Additional Features" +msgstr "その他の機能" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:91 +#: websiteFunctions/templates/websiteFunctions/website.html:333 +msgid "" +"For SSL to work DNS of domain should point to server, otherwise self signed " +"SSL will be issued, you can add your own SSL later." +msgstr "" +"SSL はドメインがサーバーを指して DNS が動作す必要があります。それ以外は、自己" +"署名された SSL が発行されます。後で独自の SSL を追加できます。" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:113 +#: websiteFunctions/templates/websiteFunctions/website.html:355 +msgid "Cannot create website. Error message:" +msgstr "Web サイトを作成できません。エラーメッセージ:" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:117 +#: websiteFunctions/templates/websiteFunctions/website.html:359 +msgid "Website with domain" +msgstr "ドメインを持つ Web サイト" + +#: websiteFunctions/templates/websiteFunctions/createWebsite.html:117 +#: websiteFunctions/templates/websiteFunctions/website.html:359 +msgid " is Successfully Created" +msgstr " 作成されました" + +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:3 +msgid "Delete Website - CyberPanel" +msgstr "Web サイトの削除 - Cyber​​Panel" + +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:13 +msgid "" +"This page can be used to delete website, once deleted it can not be " +"recovered." +msgstr "" +"このページは、Web サイトの削除に使用できます。ただし、一度削除すると元に戻す" +"ことはできません。" + +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:61 +msgid "Cannot delete website, Error message: " +msgstr "Web サイトを削除できません、エラーメッセージ: " + +#: websiteFunctions/templates/websiteFunctions/deleteWebsite.html:65 +msgid "Successfully Deleted." +msgstr "削除されました。" + +#: websiteFunctions/templates/websiteFunctions/index.html:3 +msgid "Website Functions - CyberPanel" +msgstr "Web サイト機能 - Cyber​​Panel" + +#: websiteFunctions/templates/websiteFunctions/index.html:70 +#: websiteFunctions/templates/websiteFunctions/index.html:72 +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:13 +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:20 +msgid "Suspend/Unsuspend Website" +msgstr "Web サイトの休止/休止解除" + +#: websiteFunctions/templates/websiteFunctions/listWebsites.html:3 +msgid "Websites Hosted - CyberPanel" +msgstr "ホストされているWebサイト - Cyber​​Panel" + +#: websiteFunctions/templates/websiteFunctions/listWebsites.html:51 +msgid "Cannot list websites. Error message:" +msgstr "Web サイトの一覧が表示できません。エラーメッセージ:" + +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:3 +msgid "Modify Website - CyberPanel" +msgstr "Web サイトの変更 - Cyber​​Panel" + +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:51 +msgid "Current Package:" +msgstr "現在のパッケージ:" + +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:62 +msgid "Current Owner:" +msgstr "現在の所有者:" + +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:104 +msgid "Cannot fetch website details. Error message:" +msgstr "Web サイトの詳細を取得できません。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:108 +msgid "Cannot modify website. Error message:" +msgstr "Web サイトを変更することができません。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/modifyWebsite.html:112 +msgid "Website Details Successfully fetched" +msgstr "Web サイトの詳細が取得されました" + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:3 +msgid "Suspend/Unsuspend Website - CyberPanel" +msgstr "Web サイトの休止/休止解除 - Cyber​​Panel" + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:14 +msgid "This page can be used to suspend/unsuspend website." +msgstr "このページは Web サイトの休止/休止解除に使用できます。" + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:44 +msgid "Suspend" +msgstr "休止" + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:45 +msgid "Un-Suspend" +msgstr "休止の解除" + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:65 +msgid "Cannot suspend website, Error message: " +msgstr "Web サイトを休止できません、エラーメッセージ: " + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:69 +msgid "Cannot unsuspend website. Error message:" +msgstr "Web サイトの休止解除ができません。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:73 +msgid "Website " +msgstr "Web サイト " + +#: websiteFunctions/templates/websiteFunctions/suspendWebsite.html:73 +msgid "Successfully " +msgstr "成功しました " + +#: websiteFunctions/templates/websiteFunctions/website.html:15 +msgid "All functions related to a particular site." +msgstr "すべての機能は、特定のサイトに関連します。" + +#: websiteFunctions/templates/websiteFunctions/website.html:23 +msgid "Resource Usage" +msgstr "リソースの使用量" + +#: websiteFunctions/templates/websiteFunctions/website.html:32 +msgid "Resource" +msgstr "リソース" + +#: websiteFunctions/templates/websiteFunctions/website.html:34 +msgid "Allowed" +msgstr "許可" + +#: websiteFunctions/templates/websiteFunctions/website.html:56 +#: websiteFunctions/templates/websiteFunctions/website.html:83 +msgid "Bandwidth Usage" +msgstr "帯域幅の使用量" + +#: websiteFunctions/templates/websiteFunctions/website.html:119 +msgid "Load Access Logs" +msgstr "アクセス ログを読み込む" + +#: websiteFunctions/templates/websiteFunctions/website.html:131 +msgid "Load Error Logs" +msgstr "エラー ログを読み込む" + +#: websiteFunctions/templates/websiteFunctions/website.html:147 +msgid "Logs Fetched" +msgstr "ログが取得されました" + +#: websiteFunctions/templates/websiteFunctions/website.html:152 +msgid "" +"Could not fetch logs, see the logs file through command line. Error message:" +msgstr "" +"ログを取得できませんでした、コマンドラインからログファイルを参照してくださ" +"い。 エラーメッセージ:" + +#: websiteFunctions/templates/websiteFunctions/website.html:173 +#: websiteFunctions/templates/websiteFunctions/website.html:212 +msgid "Next" +msgstr "次へ" + +#: websiteFunctions/templates/websiteFunctions/website.html:174 +#: websiteFunctions/templates/websiteFunctions/website.html:213 +msgid "Previous" +msgstr "前へ" + +#: websiteFunctions/templates/websiteFunctions/website.html:257 +#: websiteFunctions/templates/websiteFunctions/website.html:259 +msgid "Add Domains" +msgstr "ドメインの追加" + +#: websiteFunctions/templates/websiteFunctions/website.html:269 +#: websiteFunctions/templates/websiteFunctions/website.html:271 +msgid "List Domains" +msgstr "ドメインの一覧" + +#: websiteFunctions/templates/websiteFunctions/website.html:301 +#: websiteFunctions/templates/websiteFunctions/website.html:760 +msgid "Path" +msgstr "パス" + +#: websiteFunctions/templates/websiteFunctions/website.html:303 +msgid "This path is relative to: " +msgstr "このパスからの相対: " + +#: websiteFunctions/templates/websiteFunctions/website.html:303 +msgid "Leave empty to set default." +msgstr "デフォルトを設定するには、空のままにします。" + +#: websiteFunctions/templates/websiteFunctions/website.html:344 +msgid "Create Domain" +msgstr "ドメインの作成" + +#: websiteFunctions/templates/websiteFunctions/website.html:387 +msgid "PHP Version Changed to:" +msgstr "PHP のバージョンを変更:" + +#: websiteFunctions/templates/websiteFunctions/website.html:391 +msgid "Deleted:" +msgstr "削除済み:" + +#: websiteFunctions/templates/websiteFunctions/website.html:395 +msgid "SSL Issued:" +msgstr "SSLの発行:" + +#: websiteFunctions/templates/websiteFunctions/website.html:418 +msgid "Close" +msgstr "閉じる" + +#: websiteFunctions/templates/websiteFunctions/website.html:450 +msgid "Issue" +msgstr "発行" + +#: websiteFunctions/templates/websiteFunctions/website.html:478 +msgid "Configurations" +msgstr "設定" + +#: websiteFunctions/templates/websiteFunctions/website.html:484 +msgid "Edit Virtual Host Main Configurations" +msgstr "仮想ホストのメイン設定の編集" + +#: websiteFunctions/templates/websiteFunctions/website.html:486 +msgid "Edit vHost Main Configurations" +msgstr "メイン vHost 設定の編集" + +#: websiteFunctions/templates/websiteFunctions/website.html:496 +#: websiteFunctions/templates/websiteFunctions/website.html:498 +msgid "Add Rewrite Rules (.htaccess)" +msgstr "Rewrite ルールを追加 (.htaccess)" + +#: websiteFunctions/templates/websiteFunctions/website.html:508 +msgid "Add Your Own SSL" +msgstr "独自のSSLを追加" + +#: websiteFunctions/templates/websiteFunctions/website.html:510 +msgid "Add SSL" +msgstr "SSL を追加" + +#: websiteFunctions/templates/websiteFunctions/website.html:525 +msgid "SSL Saved" +msgstr "SSL を保存しました" + +#: websiteFunctions/templates/websiteFunctions/website.html:530 +msgid "Could not save SSL. Error message:" +msgstr "SSL を保存できませんでした。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/website.html:580 +msgid "Current configuration in the file fetched." +msgstr "取得されたファイル内にある現在の設定。" + +#: websiteFunctions/templates/websiteFunctions/website.html:585 +#: websiteFunctions/templates/websiteFunctions/website.html:598 +msgid "Could not fetch current configuration. Error message:" +msgstr "現在の設定を取得できませんでした。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/website.html:594 +#: websiteFunctions/templates/websiteFunctions/website.html:649 +msgid "Configuration saved. Restart LiteSpeed put them in effect." +msgstr "設定が保存されました。 LiteSpeed を再起動して有効にします。" + +#: websiteFunctions/templates/websiteFunctions/website.html:635 +msgid "Current rewrite rules in the file fetched." +msgstr "取得されたファイル内にある現在の rewrite ルール。" + +#: websiteFunctions/templates/websiteFunctions/website.html:640 +msgid "Could not fetch current rewrite rules. Error message:" +msgstr "現在の rewrite ルールを取得できませんでした。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/website.html:653 +msgid "Could not save rewrite rules. Error message:" +msgstr "rewrite ルールを保存できませんでした。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/website.html:669 +msgid "Save Rewrite Rules" +msgstr "Rewrite ルールを保存" + +#: websiteFunctions/templates/websiteFunctions/website.html:692 +msgid "Files" +msgstr "ファイル" + +#: websiteFunctions/templates/websiteFunctions/website.html:699 +#: websiteFunctions/templates/websiteFunctions/website.html:701 +msgid "File Manager" +msgstr "ファイル 管理" + +#: websiteFunctions/templates/websiteFunctions/website.html:740 +msgid "Application Installer" +msgstr "アプリケーションインストーラー" + +#: websiteFunctions/templates/websiteFunctions/website.html:746 +msgid "Install wordpress with LSCache" +msgstr "LSCache で Wordpress をインストールする" + +#: websiteFunctions/templates/websiteFunctions/website.html:748 +msgid "Wordpress with LSCache" +msgstr "Wordpress の LSCache" + +#: websiteFunctions/templates/websiteFunctions/website.html:782 +msgid "Installation failed. Error message:" +msgstr "インストールに失敗しました。エラー メッセージ:" + +#: websiteFunctions/templates/websiteFunctions/website.html:786 +msgid "Installation successful. To complete the setup visit:" +msgstr "インストールに成功しました。 セットアップを完了するには:" + +#~ msgid "Reseller" +#~ msgstr "代理店" + +#~ msgid "Urdu" +#~ msgstr "ウルドゥー語" diff --git a/loginSystem/templates/loginSystem/login.html b/loginSystem/templates/loginSystem/login.html index 691f3ab9b..0fcfe9c82 100755 --- a/loginSystem/templates/loginSystem/login.html +++ b/loginSystem/templates/loginSystem/login.html @@ -289,8 +289,8 @@ - - + + diff --git a/mailServer/views.py b/mailServer/views.py index cc1eeea09..4f7a4d8cb 100644 --- a/mailServer/views.py +++ b/mailServer/views.py @@ -63,22 +63,34 @@ def submitEmailCreation(request): path = "/usr/local/CyberCP/install/rainloop/cyberpanel.net.ini" if not os.path.exists("/usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/domains/"): - os.makedirs("/usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/domains/") + command = 'sudo mkdir -p /usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/domains' + cmd = shlex.split(command) + res = subprocess.call(cmd) finalPath = "/usr/local/lscp/cyberpanel/rainloop/data/_data_/_default_/domains/" + domain + ".ini" if not os.path.exists(finalPath): - shutil.copy(path,finalPath) + command = 'sudo cp '+path +" "+finalPath - command = 'chown -R nobody:nobody /usr/local/lscp/rainloop' + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + command = 'sudo chown -R nobody:nobody /usr/local/lscp/rainloop' cmd = shlex.split(command) res = subprocess.call(cmd) - command = 'chown -R nobody:nobody /usr/local/lscp/cyberpanel/rainloop/data/_data_' + command = 'sudo chown -R nobody:nobody /usr/local/lscp/cyberpanel/rainloop/data/_data_' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + command = 'sudo chown -R vmail:vmail /home/vmail' cmd = shlex.split(command) diff --git a/manageSSL/views.py b/manageSSL/views.py index 780180113..beafbb48f 100644 --- a/manageSSL/views.py +++ b/manageSSL/views.py @@ -251,7 +251,7 @@ def obtainHostNameSSL(request): shutil.copy(srcPrivKey, destPrivKey) shutil.copy(srcFullChain, destCert) - command = 'systemctl restart lscpd' + command = 'sudo systemctl restart lscpd' cmd = shlex.split(command) @@ -287,7 +287,7 @@ def obtainHostNameSSL(request): shutil.copy(srcPrivKey, destPrivKey) shutil.copy(srcFullChain, destCert) - command = 'systemctl restart lscpd' + command = 'sudo systemctl restart lscpd' cmd = shlex.split(command) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 3f5ea0b36..d276f49a2 100644 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -59,11 +59,10 @@ class backupSchedule: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [startBackup]") - @staticmethod def sendBackup(backupPath,IPAddress,writeToFile): try: - command ='rsync -avz -e "ssh -i /root/.ssh/cyberpanel" '+ backupPath+ ' root@'+IPAddress+':/home/backup/'+time.strftime("%a-%b")+"/" + command ='rsync -avz -e "ssh -i /home/cyberpanel/.ssh/cyberpanel -o StrictHostKeyChecking=no" '+ backupPath+ ' cyberpanel@'+IPAddress+':/home/backup/'+time.strftime("%a-%b")+"/" subprocess.call(shlex.split(command),stdout=writeToFile) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 56db9f2f2..2395d172f 100644 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -11,10 +11,13 @@ from multiprocessing import Process import json import requests import signal - +from installUtilities import installUtilities class backupUtilities: + completeKeyPath = "/home/cyberpanel/.ssh" + + @staticmethod def startBackup(tempStoragePath,backupName,backupPath): try: @@ -24,6 +27,7 @@ class backupUtilities: status = open(backupPath+'status',"w") status.write(backupName+"\n") status.write("Making archive of home directory\n") + logging.CyberCPLogFileWriter.writeToFile("Making archive of home directory") status.close() count = 0 @@ -42,6 +46,7 @@ class backupUtilities: dbName = items.split('-')[0] status = open(backupPath + 'status', "w") status.write(backupName + "\n") + logging.CyberCPLogFileWriter.writeToFile("Backing up database: " + dbName) status.write("Backing up database: " + dbName) status.close() mysqlUtilities.mysqlUtilities.createDatabaseBackup(dbName, tempStoragePath) @@ -52,6 +57,7 @@ class backupUtilities: status = open(backupPath + 'status', "w") status.write(backupName + "\n") + logging.CyberCPLogFileWriter.writeToFile("completed") status.write("completed\n") status.close() @@ -244,6 +250,14 @@ class backupUtilities: status = open(completPath + '/status', "w") status.write("Done") status.close() + installUtilities.reStartLiteSpeed() + + command = "sudo chown -R nobody:cyberpanel "+websiteHome + + cmd = shlex.split(command) + + subprocess.call(cmd) + except BaseException, msg: @@ -260,8 +274,12 @@ class backupUtilities: @staticmethod def sendKey(IPAddress,password): try: + if not os.path.exists(backupUtilities.completeKeyPath+"/cyberpanel"): + command = "ssh-keygen -f "+backupUtilities.completeKeyPath+"/cyberpanel -t rsa -N ''" + cmd = shlex.split(command) + res = subprocess.call(cmd) - sendKeyProc = pexpect.spawn("scp /root/.ssh/cyberpanel.pub root@"+IPAddress+":/root/.ssh/authorized_keys") + sendKeyProc = pexpect.spawn("scp "+backupUtilities.completeKeyPath+"/cyberpanel.pub root@"+IPAddress+":"+backupUtilities.completeKeyPath+"/authorized_keys") sendKeyProc.expect("password:") sendKeyProc.sendline(password) @@ -284,7 +302,6 @@ class backupUtilities: @staticmethod def setupSSHKeys(IPAddress, password): try: - ## Checking for host verification backupUtilities.host_key_verification(IPAddress) @@ -299,7 +316,7 @@ class backupUtilities: expectation.append("continue connecting (yes/no)?") expectation.append("password:") - setupSSHKeys = pexpect.spawn("ssh root@"+IPAddress+" mkdir /root/.ssh") + setupSSHKeys = pexpect.spawn("ssh cyberpanel@"+IPAddress+" mkdir "+backupUtilities.keyPath) index = setupSSHKeys.expect(expectation) @@ -323,7 +340,7 @@ class backupUtilities: ## setting up keys. if backupUtilities.sendKey(IPAddress,password) == 0: - return "Can't setup connection, check CyberCP Main log file." + return "Can't setup connection, check CyberPanel Main log file." else: return 1 @@ -335,12 +352,10 @@ class backupUtilities: ## setting up keys. if backupUtilities.sendKey(IPAddress,password) == 0: - return "Can't setup connection, check CyberCP Main log file." + return "Can't setup connection, check CyberPanel Main log file." else: return 1 - print "keysInstalled" - else: return "Wrong Password" @@ -362,12 +377,11 @@ class backupUtilities: ## setting up keys. if backupUtilities.sendKey(IPAddress,password) == 0: - return "Can't setup connection, check CyberCP Main log file." + return "Can't setup connection, check CyberPanel Main log file." else: return 1 elif innerIndex == 1: - print "Created" setupSSHKeys.wait() ## setting up keys. @@ -375,7 +389,7 @@ class backupUtilities: ## setting up keys. if backupUtilities.sendKey(IPAddress,password) == 0: - return "Can't setup connection, check CyberCP Main log file." + return "Can't setup connection, check CyberPanel Main log file." else: return 1 @@ -404,14 +418,12 @@ class backupUtilities: @staticmethod def checkConnection(IPAddress): try: - backupUtilities.verifyHostKey(IPAddress) - expectation = [] expectation.append("password:") expectation.append("Last login") expectation.append(pexpect.EOF) - checkConn = pexpect.spawn("ssh -i /root/.ssh/cyberpanel root@"+IPAddress, timeout=3) + checkConn = pexpect.spawn("ssh -i /home/cyberpanel/.ssh/cyberpanel -o StrictHostKeyChecking=no cyberpanel@"+IPAddress, timeout=3) index = checkConn.expect(expectation) if index == 0: @@ -425,7 +437,7 @@ class backupUtilities: subprocess.call(['kill', str(checkConn.pid)]) logging.CyberCPLogFileWriter.writeToFile( "Remote Server is not able to authenticate for transfer to initiate, IP Address:" + IPAddress) - return [0, "Remote Server is not able to authenticate for transfer to initiate."] + return [0, "Remote Server is not able to authenticate for transfer to initiate, IP Address:" + IPAddress] except pexpect.TIMEOUT, msg: logging.CyberCPLogFileWriter.writeToFile("Timeout "+IPAddress+ " [checkConnection]") @@ -449,7 +461,7 @@ class backupUtilities: expectation.append("continue connecting (yes/no)?") expectation.append("password:") - setupSSHKeys = pexpect.spawn("ssh root@" + IPAddress) + setupSSHKeys = pexpect.spawn("ssh cyberpanel@" + IPAddress, timeout=3) index = setupSSHKeys.expect(expectation) @@ -509,7 +521,7 @@ class backupUtilities: def createBackupDir(IPAddress,IPAddressA): try: - command = "ssh -i /root/.ssh/cyberpanel root@"+IPAddress+" mkdir /home/backup" + command = "ssh -i /home/cyberpanel/.ssh/cyberpanel cyberpanel@"+IPAddress+" mkdir /home/backup" shlex.split(command) @@ -522,6 +534,7 @@ class backupUtilities: @staticmethod def initiateBackupDirCreation(IPAddress): try: + backupUtilities.verifyHostKey(IPAddress) thread.start_new_thread(backupUtilities.createBackupDir, (IPAddress,IPAddress)) except BaseException,msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [initiateBackupDirCreation]") @@ -529,7 +542,7 @@ class backupUtilities: @staticmethod def host_key_verification(IPAddress): try: - command = 'ssh-keygen -R '+IPAddress + command = 'sudo ssh-keygen -R '+IPAddress shlex.split(command) diff --git a/plogical/firewallUtilities.py b/plogical/firewallUtilities.py index c7aaac87c..ad04f9aa6 100644 --- a/plogical/firewallUtilities.py +++ b/plogical/firewallUtilities.py @@ -20,13 +20,13 @@ class FirewallUtilities: ruleProtocol = 'port protocol="' + proto + '"' rulePort = 'port="' + port + '"' - command = "firewall-cmd --permanent --zone=public --add-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" + command = "sudo firewall-cmd --permanent --zone=public --add-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" cmd = shlex.split(command) res = subprocess.call(cmd) - command = 'firewall-cmd --reload' + command = 'sudo firewall-cmd --reload' cmd = shlex.split(command) @@ -49,13 +49,13 @@ class FirewallUtilities: ruleProtocol = 'port protocol="' + proto + '"' rulePort = 'port="' + port + '"' - command = "firewall-cmd --permanent --zone=public --remove-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" + command = "sudo firewall-cmd --permanent --zone=public --remove-rich-rule='" + ruleFamily + " " + sourceAddress + " " + ruleProtocol + " " + rulePort + " " + "accept'" cmd = shlex.split(command) res = subprocess.call(cmd) - command = 'firewall-cmd --reload' + command = 'sudo firewall-cmd --reload' cmd = shlex.split(command) diff --git a/plogical/ftpUtilities.py b/plogical/ftpUtilities.py index 6088698d6..b9610043b 100644 --- a/plogical/ftpUtilities.py +++ b/plogical/ftpUtilities.py @@ -2,6 +2,7 @@ import mysqlUtilities as sql import subprocess import CyberCPLogFileWriter as logging import os +import shlex class FTPUtilities: @@ -182,31 +183,29 @@ class FTPUtilities: try: - cmd = [] - cmd.append("chmod") - cmd.append("-R") - cmd.append("774") - cmd.append(directory) + command = "sudo chmod -R 775 " + directory + + cmd = shlex.split(command) res = subprocess.call(cmd) + if res == 1: print "Permissions not changed." return 0 else: print "User permissions setted." - cmd = [] - cmd.append("chown") - cmd.append("-R") - cmd.append("nobody:nobody") - cmd.append(directory) + + + command = "sudo chown -R nobody:cyberpanel " + directory + + cmd = shlex.split(command) res = subprocess.call(cmd) + if res == 1: - print "Permissions not changed." return 0 else: - print "User permissions setted." return 1 except BaseException, msg: diff --git a/plogical/installUtilities.py b/plogical/installUtilities.py index bcd589340..0533d9bbe 100644 --- a/plogical/installUtilities.py +++ b/plogical/installUtilities.py @@ -5,6 +5,7 @@ import shutil import pexpect import os import thread +import shlex class installUtilities: @@ -135,20 +136,39 @@ class installUtilities: @staticmethod def reStartLiteSpeed(): try: - thread.start_new_thread(installUtilities.reStartOpenLiteSpeed, ("restart","restart")) - except BaseException,msg: - logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [restartLiteSpeed]") + command = "sudo systemctl restart lsws" + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + if res == 1: + print("###############################################") + print(" Could not restart Litespeed serve ") + print("###############################################") + sys.exit() + else: + print("###############################################") + print(" Litespeed Re-Started ") + print("###############################################") + + + except OSError, msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [reStartLiteSpeed]") + return 0 + except ValueError, msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [reStartLiteSpeed]") + return 0 + return 1 @staticmethod def reStartOpenLiteSpeed(restart,orestart): - try: - cmd = [] + command = "sudo systemctl restart lsws" - cmd.append("/usr/local/lsws/bin/lswsctrl") - cmd.append("restart") + cmd = shlex.split(command) res = subprocess.call(cmd) diff --git a/plogical/mysqlUtilities.py b/plogical/mysqlUtilities.py index f559cfde4..33d121dc9 100644 --- a/plogical/mysqlUtilities.py +++ b/plogical/mysqlUtilities.py @@ -146,7 +146,7 @@ class mysqlUtilities: data = f.read() password = data.split('\n', 1)[0] - command = 'mysqldump -u root -p'+password+' '+databaseName + command = 'sudo mysqldump -u root -p'+password+' '+databaseName cmd = shlex.split(command) @@ -170,7 +170,7 @@ class mysqlUtilities: password = data.split('\n', 1)[0] - command = 'mysql -u root -p' + password + ' ' + databaseName + command = 'sudo mysql -u root -p' + password + ' ' + databaseName cmd = shlex.split(command) @@ -184,7 +184,7 @@ class mysqlUtilities: passwordCMD = "use mysql;SET PASSWORD FOR '"+databaseName+"'@'localhost' = '"+dbPassword+"';FLUSH PRIVILEGES;" - command = 'mysql -u root -p'+password+' -e "'+passwordCMD+'"' + command = 'sudo mysql -u root -p'+password+' -e "'+passwordCMD+'"' cmd = shlex.split(command) res = subprocess.call(cmd) diff --git a/plogical/phpUtilities.py b/plogical/phpUtilities.py index 0cd70e791..309324431 100644 --- a/plogical/phpUtilities.py +++ b/plogical/phpUtilities.py @@ -10,7 +10,7 @@ class phpUtilities: def installPHPExtension(extension,extensions): try: - command = 'yum install '+extension +' -y' + command = 'sudo yum install '+extension +' -y' cmd = shlex.split(command) @@ -36,7 +36,7 @@ class phpUtilities: def unInstallPHPExtension(extension,extensions): try: - command = 'rpm --nodeps -e ' + extension + ' -v' + command = 'sudo rpm --nodeps -e ' + extension + ' -v' cmd = shlex.split(command) diff --git a/plogical/remoteBackup.py b/plogical/remoteBackup.py index efcb68ad7..b8dc1a114 100644 --- a/plogical/remoteBackup.py +++ b/plogical/remoteBackup.py @@ -252,7 +252,7 @@ class remoteBackup: try: ## complete path is a path to the file need to send - command = 'rsync -avz -e "ssh -i /root/.ssh/cyberpanel" ' + completedPathToSend + ' root@' + IPAddress + ':/home/backup/transfer-'+folderNumber + command = 'sudo rsync -avz -e "ssh -i /home/cyberpanel/.ssh/cyberpanel -o StrictHostKeyChecking=no" ' + completedPathToSend + ' cyberpanel@' + IPAddress + ':/home/backup/transfer-'+folderNumber subprocess.call(shlex.split(command), stdout=writeToFile) except BaseException, msg: @@ -321,6 +321,9 @@ class remoteBackup: remoteBackup.sendBackup(completedPathToSend,ipAddress,str(folderNumber),writeToFile) + writeToFile.writelines("[" + time.strftime( + "%I-%M-%S-%a-%b-%Y") + "]" + " Sent " + completedPathToSend + " to " + ipAddress + ".\n") + writeToFile.writelines("[" + time.strftime( "%I-%M-%S-%a-%b-%Y") + "]" + " #############################################" + "\n") @@ -347,18 +350,6 @@ class remoteBackup: @staticmethod def remoteTransfer(ipAddress, dir,accountsToTransfer): try: - ## fix yes/no - - verify = backupUtil.backupUtilities.verifyHostKey(ipAddress) - - ## if verification failed, return with error message - - if verify[0] == 1: - pass - else: - return [0,verify[1]] - - #### destination = "/home/backup/transfer-" + dir backupLogPath = destination + "/backup_log" diff --git a/plogical/sslUtilities.py b/plogical/sslUtilities.py index 8a7693c23..206ee7665 100644 --- a/plogical/sslUtilities.py +++ b/plogical/sslUtilities.py @@ -135,18 +135,17 @@ class sslUtilities: @staticmethod def obtainSSLForADomain(virtualHostName,adminEmail,sslpath): - try: - #if virtualHostName.count(".")==1: - # command = "certbot certonly -n --agree-tos --email " + adminEmail + " --webroot -w " + sslpath + " -d " + virtualHostName + " -d www." + virtualHostName + # command = "sudo certbot certonly -n --agree-tos --email " + adminEmail + " --webroot -w " + sslpath + " -d " + virtualHostName + " -d www." + virtualHostName #else: - # command = "certbot certonly -n --agree-tos --email " + adminEmail + " --webroot -w " + sslpath + " -d " + virtualHostName + # command = "sudo certbot certonly -n --agree-tos --email " + adminEmail + " --webroot -w " + sslpath + " -d " + virtualHostName - command = "certbot certonly -n --agree-tos --email " + adminEmail + " --webroot -w " + sslpath + " -d " + virtualHostName + command = "sudo certbot certonly -n --agree-tos --email " + adminEmail + " --webroot -w " + sslpath + " -d " + virtualHostName + expectation = [] @@ -187,7 +186,7 @@ class sslUtilities: pathToStoreSSLFullChain = pathToStoreSSL + "/fullchain.pem" - command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain + command = 'sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain cmd = shlex.split(command) @@ -207,7 +206,7 @@ class sslUtilities: pathToStoreSSLPrivKey = pathToStoreSSL + "/privkey.pem" pathToStoreSSLFullChain = pathToStoreSSL + "/fullchain.pem" - command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain + command = 'sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain cmd = shlex.split(command) @@ -267,7 +266,7 @@ class sslUtilities: pathToStoreSSLPrivKey = pathToStoreSSL + "/privkey.pem" pathToStoreSSLFullChain = pathToStoreSSL + "/fullchain.pem" - command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain + command = 'sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain cmd = shlex.split(command) @@ -294,7 +293,7 @@ class sslUtilities: pathToStoreSSLPrivKey = pathToStoreSSL + "/privkey.pem" pathToStoreSSLFullChain = pathToStoreSSL + "/fullchain.pem" - command = 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain + command = 'sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ' + pathToStoreSSLPrivKey + ' -out ' + pathToStoreSSLFullChain cmd = shlex.split(command) @@ -302,6 +301,14 @@ class sslUtilities: return 1 + ## fix permissions + + command = 'sudo chown -R cyberpanel:cyberpanel /etc/letsencrypt' + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + ###### Copy SSL To config location ###### diff --git a/plogical/test.py b/plogical/test.py index 6de77b8b9..dd36fbdda 100644 --- a/plogical/test.py +++ b/plogical/test.py @@ -5,73 +5,18 @@ from CyberCPLogFileWriter import CyberCPLogFileWriter as logging import time from backupUtilities import backupUtilities import signal +import shlex +import subprocess -def verifyHostKey(IPAddress): - try: - backupUtilities.host_key_verification(IPAddress) +def verifyHostKey(directory): + command = "sudo chmod -R 775 " + directory - password = "hello" + print command - expectation = [] + cmd = shlex.shlex(command) - expectation.append("continue connecting (yes/no)?") - expectation.append("password:") - - setupSSHKeys = pexpect.spawn("ssh root@" + IPAddress) - - index = setupSSHKeys.expect(expectation) - - if index == 0: - setupSSHKeys.sendline("yes") - - setupSSHKeys.expect("password:") - setupSSHKeys.sendline(password) - - expectation = [] - - expectation.append("password:") - expectation.append(pexpect.EOF) - - - innerIndex = setupSSHKeys.expect(expectation) - - if innerIndex == 0: - setupSSHKeys.kill(signal.SIGTERM) - return [1, "None"] - elif innerIndex == 1: - setupSSHKeys.kill(signal.SIGTERM) - return [1, "None"] - - elif index == 1: - - setupSSHKeys.expect("password:") - setupSSHKeys.sendline(password) - - expectation = [] - - expectation.append("password:") - expectation.append(pexpect.EOF) - - innerIndex = setupSSHKeys.expect(expectation) - - if innerIndex == 0: - setupSSHKeys.kill(signal.SIGTERM) - return [1, "None"] - elif innerIndex == 1: - setupSSHKeys.kill(signal.SIGTERM) - return [1, "None"] - - - except pexpect.TIMEOUT, msg: - logging.writeToFile("Timeout [verifyHostKey]") - return [0,"Timeout [verifyHostKey]"] - except pexpect.EOF, msg: - logging.writeToFile("EOF [verifyHostKey]") - return [0,"EOF [verifyHostKey]"] - except BaseException, msg: - logging.writeToFile(str(msg) + " [verifyHostKey]") - return [0,str(msg)+" [verifyHostKey]"] + res = subprocess.call(cmd) -print verifyHostKey("23.95.216.56") \ No newline at end of file +print verifyHostKey("/home/ssl.cyberpanel.net") \ No newline at end of file diff --git a/plogical/virtualHostUtilities.py b/plogical/virtualHostUtilities.py index f5fd06111..8ceb2fb72 100644 --- a/plogical/virtualHostUtilities.py +++ b/plogical/virtualHostUtilities.py @@ -5,6 +5,7 @@ import shutil import logging import CyberCPLogFileWriter as logging import subprocess +import shlex class virtualHostUtilities: @@ -21,13 +22,29 @@ class virtualHostUtilities: confPath = virtualHostUtilities.Server_root + "/conf/vhosts/"+virtualHostName completePathToConfigFile = confPath +"/vhost.conf" + try: os.makedirs(path) + except OSError,msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [Not able to create directories for virtual host: "+ path+" [createDirectoryForVirtualHost]]") + return 0 + + try: os.makedirs(pathHTML) + except OSError,msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [Not able to create directories for virtual host "+ pathHTML+" [createDirectoryForVirtualHost]]") + return 0 + + try: os.makedirs(pathLogs) + except OSError,msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [Not able create to directories for virtual host "+ pathLogs+" [createDirectoryForVirtualHost]]") + return 0 + + try: os.makedirs(confPath) except OSError,msg: - logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [Not able to directories for virtual host [createDirectoryForVirtualHost]]") + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [Not able create to directories for virtual host "+ confPath+" [createDirectoryForVirtualHost]]") return 0 @@ -38,25 +55,24 @@ class virtualHostUtilities: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [createDirectoryForVirtualHost]]") return 0 - try: - uid = pwd.getpwnam("lsadm").pw_uid - gid = grp.getgrnam("lsadm").gr_gid - os.chown(confPath, uid, gid) - os.chown(completePathToConfigFile, uid, gid) + #try: - uid = pwd.getpwnam("nobody").pw_uid - gid = grp.getgrnam("nobody").gr_gid + #command = "sudo chown -R nobody:cyberpanel " + completePathToConfigFile - os.chown("/home",uid,gid) - os.chown(path, uid, gid) - os.chown(pathHTML, uid, gid) - os.chown(pathLogs, uid, gid) + #cmd = shlex.split(command) + + #res = subprocess.call(cmd) + #command = "sudo chown -R nobody:cyberpanel /home" + + #cmd = shlex.split(command) + + #res = subprocess.call(cmd) - except BaseException,msg: - logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [createDirectoryForVirtualHost]]") + #except BaseException,msg: + # logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [createDirectoryForVirtualHost]]") if virtualHostUtilities.perHostVirtualConf(completePathToConfigFile,administratorEmail,phpVersion) == 1: @@ -237,13 +253,13 @@ class virtualHostUtilities: os.makedirs(path) except OSError, msg: logging.CyberCPLogFileWriter.writeToFile( - str(msg) + " [Not able to directories for virtual host [createDirectoryForDomain]]") + str(msg) + " [Not able create to directories for virtual host [createDirectoryForDomain]]") try: os.makedirs(confPath) except OSError, msg: logging.CyberCPLogFileWriter.writeToFile( - str(msg) + " [Not able to directories for virtual host [createDirectoryForDomain]]") + str(msg) + " [Not able create to directories for virtual host [createDirectoryForDomain]]") try: file = open(completePathToConfigFile, "w+") @@ -251,20 +267,20 @@ class virtualHostUtilities: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [createDirectoryForDomain]]") return 0 - try: - uid = pwd.getpwnam("lsadm").pw_uid - gid = grp.getgrnam("lsadm").gr_gid - os.chown(confPath, uid, gid) - os.chown(completePathToConfigFile, uid, gid) + #try: + # uid = pwd.getpwnam("lsadm").pw_uid + # gid = grp.getgrnam("lsadm").gr_gid + # os.chown(confPath, uid, gid) + # os.chown(completePathToConfigFile, uid, gid) - uid = pwd.getpwnam("nobody").pw_uid - gid = grp.getgrnam("nobody").gr_gid + # uid = pwd.getpwnam("nobody").pw_uid + # gid = grp.getgrnam("nobody").gr_gid - os.chown("/home", uid, gid) - os.chown(path, uid, gid) + # os.chown("/home", uid, gid) + # os.chown(path, uid, gid) - except BaseException, msg: - logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [createDirectoryForDomain]]") + #except BaseException, msg: + #logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [createDirectoryForDomain]]") if virtualHostUtilities.perHostDomainConf(path, masterDomain, domain, completePathToConfigFile, administratorEmail, phpVersion) == 1: @@ -448,7 +464,6 @@ class virtualHostUtilities: except BaseException,msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [Not able to remove virtual host directory from /home continuing..]") - try: confPath = virtualHostUtilities.Server_root + "/conf/vhosts/" + virtualHostName shutil.rmtree(confPath) @@ -639,4 +654,28 @@ class virtualHostUtilities: logging.CyberCPLogFileWriter.writeToFile( str(msg) + " [UnsuspendVirtualHost]") return 0 - return 1 \ No newline at end of file + return 1 + + @staticmethod + def permissionControl(path): + try: + command = 'sudo chown -R cyberpanel:cyberpanel '+path + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + except BaseException,msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg)) + + @staticmethod + def leaveControl(path): + try: + command = 'sudo chown -R root:root ' + path + + cmd = shlex.split(command) + + res = subprocess.call(cmd) + + except BaseException, msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg)) \ No newline at end of file diff --git a/websiteFunctions/views.py b/websiteFunctions/views.py index 692099a80..f299fee93 100644 --- a/websiteFunctions/views.py +++ b/websiteFunctions/views.py @@ -279,25 +279,40 @@ def submitWebsiteCreation(request): ssl = data['ssl'] + ## tmp change of permissions + + + if virtualHostUtilities.checkIfVirtualHostExists(domain) == 1: + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 1, 'error_message': "This domain already exists in Litespeed Configurations, first delete the domain to perform sweap."} json_data = json.dumps(data_ret) return HttpResponse(json_data) if virtualHostUtilities.createDirectoryForVirtualHost(domain, adminEmail, phpSelection) != 1: + numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 1, - 'error_message': "Can not create configurations, see CyberCP main log file."} + 'error_message': "Can not create configurations, see CyberPanel main log file. [createDirectoryForVirtualHost]"} json_data = json.dumps(data_ret) return HttpResponse(json_data) if virtualHostUtilities.createConfigInMainVirtualHostFile(domain) != 1: numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 1, - 'error_message': "Can not create configurations, see CyberCP main log file."} + 'error_message': "Can not create configurations, see CyberPanel main log file."} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -317,14 +332,17 @@ def submitWebsiteCreation(request): numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 1, 'error_message': str( - ssl_responce) + ", for more information see CyberCP main log file."} + ssl_responce) + ", for more information see CyberPanel main log file."} json_data = json.dumps(data_ret) return HttpResponse(json_data) - ## zone creation and + ## zone creation try: newZone = Domains(admin=admin, name=domain, type="NATIVE") @@ -389,6 +407,9 @@ def submitWebsiteCreation(request): shutil.copy("/usr/local/CyberCP/index.html", "/home/" + domain + "/public_html/index.html") + + + data_ret = {'createWebSiteStatus': 1, 'error_message': "None", "existsStatus": 0} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -396,6 +417,9 @@ def submitWebsiteCreation(request): except BaseException,msg: numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + + data_ret = {'createWebSiteStatus': 0, 'error_message': str(msg),"existsStatus":0} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -448,9 +472,13 @@ def submitDomainCreation(request): ssl = data['ssl'] path = data['path'] + restart = 1 + + ####### Creation try: restore = data['restore'] + restart = 0 except: if len(path) > 0: path = path.lstrip("/") @@ -462,6 +490,8 @@ def submitDomainCreation(request): master.adminEmail) != 1: numberOfWebsites = Websites.objects.count() + ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "Can not create configurations, see CyberCP main log file."} json_data = json.dumps(data_ret) @@ -470,26 +500,28 @@ def submitDomainCreation(request): if virtualHostUtilities.createConfigInMainDomainHostFile(domain, masterDomain) != 1: numberOfWebsites = Websites.objects.count() + ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "Can not create configurations, see CyberCP main log file."} json_data = json.dumps(data_ret) return HttpResponse(json_data) - if ssl == 1: - installUtilities.reStartOpenLiteSpeed("restart", "ols") - else: + if restart == 1: installUtilities.reStartLiteSpeed() if ssl == 1: ssl_responce = sslUtilities.obtainSSLForADomain(domain, master.adminEmail, path) if ssl_responce == 1: sslUtilities.installSSLForDomain(domain) - installUtilities.reStartLiteSpeed() + if restart == 1: + installUtilities.reStartLiteSpeed() else: numberOfWebsites = Websites.objects.count() + ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) - data_ret = {"existsStatus": 1, 'createWebSiteStatus': 1, + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': str( ssl_responce) + ", for more information see CyberCP main log file."} json_data = json.dumps(data_ret) @@ -501,6 +533,9 @@ def submitDomainCreation(request): shutil.copy("/usr/local/CyberCP/index.html", path + "/index.html") + + + data_ret = {'createWebSiteStatus': 1, 'error_message': "None", "existsStatus": 0} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -508,6 +543,8 @@ def submitDomainCreation(request): except BaseException, msg: numberOfWebsites = Websites.objects.count() + ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + data_ret = {'createWebSiteStatus': 0, 'error_message': str(msg), "existsStatus": 0} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -671,9 +708,11 @@ def submitWebsiteDeletion(request): numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() + virtualHostUtilities.deleteVirtualHostConfigurations(websiteName,numberOfWebsites) + delWebsite = Websites.objects.get(domain=websiteName) databases = Databases.objects.filter(website=delWebsite) @@ -694,11 +733,16 @@ def submitWebsiteDeletion(request): installUtilities.reStartLiteSpeed() + + + data_ret = {'websiteDeleteStatus': 1,'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException,msg: + + data_ret = {'websiteDeleteStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -727,11 +771,16 @@ def submitDomainDeletion(request): installUtilities.reStartLiteSpeed() + + + data_ret = {'websiteDeleteStatus': 1,'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException,msg: + + data_ret = {'websiteDeleteStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -751,6 +800,9 @@ def submitWebsiteStatus(request): website = Websites.objects.get(domain=websiteName) + + + if state == "Suspend": virtualHostUtilities.suspendVirtualHost(websiteName) installUtilities.reStartLiteSpeed() @@ -763,11 +815,16 @@ def submitWebsiteStatus(request): website.save() + + + data_ret = {'websiteStatus': 1,'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException,msg: + + data_ret = {'websiteStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -1018,7 +1075,7 @@ def getDataFromLogFile(request): if start <= 0: start = 1 startingAndEnding = "'" + str(start) + "," + str(end) + "p'" - command = "sed -n " + startingAndEnding + " " + fileName + command = "sudo sed -n " + startingAndEnding + " " + fileName proc = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE) data = proc.stdout.read() else: @@ -1027,7 +1084,7 @@ def getDataFromLogFile(request): if start <= 0: start = 1 startingAndEnding = "'" + str(start) + "," + str(end) + "p'" - command = "sed -n " + startingAndEnding + " " + fileName + command = "sudo sed -n " + startingAndEnding + " " + fileName proc = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE) data = proc.stdout.read() @@ -1082,7 +1139,7 @@ def fetchErrorLogs(request): if start <= 0: start = 1 startingAndEnding = "'" + str(start) + "," + str(end) + "p'" - command = "sed -n " + startingAndEnding + " " + fileName + command = "sudo sed -n " + startingAndEnding + " " + fileName proc = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE) data = proc.stdout.read() else: @@ -1091,7 +1148,7 @@ def fetchErrorLogs(request): if start <= 0: start = 1 startingAndEnding = "'" + str(start) + "," + str(end) + "p'" - command = "sed -n " + startingAndEnding + " " + fileName + command = "sudo sed -n " + startingAndEnding + " " + fileName proc = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE) data = proc.stdout.read() @@ -1103,7 +1160,6 @@ def fetchErrorLogs(request): return HttpResponse(final_json) - def installWordpress(request): try: val = request.session['userID'] @@ -1116,13 +1172,17 @@ def installWordpress(request): finalPath = "" + ## temporarily changing permission for sshd files + + + virtualHostUtilities.permissionControl("/home/"+domainName+"/public_html") + if home == '0': path = data['path'] finalPath = "/home/" + domainName + "/public_html/" + path + "/" else: finalPath = "/home/" + domainName + "/public_html/" - if not os.path.exists(finalPath): os.makedirs(finalPath) @@ -1137,8 +1197,9 @@ def installWordpress(request): ## Get wordpress + if not os.path.exists("latest.tar.gz"): - command = 'wget --no-check-certificate http://wordpress.org/latest.tar.gz' + command = 'wget --no-check-certificate http://wordpress.org/latest.tar.gz -O latest.tar.gz' cmd = shlex.split(command) @@ -1150,6 +1211,7 @@ def installWordpress(request): res = subprocess.call(cmd) + ## Get plugin if not os.path.exists("litespeed-cache.1.1.5.1.zip"): @@ -1196,7 +1258,7 @@ def installWordpress(request): if not os.path.exists(homeDir): os.mkdir(homeDir) - command = 'chown -R nobody:nobody '+homeDir + command = 'chown -R nobody:cyberpanel '+homeDir cmd = shlex.split(command) res = subprocess.call(cmd) @@ -1213,7 +1275,7 @@ def installWordpress(request): if not os.path.exists(homeDir): os.mkdir(homeDir) - command = 'chown -R nobody:nobody ' + homeDir + command = 'chown -R nobody:cyberpanel ' + homeDir cmd = shlex.split(command) res = subprocess.call(cmd) data_ret = {'installStatus': 0, @@ -1232,7 +1294,7 @@ def installWordpress(request): if not os.path.exists(homeDir): os.mkdir(homeDir) - command = 'chown -R nobody:nobody ' + homeDir + command = 'chown -R nobody:cyberpanel ' + homeDir cmd = shlex.split(command) res = subprocess.call(cmd) @@ -1260,11 +1322,9 @@ def installWordpress(request): if items.find("DB_NAME") > -1: if items.find("database_name_here") > -1: writeDataToFile.writelines(defDBName) - print ("database_name_here") elif items.find("DB_USER") > -1: if items.find("username_here") > -1: writeDataToFile.writelines(defDBUser) - print ("username_here") elif items.find("DB_PASSWORD") > -1: writeDataToFile.writelines(defDBPassword) else: @@ -1274,7 +1334,7 @@ def installWordpress(request): os.rename(wpconfigfile, finalPath + 'wp-config.php') - command = 'chown -R nobody:nobody ' + finalPath + command = 'sudo chown -R nobody:cyberpanel ' + "/home/" + domainName + "/public_html/" cmd = shlex.split(command) @@ -1291,12 +1351,16 @@ def installWordpress(request): except BaseException, msg: # remove the downloaded files - shutil.rmtree(finalPath) + try: + shutil.rmtree(finalPath) + except: + logging.CyberCPLogFileWriter.writeToFile("shutil.rmtree(finalPath)") + homeDir = "/home/" + domainName + "/public_html" if not os.path.exists(homeDir): os.mkdir(homeDir) - command = 'chown -R nobody:nobody ' + homeDir + command = 'chown -R nobody:cyberpanel ' + homeDir cmd = shlex.split(command) res = subprocess.call(cmd) data_ret = {'installStatus': 0, 'error_message': str(msg)} @@ -1306,9 +1370,11 @@ def installWordpress(request): except KeyError, msg: status = {"installStatus":0,"error":str(msg)} - logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[getDataFromLogFile]") + logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[installWordpress]") return HttpResponse("Not Logged in as admin") + + def getDataFromConfigFile(request): try: val = request.session['userID'] @@ -1318,6 +1384,8 @@ def getDataFromConfigFile(request): data = json.loads(request.body) virtualHost = data['virtualHost'] + + filePath = installUtilities.Server_root_path + "/conf/vhosts/"+virtualHost+"/vhost.conf" configData = open(filePath,"r").read() @@ -1330,6 +1398,7 @@ def getDataFromConfigFile(request): + status = {"configstatus":1,"configData":configData} final_json = json.dumps(status) @@ -1357,6 +1426,8 @@ def saveConfigsToFile(request): virtualHost = data['virtualHost'] configData = data['configData'] + + filePath = installUtilities.Server_root_path + "/conf/vhosts/"+virtualHost+"/vhost.conf" vhost = open(filePath,"w") @@ -1366,6 +1437,9 @@ def saveConfigsToFile(request): vhost.close() + + + status = {"configstatus":1,"configData":configData} final_json = json.dumps(status) @@ -1393,27 +1467,38 @@ def getRewriteRules(request): data = json.loads(request.body) virtualHost = data['virtualHost'] + + + filePath = "/home/"+virtualHost+"/public_html/.htaccess" try: rewriteRules = open(filePath,"r").read() if len(rewriteRules) == 0: - status = {"rewriteStatus": 1, "error_message": "Rules file is currently empty"} + + + + status = {"rewriteStatus": 1, "error_message": "Rules file is currently empty"} final_json = json.dumps(status) return HttpResponse(final_json) + + + status = {"rewriteStatus": 1, "rewriteRules": rewriteRules} final_json = json.dumps(status) return HttpResponse(final_json) except IOError: + + + status = {"rewriteStatus": 1, "error_message": "none","rewriteRules":""} final_json = json.dumps(status) return HttpResponse(final_json) - except BaseException, msg: data_ret = {'rewriteStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) @@ -1436,6 +1521,9 @@ def saveRewriteRules(request): virtualHost = data['virtualHost'] rewriteRules = data['rewriteRules'] + + + virtualHostUtilities.addRewriteRules(virtualHost) filePath = "/home/" + virtualHost + "/public_html/.htaccess" @@ -1447,6 +1535,9 @@ def saveRewriteRules(request): vhost.close() + + + status = {"rewriteStatus":1} final_json = json.dumps(status) @@ -1477,6 +1568,9 @@ def saveSSL(request): cert = data['cert'] key = data['key'] + + + pathToStoreSSL = virtualHostUtilities.Server_root + "/conf/vhosts/" + "SSL-" + domain website = Websites.objects.get(domain=domain) @@ -1504,6 +1598,9 @@ def saveSSL(request): website.ssl = 1 website.save() + + + data_ret = {'sslStatus': 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -1532,6 +1629,9 @@ def saveSSL(request): website.ssl = 1 website.save() + + + data_ret = {'sslStatus': 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -1572,6 +1672,8 @@ def CreateWebsiteFromBackup(request): originalFile = "/home/backup/" + data['backupFile'] + + if not os.path.exists(originalFile): dir = data['dir'] path = "/home/backup/transfer-"+str(dir)+"/"+backupFile @@ -1607,11 +1709,16 @@ def CreateWebsiteFromBackup(request): check = 0 dbCheck = 0 + + + for items in data: if check == 0: if virtualHostUtilities.createDirectoryForVirtualHost(domain, adminEmail, phpSelection) != 1: numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 1, 'error_message': "Can not create configurations, see CyberCP main log file."} json_data = json.dumps(data_ret) @@ -1620,13 +1727,13 @@ def CreateWebsiteFromBackup(request): if virtualHostUtilities.createConfigInMainVirtualHostFile(domain) != 1: numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) + + data_ret = {"existsStatus": 1, 'createWebSiteStatus': 1, 'error_message': "Can not create configurations, see CyberCP main log file."} json_data = json.dumps(data_ret) return HttpResponse(json_data) - installUtilities.reStartLiteSpeed() - selectedPackage = Package.objects.get(packageName="Default") website = Websites(admin=admin, package=selectedPackage, domain=domain, adminEmail=adminEmail, @@ -1652,6 +1759,9 @@ def CreateWebsiteFromBackup(request): status.write("Accounts and DBs Created") status.close() + + + data_ret = {'createWebSiteStatus': 1, 'error_message': "None", "existsStatus": 0} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -1682,6 +1792,7 @@ def changePHP(request): installUtilities.reStartLiteSpeed() + data_ret = {'changePHP': 1,'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data)