commit
5123137bf0
|
@ -1,3 +1,2 @@
|
|||
.gitignore export-ignore
|
||||
.gitattributes export-ignore
|
||||
Makefile export-ignore
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
/nbproject
|
||||
/config.php
|
||||
/build
|
||||
/docs/_build
|
||||
|
|
72
CHANGELOG.md
72
CHANGELOG.md
|
@ -1,72 +0,0 @@
|
|||
# PHP Server Monitor
|
||||
|
||||
## Changelog
|
||||
|
||||
### v3.0.0 (released April 6, 2014)
|
||||
|
||||
* New module structure (not backwards compatible).
|
||||
* Added user login system with 2 user levels (administrator and regular user).
|
||||
* Added warning threshold option (set number of failed checks before server goes offline).
|
||||
* Added SMTP support.
|
||||
* Adding Bulgarian language file (thanks to Plamen Vasilev).
|
||||
* Added history tracking of server uptime.
|
||||
* Added history graphs of server uptime and latency (thanks to Jérôme Cabanis).
|
||||
* Added user profile page.
|
||||
* Status page is now default homepage.
|
||||
* Updated translations.
|
||||
* Date and time formats are taken from language file and localized per language (thanks to Jérôme Cabanis).
|
||||
* When checking a website, the updater will now follow 302 Location headers.
|
||||
* String/pattern search on websites did not work for websites with compression turned on.
|
||||
* The monitor now uses a custom user agent so it can be identified in access logs (Mozilla/5.0 (compatible; phpservermon/version; +http://www.phpservermonitor.org)).
|
||||
* Improved mobile compatibility.
|
||||
* Template directory restructured to correspond with module structure.
|
||||
* Switched from mysql_* to PDO.
|
||||
* Updated PHPMailer package to v5.2.6.
|
||||
* Fixed several XSS vulnerabilities.
|
||||
* Project website updated to <http://www.phpservermonitor.org>
|
||||
|
||||
|
||||
### v2.1.0 (released February 8, 2014)
|
||||
|
||||
* PHP 5.3+ required
|
||||
* Merged PHP Server Monitor Plus project by Luiz Alberto S. Ribeiro (<https://github.com/madeinnordeste/PHP-Server-Monitor-Plus>).
|
||||
* New layout (thanks to twitter bootstrap)
|
||||
* New install module.
|
||||
* Regex search on website has been added by Paul Feakins.
|
||||
* Support for mosms provider by Andreas Ek.
|
||||
* Support for Textmarketer provider by Perri Vardy-Mason.
|
||||
* Language files are now automatically detected, instead of a hardcoded list.
|
||||
* Adding Korean language file (thanks to Ik-Jun).
|
||||
* Adding Portuguese / Brazilian language file (thanks to Luiz Alberto S. Ribeiro).
|
||||
* Large status page by Michael Greenhill.
|
||||
* New config file (see install instructions in README).
|
||||
* Cronjob will be prevented from running multiple times at the same time (with a 10 mins timeout).
|
||||
|
||||
|
||||
### v2.0.1 (released October 29, 2011)
|
||||
|
||||
* Adding German language file (thanks to Brunbaur Herbert).
|
||||
* Adding French language file (thanks to David Ribeiro).
|
||||
* classes/sm/smUpdaterStatus.class.php: the curl option CURLOPT_CUSTOMREQUEST has been changed to CURLOPT_NOBODY.
|
||||
* Servers page: auto refresh can be configured at the config page.
|
||||
* Servers page: if the server is a website, the "Domain/Ip" field will be a link to the website.
|
||||
* New text message gateway: Clickatell.com (thanks to Simon).
|
||||
* If cURL is not installed, the install.php script will throw an error.
|
||||
* HTTP status codes 5xx will also be treated as error.
|
||||
|
||||
|
||||
### v2.0.0 (released October 19, 2009)
|
||||
|
||||
* Server type ("service" or "website").
|
||||
* Different types of notification.
|
||||
* New text message gateways.
|
||||
* Code rewrite.
|
||||
* New layout.
|
||||
* Check for updates function.
|
||||
|
||||
|
||||
### v1.0.1 (released September 18, 2008)
|
||||
|
||||
* log.php
|
||||
* tpl/log.tpl.html
|
||||
* Select order by clause used datetime field after DATE_FORMAT had been performed, resulting in a wrong list of log entries shown.
|
|
@ -0,0 +1,94 @@
|
|||
Changelog
|
||||
=========
|
||||
|
||||
v3.0.1 (released April 12, 2014)
|
||||
----------------
|
||||
|
||||
* #56: Minimum PHP version is PHP 5.3.7 (not PHP 5.3.0).
|
||||
* #58: Server order on users page now matches the order on servers page.
|
||||
* #59: Warning threshold ignored for notification trigger.
|
||||
* #57: Added Chinese translation.
|
||||
* #60: Added Italian translation.
|
||||
* #61: Added Spanish translation.
|
||||
* Sphinx is now used for documentation <http://sphinx.pocoo.org/>.
|
||||
|
||||
|
||||
v3.0.0 (released April 6, 2014)
|
||||
-------------------------------
|
||||
|
||||
* New module structure (not backwards compatible).
|
||||
* Added user login system with 2 user levels (administrator and regular user).
|
||||
* Added warning threshold option (set number of failed checks before server goes offline).
|
||||
* Added SMTP support.
|
||||
* Adding Bulgarian language file.
|
||||
* Added history tracking of server uptime.
|
||||
* Added history graphs of server uptime and latency.
|
||||
* Added user profile page.
|
||||
* Status page is now default homepage.
|
||||
* Updated translations.
|
||||
* Date and time formats are taken from language file and localized per language.
|
||||
* When checking a website, the updater will now follow 302 Location headers.
|
||||
* String/pattern search on websites did not work for websites with compression turned on.
|
||||
* The monitor now uses a custom user agent so it can be identified in access logs (Mozilla/5.0 (compatible; phpservermon/version; +http://www.phpservermonitor.org)).
|
||||
* Improved mobile compatibility.
|
||||
* Template directory restructured to correspond with module structure.
|
||||
* Switched from mysql_* to PDO.
|
||||
* Updated PHPMailer package to v5.2.6.
|
||||
* Fixed several XSS vulnerabilities.
|
||||
* Project website updated to <http://www.phpservermonitor.org>
|
||||
|
||||
|
||||
v2.1.0 (released February 8, 2014)
|
||||
----------------------------------
|
||||
|
||||
* PHP 5.3+ required
|
||||
* Merged PHP Server Monitor Plus project by Luiz Alberto S. Ribeiro (<https://github.com/madeinnordeste/PHP-Server-Monitor-Plus>).
|
||||
* New layout
|
||||
* New install module.
|
||||
* Regex search on website has been added.
|
||||
* Support for mosms provider.
|
||||
* Support for Textmarketer provider.
|
||||
* Language files are now automatically detected, instead of a hardcoded list.
|
||||
* Adding Korean language file.
|
||||
* Adding Portuguese / Brazilian language file.
|
||||
* Large status page.
|
||||
* New config file (see install instructions in README).
|
||||
* Cronjob will be prevented from running multiple times at the same time (with a 10 mins timeout).
|
||||
|
||||
|
||||
v2.0.1 (released October 29, 2011)
|
||||
----------------------------------
|
||||
|
||||
* Adding German language file.
|
||||
* Adding French language file.
|
||||
* classes/sm/smUpdaterStatus.class.php: the curl option CURLOPT_CUSTOMREQUEST has been changed to CURLOPT_NOBODY.
|
||||
* Servers page: auto refresh can be configured at the config page.
|
||||
* Servers page: if the server is a website, the "Domain/Ip" field will be a link to the website.
|
||||
* New text message gateway: Clickatell.com.
|
||||
* If cURL is not installed, the install.php script will throw an error.
|
||||
* HTTP status codes 5xx will also be treated as error.
|
||||
|
||||
|
||||
v2.0.0 (released October 19, 2009)
|
||||
----------------------------------
|
||||
|
||||
* Server type ("service" or "website").
|
||||
* Different types of notification.
|
||||
* New text message gateways.
|
||||
* Code rewrite.
|
||||
* New layout.
|
||||
* Check for updates function.
|
||||
|
||||
|
||||
v1.0.1 (released September 18, 2008)
|
||||
------------------------------------
|
||||
|
||||
* log.php
|
||||
* tpl/log.tpl.html
|
||||
* Select order by clause used datetime field after DATE_FORMAT had been performed, resulting in a wrong list of log entries shown.
|
||||
|
||||
|
||||
v1.0.0 (released July 16, 2008)
|
||||
-------------------------------
|
||||
|
||||
* Initial release
|
17
CREDITS
17
CREDITS
|
@ -1,17 +0,0 @@
|
|||
Credits
|
||||
=======
|
||||
|
||||
* Main development - Pepijn Over
|
||||
* History page, localisation & more - Jérôme Cabanis
|
||||
* Bugfixes & features - Perri Vardy-Mason
|
||||
* PHP Mailer - Brent R. Matzelle
|
||||
* German translation - Brunbaur Herbert
|
||||
* French translation - David Ribeiro
|
||||
* Korean translation - Ik-Jun
|
||||
* Brazilian translation - Luiz Alberto S. Ribeiro
|
||||
* Bulgarian translation - Plamen Vasilev
|
||||
* Bootstrap implementation - Luiz Alberto S. Ribeiro
|
||||
* Mosms implementation - Andreas Ek
|
||||
* Status page - Michael Greenhill
|
||||
* Javascript charts - jqPlot <http://www.jqplot.com>
|
||||
* Bootstrap layout - Twitter Bootstrap <http://getbootstrap.com>
|
10
Makefile
10
Makefile
|
@ -7,12 +7,22 @@ help:
|
|||
export:
|
||||
@echo 'Building release for tag $(tag) '
|
||||
mkdir -p ./build ./build/phpservermon
|
||||
rm -rf ./build/phpservermon/*
|
||||
git archive $(tag) | tar -xf - -C ./build/phpservermon/
|
||||
@echo 'Testing on syntax errors (thats all the automated testing your are going to get for now..) '
|
||||
find ./build/phpservermon -name "*.php" | xargs -I file php -l file
|
||||
find ./build/phpservermon -name "*.php" -exec sed -i "" "s/@package_version@/$(tag)/" {} \;
|
||||
@echo 'Building HTML documentation'
|
||||
cd ./build/phpservermon/docs; make BUILDDIR=. html; cd ../../../;
|
||||
@echo 'Cleaning up docs dir'
|
||||
rm -f ./build/phpservermon/Makefile
|
||||
rm -f ./build/phpservermon/docs/Makefile
|
||||
rm -f ./build/phpservermon/docs/make.bat
|
||||
rm -f ./build/phpservermon/docs/conf.py
|
||||
@echo 'Setting folder and file permissions'
|
||||
find ./build/phpservermon -type f | xargs chmod 0644
|
||||
find ./build/phpservermon -type d | xargs chmod 0755
|
||||
@echo 'Creating archives'
|
||||
cd ./build; zip -rq phpservermon-$(tag).zip ./phpservermon; cd ../;
|
||||
cd ./build; tar -pczf phpservermon-$(tag).tar.gz ./phpservermon; cd ../;
|
||||
rm -rf ./build/phpservermon
|
||||
|
|
106
README.md
106
README.md
|
@ -1,106 +0,0 @@
|
|||
# PHP Server Monitor
|
||||
|
||||
Version 3.0.0
|
||||
|
||||
PHP Server Monitor is a script that checks whether your websites and servers are up and running.
|
||||
It comes with a web based user interface where you can manage your services and websites,
|
||||
and you can manage users for each server with a mobile number and email address.
|
||||
|
||||
Features:
|
||||
|
||||
* Monitor services and websites (see below).
|
||||
* Email and SMS notifications.
|
||||
* View history graphs of uptime and latency.
|
||||
* User authentication with 2 levels (administrator and regular user).
|
||||
* Logs of connection errors, outgoing emails and text messages.
|
||||
* Easy cronjob implementation to automatically check your servers.
|
||||
|
||||
There are two different ways to monitor a server:
|
||||
|
||||
* Service
|
||||
|
||||
A connection will be made to the entered ip or domain, on the given port.
|
||||
This way you can check if certain services on your machine are still running.
|
||||
To check your IMAP service for example, enter port 143.
|
||||
|
||||
* Website
|
||||
|
||||
You can enter a link to a website, it will then use cURL to open the website and check the HTTP status code.
|
||||
If the HTTP status code is in the 4xx range, it means an error occurred and the website is not accessible to the public.
|
||||
You can also set a regular expression to match for content on the page itself.
|
||||
If the regular expression returns no matches, the website is considered down.
|
||||
In both cases the script will return a "status offline", and will start sending out notifications.
|
||||
|
||||
Each server has it's own settings regarding notification.
|
||||
You can choose for email notification or text message (SMS).
|
||||
The following SMS gateways are currently available:
|
||||
|
||||
* Mollie - <http://www.mollie.nl>
|
||||
* Spryng - <http://www.spryng.nl>
|
||||
* Inetworx - <http://www.inetworx.ch>
|
||||
* Clickatell - <https://www.clickatell.com>
|
||||
* Mosms - <http://www.mosms.com>
|
||||
* Textmarketer - <http://www.textmarketer.co.uk>
|
||||
|
||||
Please note: for these gateways you will need an account with sufficient credits.
|
||||
|
||||
|
||||
## Download
|
||||
|
||||
The latest version can be downloaded from <http://www.phpservermonitor.org/>.
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
* PHP 5.3+
|
||||
* PHP cURL package
|
||||
* PHP PDO mysql driver
|
||||
|
||||
|
||||
## Install
|
||||
|
||||
See INSTALL.md file.
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
The code is available from <https://github.com/phpservermon/phpservermon>.
|
||||
There is a master branch, which is stable and always reflects the latest release.
|
||||
The develop branch is used for ongoing development and should not be considered stable.
|
||||
If you would like to contribute a patch or feature, please fork the develop branch and send a pull request.
|
||||
|
||||
|
||||
### Changing the email or text message
|
||||
|
||||
Go to the folder "src/lang", open the language file that corresponds to the selected language
|
||||
(default is English ("en_US.lang.php")). Scroll all the way to the bottom until you spot this line:
|
||||
|
||||
'notifications' => array(
|
||||
|
||||
After that you will see the lines that hold the notification messages. For example:
|
||||
|
||||
'off_sms' => 'Server \'%LABEL%\' is DOWN: ip=%IP%, port=%PORT%. Error=%ERROR%',
|
||||
|
||||
The first part of this line, 'off_sms', is the name of the notification. You should not change this.
|
||||
The second part is the actual message. There are a few variables you can use in your message:
|
||||
|
||||
* %LABEL% The name of the server
|
||||
* %IP% The ip of the server
|
||||
* %PORT% The port of the server
|
||||
* %ERROR% This one only works for the off_* messages and contains the error returned by the monitor
|
||||
|
||||
|
||||
## License
|
||||
|
||||
PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
PHP Server Monitor is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
|
@ -0,0 +1,94 @@
|
|||
PHP Server Monitor
|
||||
==================
|
||||
|
||||
Version 3.0.1
|
||||
|
||||
PHP Server Monitor is a script that checks whether your websites and servers are up and running.
|
||||
It comes with a web based user interface where you can manage your services and websites,
|
||||
and you can manage users for each server with a mobile number and email address.
|
||||
|
||||
|
||||
Features:
|
||||
---------
|
||||
|
||||
* Monitor services and websites (see below).
|
||||
* Email and SMS notifications.
|
||||
* View history graphs of uptime and latency.
|
||||
* User authentication with 2 levels (administrator and regular user).
|
||||
* Logs of connection errors, outgoing emails and text messages.
|
||||
* Easy cronjob implementation to automatically check your servers.
|
||||
|
||||
There are two different ways to monitor a server:
|
||||
|
||||
* Service
|
||||
|
||||
A connection will be made to the entered ip or domain, on the given port.
|
||||
This way you can check if certain services on your machine are still running.
|
||||
To check your IMAP service for example, enter port 143.
|
||||
|
||||
* Website
|
||||
|
||||
You can enter a link to a website, it will then use cURL to open the website and check the HTTP status code.
|
||||
If the HTTP status code is in the 4xx range, it means an error occurred and the website is not accessible to the public.
|
||||
You can also set a regular expression to match for content on the page itself.
|
||||
If the regular expression returns no matches, the website is considered down.
|
||||
In both cases the script will return a "status offline", and will start sending out notifications.
|
||||
|
||||
Each server has its own settings regarding notification.
|
||||
You can choose for email notification or text message (SMS).
|
||||
The following SMS gateways are currently available:
|
||||
|
||||
* Mollie - <http://www.mollie.nl>
|
||||
* Spryng - <http://www.spryng.nl>
|
||||
* Inetworx - <http://www.inetworx.ch>
|
||||
* Clickatell - <https://www.clickatell.com>
|
||||
* Mosms - <http://www.mosms.com>
|
||||
* Textmarketer - <http://www.textmarketer.co.uk>
|
||||
|
||||
Please note: for these gateways you will need an account with sufficient credits.
|
||||
|
||||
|
||||
Download
|
||||
--------
|
||||
|
||||
The latest version can be downloaded from http://www.phpservermonitor.org/.
|
||||
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* Web server
|
||||
* MySQL database
|
||||
* PHP 5.3.7+
|
||||
* PHP cURL package
|
||||
* PHP PDO mysql driver
|
||||
|
||||
|
||||
Install
|
||||
-------
|
||||
|
||||
Please see docs/install.rst.
|
||||
In a nutshell: unzip, upload, run install.php, enjoy.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
The documentation is available in the docs folder or http://docs.phpservermonitor.org.
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
PHP Server Monitor is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PHP Server Monitor. If not, see http://www.gnu.org/licenses/.
|
|
@ -0,0 +1,177 @@
|
|||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/phpservermon.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/phpservermon.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/phpservermon"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/phpservermon"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
|
@ -0,0 +1,261 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# phpservermon documentation build configuration file, created by
|
||||
# sphinx-quickstart on Wed Apr 9 23:14:01 2014.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = []
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'PHP Server Monitor'
|
||||
copyright = u'2008-2014, Pepijn Over'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '3.0.1'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = version
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build', 'html', 'doctrees']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# Default highlighting language
|
||||
highlight_language = 'php'
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = []
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'phpservermondoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
('index', 'phpservermon.tex', u'phpservermon Documentation',
|
||||
u'Pepijn Over', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('index', 'phpservermon', u'phpservermon Documentation',
|
||||
[u'Pepijn Over'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'phpservermon', u'phpservermon Documentation',
|
||||
u'Pepijn Over', 'phpservermon', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
#texinfo_no_detailmenu = False
|
|
@ -0,0 +1,22 @@
|
|||
.. _copyright:
|
||||
|
||||
Copyright
|
||||
=========
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
Copyright (C) 2008-2014 Pepijn Over <pep_at_neanderthal-technology.com>
|
||||
|
||||
|
||||
PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
PHP Server Monitor is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
|
@ -0,0 +1,91 @@
|
|||
.. _credits:
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
|
||||
Credits
|
||||
+++++++
|
||||
|
||||
The following people have contributed to the development of PHP Server Monitor:
|
||||
|
||||
* Pepijn Over <pep_at_neanderthal-technology.com>
|
||||
|
||||
* Creator and project maintainer
|
||||
|
||||
* Jérôme Cabanis <https://github.com/Abawell>
|
||||
|
||||
* History graphs
|
||||
* Date localization
|
||||
* Mobile compatibility
|
||||
* Various fixes and improvements
|
||||
|
||||
* Perri Vardy-Mason <https://github.com/VeoPVM>
|
||||
|
||||
* Textmarketer SMS gateway
|
||||
* Various fixes and improvements
|
||||
|
||||
* Luiz Alberto S. Ribeiro <https://github.com/madeinnordeste>
|
||||
|
||||
* Bootstrap implementation
|
||||
* Portuguese Brazilian translation
|
||||
|
||||
* Michael Greenhill <https://github.com/doctorjbeam>
|
||||
|
||||
* Status page
|
||||
|
||||
* Andreas Ek <https://github.com/EkAndreas>
|
||||
|
||||
* Mosms SMS gateway
|
||||
|
||||
* Paul Feakins
|
||||
|
||||
* Website pattern / regular expression search
|
||||
|
||||
|
||||
Translators
|
||||
+++++++++++
|
||||
|
||||
The following people have contributed to the translation of PHP Server Monitor:
|
||||
|
||||
* Chinese
|
||||
|
||||
* manhere <https://github.com/manhere>
|
||||
|
||||
* Bulgarian
|
||||
|
||||
* Plamen Vasilev <https://github.com/PVasileff>
|
||||
|
||||
* French
|
||||
|
||||
* David Ribeiro
|
||||
* Jérôme Cabanis
|
||||
|
||||
* German
|
||||
|
||||
* Brunbaur Herbert
|
||||
|
||||
* Italian
|
||||
|
||||
* Marco Gargani
|
||||
|
||||
* Korean
|
||||
|
||||
* Ik-Jun
|
||||
|
||||
* Portuguese (Brazil)
|
||||
|
||||
* Luiz Alberto S. Ribeiro
|
||||
|
||||
* Spanish
|
||||
|
||||
* Klemens Häckel <http://clickdimension.wordpress.com/>
|
||||
|
||||
Vendors
|
||||
+++++++
|
||||
|
||||
The following libraries are being used by PHP Server Monitor:
|
||||
|
||||
* jqPlot - http://www.jqplot.com
|
||||
* Twitter Bootstrap - http://getbootstrap.com
|
||||
* PHP Mailer - https://github.com/PHPMailer/PHPMailer
|
|
@ -0,0 +1,11 @@
|
|||
.. _developers:
|
||||
|
||||
Developers
|
||||
==========
|
||||
|
||||
The code is available from https://github.com/phpservermon/phpservermon.
|
||||
There is a master branch, which is stable and always reflects the latest release.
|
||||
The develop branch is used for ongoing development and should not be considered stable.
|
||||
If you would like to contribute a patch or feature, please fork the develop branch and send a pull request.
|
||||
|
||||
More information can be found in the wiki at https://github.com/phpservermon/phpservermon/wiki.
|
|
@ -0,0 +1,49 @@
|
|||
.. _faq:
|
||||
|
||||
Frequently Asked Questions
|
||||
==========================
|
||||
|
||||
|
||||
Users
|
||||
+++++
|
||||
|
||||
What are the differences between the user levels?
|
||||
-------------------------------------------------
|
||||
|
||||
There are 2 user levels available: regular user and administrator.
|
||||
|
||||
Administrators:
|
||||
|
||||
* Manage servers.
|
||||
* Manage users.
|
||||
* Edit global configuration.
|
||||
|
||||
Regular users:
|
||||
|
||||
* View the status of their assigned servers.
|
||||
* View the history and logs of their assigned servers.
|
||||
* Run the updater on their assigned servers.
|
||||
|
||||
|
||||
Configuration
|
||||
+++++++++++++
|
||||
|
||||
How can I change the text of the email / SMS?
|
||||
---------------------------------------------
|
||||
|
||||
Go to the folder "src/lang", open the language file that corresponds to the selected language
|
||||
(default is English ("en_US.lang.php")). Scroll all the way to the bottom until you spot this line::
|
||||
|
||||
'notifications' => array(
|
||||
|
||||
After that you will see the lines that hold the notification messages. For example::
|
||||
|
||||
'off_sms' => 'Server \'%LABEL%\' is DOWN: ip=%IP%, port=%PORT%. Error=%ERROR%',
|
||||
|
||||
The first part of this line, 'off_sms', is the name of the notification. You should not change this.
|
||||
The second part is the actual message. There are a few variables you can use in your message:
|
||||
|
||||
* %LABEL% - The name of the server
|
||||
* %IP% - The ip of the server
|
||||
* %PORT% - The port of the server
|
||||
* %ERROR% - This one only works for the off_* messages and contains the error returned by the monitor
|
|
@ -0,0 +1,31 @@
|
|||
.. phpservermon documentation master file, created by
|
||||
sphinx-quickstart on Wed Apr 9 23:14:01 2014.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Welcome to the PHP Server Monitor documentation!
|
||||
================================================
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
intro
|
||||
requirements
|
||||
install
|
||||
faq
|
||||
developers
|
||||
credits
|
||||
copyright
|
||||
|
||||
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
|
|
@ -1,13 +1,19 @@
|
|||
# PHP Server Monitor
|
||||
.. _install:
|
||||
|
||||
## Install
|
||||
Installation
|
||||
============
|
||||
|
||||
### 1. Upload files
|
||||
Install
|
||||
+++++++
|
||||
|
||||
Upload files
|
||||
------------
|
||||
|
||||
The first step is to upload your files to your webserver where you can reach them.
|
||||
You can rename the folder of the server monitor without any problems.
|
||||
|
||||
### 2. Run install.php
|
||||
Run install.php
|
||||
---------------
|
||||
|
||||
You can now run the install.php script located in the root dir.
|
||||
|
||||
|
@ -15,7 +21,7 @@ The install script will guide you through setting up your configuration file and
|
|||
If for some reason you can not generate your configuration file, you can do it manually using the steps below.
|
||||
Rename the config.php.sample file to config.php, then open the config.php file with a plain text editor such as Notepad.
|
||||
In this file you need to change the database information, which is stored using php's define() function.
|
||||
To change these values correctly, only update the second parameter of the function.
|
||||
To change these values correctly, only update the second parameter of the function::
|
||||
|
||||
define('PSM_DB_HOST', 'db_host');
|
||||
define('PSM_DB_NAME', 'db_name');
|
||||
|
@ -26,13 +32,15 @@ For example: to change your username you should ONLY change the 'db\_user' part.
|
|||
Do NOT remove the quotes around your username as that will result in an error.
|
||||
After you have created the config.php, run the install.php again to create the database structure.
|
||||
|
||||
### 3. Configure your installation
|
||||
Configure your installation
|
||||
---------------------------
|
||||
|
||||
Open the main page of the server monitor, by simply navigating to index.php. In the menu on the top find "Config",
|
||||
it will open a page where you can change the necessary information for your tool.
|
||||
|
||||
|
||||
## Upgrade
|
||||
Upgrade
|
||||
+++++++
|
||||
|
||||
For a regular upgrade, follow these steps:
|
||||
|
||||
|
@ -41,26 +49,29 @@ For a regular upgrade, follow these steps:
|
|||
* Follow the steps
|
||||
* Enjoy
|
||||
|
||||
### From 2.0
|
||||
From 2.0
|
||||
--------
|
||||
|
||||
The structure of the project has changed quite a bit since 2.0, but if you have not made any local changes the upgrade is quite easy.
|
||||
The best thing to do is to replace all your current files with the new release, except for the config.inc.php file.
|
||||
The config file has actually been renamed since 2.0, but if you keep it there while upgrading the install script will use it to prefill your database information.
|
||||
The rest of the steps are identical to a regular upgrade (see above), except that you can remove the old config.inc.php file afterwards.
|
||||
|
||||
### From 2.1
|
||||
From 2.1
|
||||
--------
|
||||
|
||||
One of the new features introduced in 3.0 is a user authentication system. Because the users in previous versions do not have a password, after upgrading you would not be able to login.
|
||||
For that reason the upgrade script will ask you to create a new account during the upgrade, which you can then use to change the password for the existing accounts.
|
||||
If, for whatever reason this does not work, the upgrade script automatically changes the username of all existing users to their email addresses, which you could use for the forgot password screen.
|
||||
|
||||
## Setting up a cronjob
|
||||
Setting up a cronjob
|
||||
++++++++++++++++++++
|
||||
|
||||
In order to keep the server monitor up to date, the status updater has to run regularly.
|
||||
If you're running this on a linux machine, the easiest way is to add a cronjob.
|
||||
If it is your own server or you have shell access and permission to open the crontab, locate the "crontab" file
|
||||
(usually in /etc/crontab, but depends on distro). Open the file (vi /etc/crontab), and add the following
|
||||
(change the paths to match your installation directories) to run it every 15 minutes:
|
||||
(change the paths to match your installation directories) to run it every 15 minutes::
|
||||
|
||||
*/15 * * * * root /usr/bin/php /var/www/html/phpservermon/cron/status.cron.php
|
||||
|
||||
|
@ -71,9 +82,10 @@ The update script has been designed to prevent itself from running multiple time
|
|||
After that the script is assumed dead and the cronjob will run again.
|
||||
If you want to change the 10 minutes timeout, find the constant "PSM_CRON_TIMEOUT" in src/includes/psmconfig.inc.php.
|
||||
|
||||
## Troubleshooting
|
||||
Troubleshooting
|
||||
+++++++++++++++
|
||||
|
||||
If you have problems setting up or accessing your monitor and do not know why, enable debug mode to turn on error reporting.
|
||||
To enable debug mode, add the following line to your config.php file:
|
||||
To enable debug mode, add the following line to your config.php file::
|
||||
|
||||
define('PSM_DEBUG', true);
|
|
@ -0,0 +1,57 @@
|
|||
.. _intro:
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Summary
|
||||
+++++++
|
||||
|
||||
PHP Server Monitor is a script that checks whether your websites and servers are up and running.
|
||||
It comes with a web based user interface where you can manage your services and websites,
|
||||
and you can manage users for each server with a mobile number and email address.
|
||||
|
||||
|
||||
Features
|
||||
++++++++
|
||||
|
||||
* Monitor services and websites (see below).
|
||||
* Email and SMS notifications.
|
||||
* View history graphs of uptime and latency.
|
||||
* User authentication with 2 levels (administrator and regular user).
|
||||
* Logs of connection errors, outgoing emails and text messages.
|
||||
* Easy cronjob implementation to automatically check your servers.
|
||||
|
||||
|
||||
Servers
|
||||
-------
|
||||
There are two different ways to monitor a server:
|
||||
|
||||
* Service
|
||||
|
||||
A connection will be made to the entered ip or domain, on the given port.
|
||||
This way you can check if certain services on your machine are still running.
|
||||
To check your IMAP service for example, enter port 143.
|
||||
|
||||
* Website
|
||||
|
||||
You can enter a link to a website, it will then use cURL to open the website and check the HTTP status code.
|
||||
If the HTTP status code is in the 4xx range, it means an error occurred and the website is not accessible to the public.
|
||||
You can also set a regular expression to match for content on the page itself.
|
||||
If the regular expression returns no matches, the website is considered down.
|
||||
In both cases the script will return a "status offline", and will start sending out notifications.
|
||||
|
||||
|
||||
Notifications
|
||||
-------------
|
||||
Each server has its own settings regarding notification.
|
||||
You can choose for email notification or text message (SMS).
|
||||
The following SMS gateways are currently available:
|
||||
|
||||
* Mollie - http://www.mollie.nl
|
||||
* Spryng - http://www.spryng.nl
|
||||
* Inetworx - http://www.inetworx.ch
|
||||
* Clickatell - https://www.clickatell.com
|
||||
* Mosms - http://www.mosms.com
|
||||
* Textmarketer - http://www.textmarketer.co.uk
|
||||
|
||||
Please note: for these gateways you will need an account with sufficient credits.
|
|
@ -0,0 +1,242 @@
|
|||
@ECHO OFF
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set BUILDDIR=_build
|
||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
||||
set I18NSPHINXOPTS=%SPHINXOPTS% .
|
||||
if NOT "%PAPER%" == "" (
|
||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
||||
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
|
||||
)
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
if "%1" == "help" (
|
||||
:help
|
||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
||||
echo. html to make standalone HTML files
|
||||
echo. dirhtml to make HTML files named index.html in directories
|
||||
echo. singlehtml to make a single large HTML file
|
||||
echo. pickle to make pickle files
|
||||
echo. json to make JSON files
|
||||
echo. htmlhelp to make HTML files and a HTML help project
|
||||
echo. qthelp to make HTML files and a qthelp project
|
||||
echo. devhelp to make HTML files and a Devhelp project
|
||||
echo. epub to make an epub
|
||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
||||
echo. text to make text files
|
||||
echo. man to make manual pages
|
||||
echo. texinfo to make Texinfo files
|
||||
echo. gettext to make PO message catalogs
|
||||
echo. changes to make an overview over all changed/added/deprecated items
|
||||
echo. xml to make Docutils-native XML files
|
||||
echo. pseudoxml to make pseudoxml-XML files for display purposes
|
||||
echo. linkcheck to check all external links for integrity
|
||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "clean" (
|
||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
||||
del /q /s %BUILDDIR%\*
|
||||
goto end
|
||||
)
|
||||
|
||||
|
||||
%SPHINXBUILD% 2> nul
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.http://sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if "%1" == "html" (
|
||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "dirhtml" (
|
||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "singlehtml" (
|
||||
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pickle" (
|
||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the pickle files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "json" (
|
||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the JSON files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "htmlhelp" (
|
||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "qthelp" (
|
||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\phpservermon.qhcp
|
||||
echo.To view the help file:
|
||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\phpservermon.ghc
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "devhelp" (
|
||||
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "epub" (
|
||||
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latex" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdf" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf
|
||||
cd %BUILDDIR%/..
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdfja" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf-ja
|
||||
cd %BUILDDIR%/..
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "text" (
|
||||
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The text files are in %BUILDDIR%/text.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "man" (
|
||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "texinfo" (
|
||||
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "gettext" (
|
||||
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "changes" (
|
||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.The overview file is in %BUILDDIR%/changes.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "linkcheck" (
|
||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Link check complete; look for any errors in the above output ^
|
||||
or in %BUILDDIR%/linkcheck/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "doctest" (
|
||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Testing of doctests in the sources finished, look at the ^
|
||||
results in %BUILDDIR%/doctest/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "xml" (
|
||||
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The XML files are in %BUILDDIR%/xml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pseudoxml" (
|
||||
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
|
||||
goto end
|
||||
)
|
||||
|
||||
:end
|
|
@ -0,0 +1,10 @@
|
|||
.. _requirements:
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
* Web server
|
||||
* MySQL database
|
||||
* PHP 5.3.7+
|
||||
* PHP cURL package
|
||||
* PHP PDO mysql driver
|
|
@ -113,10 +113,9 @@ if(defined('PSM_INSTALL') && PSM_INSTALL) {
|
|||
die();
|
||||
}
|
||||
// config load OK, make sure database version is up to date
|
||||
$version_db = psm_get_conf('version');
|
||||
|
||||
if(version_compare(PSM_VERSION, $version_db, '>')) {
|
||||
die('Your database is for an older version, <a href="install.php">please click here</a> to update your database to the latest version.');
|
||||
$installer = new \psm\Util\Install\Installer($db);
|
||||
if($installer->isUpgradeRequired()) {
|
||||
die('Your database is for an older version and requires an upgrade, <a href="install.php">please click here</a> to update your database to the latest version.');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -153,7 +153,9 @@ function psm_load_conf() {
|
|||
}
|
||||
|
||||
/**
|
||||
* Update a config setting
|
||||
* Update a config setting.
|
||||
*
|
||||
* If the key does not exist yet it will be created.
|
||||
* @global \psm\Service\Database $db
|
||||
* @param string $key
|
||||
* @param string $value
|
||||
|
@ -161,11 +163,21 @@ function psm_load_conf() {
|
|||
function psm_update_conf($key, $value) {
|
||||
global $db;
|
||||
|
||||
$db->save(
|
||||
$result = $db->save(
|
||||
PSM_DB_PREFIX.'config',
|
||||
array('value' => $value),
|
||||
array('key' => $key)
|
||||
);
|
||||
// save returns the # rows updated, if 0, key doenst exist yet
|
||||
if($result === 0) {
|
||||
$db->save(
|
||||
PSM_DB_PREFIX . 'config',
|
||||
array(
|
||||
'key' => $key,
|
||||
'value' => $value,
|
||||
)
|
||||
);
|
||||
}
|
||||
$GLOBALS['sm_config'][$key] = $value;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
/**
|
||||
* Current PSM version
|
||||
*/
|
||||
define('PSM_VERSION', '3.0.0');
|
||||
define('PSM_VERSION', '3.0.1');
|
||||
|
||||
/**
|
||||
* URL to check for updates. Will not be checked if turned off on config page.
|
||||
|
@ -95,4 +95,4 @@ define('PSM_LOGIN_RESET_RUNTIME', 3600);
|
|||
/**
|
||||
* Number of seconds the cron is supposedly dead and we will run another cron anyway.
|
||||
*/
|
||||
define('PSM_CRON_TIMEOUT', 600);
|
||||
define('PSM_CRON_TIMEOUT', 600);
|
||||
|
|
|
@ -141,8 +141,8 @@ $sm_lang = array(
|
|||
'config' => array(
|
||||
'general' => 'Основни настройки',
|
||||
'language' => 'Език',
|
||||
'show_update' => 'Да проверява ли за нова версия всяка седмица?',
|
||||
'email_status' => 'Да се изпращат ли имейли?',
|
||||
'show_update' => 'Да проверява ли за нова версия всяка седмица',
|
||||
'email_status' => 'Да се изпращат ли имейли',
|
||||
'email_from_email' => 'Имейл, от който да се изпращат съобщенията',
|
||||
'email_from_name' => 'Име на изпращача',
|
||||
'email_smtp' => 'Активиране на SMTP',
|
||||
|
@ -151,7 +151,7 @@ $sm_lang = array(
|
|||
'email_smtp_username' => 'SMTP потребителско име',
|
||||
'email_smtp_password' => 'SMTP парола',
|
||||
'email_smtp_noauth' => 'Оставете празно за "без аутентикация"',
|
||||
'sms_status' => 'Да се изпращат ли SMS-и?',
|
||||
'sms_status' => 'Да се изпращат ли SMS-и',
|
||||
'sms_gateway' => 'Портал за изпращане на SMS-и',
|
||||
'sms_gateway_mosms' => 'Mosms',
|
||||
'sms_gateway_mollie' => 'Mollie',
|
||||
|
@ -175,19 +175,25 @@ $sm_lang = array(
|
|||
'alert_type_status' => 'Промяна на статуса',
|
||||
'alert_type_offline' => 'Офлайн',
|
||||
'alert_type_always' => 'Винаги',
|
||||
'log_status' => 'Статус на логовете<br/><div class="small">Ако е отметнато, системата ще записва всяка промяна:</div>',
|
||||
'log_email' => 'Да се пази ли лог на изпратените имейли от системата?',
|
||||
'log_sms' => 'Да се пази ли лог на изпратените SMS съобщения от системата?',
|
||||
'log_status' => 'Статус на логовете',
|
||||
'log_status_description' => 'Ако е отметнато, системата ще записва всяка промяна.',
|
||||
'log_email' => 'Да се пази ли лог на изпратените имейли от системата',
|
||||
'log_sms' => 'Да се пази ли лог на изпратените SMS съобщения от системата',
|
||||
'updated' => 'Настройките са обновени успешно.',
|
||||
'tab_email' => 'Имейл',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => 'логовете',
|
||||
'settings_email' => 'Имейл настройки',
|
||||
'settings_sms' => 'SMS настройки',
|
||||
'settings_notification' => 'Настройки на известията',
|
||||
'settings_log' => 'Настройки на логовете',
|
||||
'auto_refresh' => 'Автоматично опресняване',
|
||||
'auto_refresh_servers' =>
|
||||
'Автоматично опресняване на страницата<br/>'.
|
||||
'<div class="small">'.
|
||||
'Автоматично опресняване на страницата.<br/>'.
|
||||
'<span class="small">'.
|
||||
'Времето е в секунди, ако е 0 страницата няма да се обноява.'.
|
||||
'</div>',
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// За нов ред в имейл съобщението, моля използвайте тага <br/>
|
||||
'notifications' => array(
|
||||
|
|
|
@ -175,19 +175,25 @@ $sm_lang = array(
|
|||
'alert_type_status' => 'Status geändert',
|
||||
'alert_type_offline' => 'Offline',
|
||||
'alert_type_always' => 'Immer',
|
||||
'log_status' => 'Log Status<br/><div class="small">Ist der Log Status auf TRUE (ein Hacken) gesetzt, wird jeder Status protokolliert</div>',
|
||||
'log_status' => 'Log Status',
|
||||
'log_status_description' => 'Ist der Log Status auf TRUE (ein Hacken) gesetzt, wird jeder Status protokolliert.',
|
||||
'log_email' => 'Email Log per Script senden?',
|
||||
'log_sms' => 'SMS Log per Script senden?',
|
||||
'updated' => 'Die Einstellungen wurden gespeichert.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => 'Log',
|
||||
'settings_email' => 'Email',
|
||||
'settings_sms' => 'SMS Nachricht',
|
||||
'settings_notification' => 'Benachrichtigung',
|
||||
'settings_log' => 'Log',
|
||||
'auto_refresh' => 'Auto-refresh',
|
||||
'auto_refresh_servers' =>
|
||||
'Auto-refresh servers page<br/>'.
|
||||
'<div class="small">'.
|
||||
'<span class="small">'.
|
||||
'Time in seconds, if 0 the page won\'t refresh.'.
|
||||
'</div>',
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
|
|
|
@ -141,8 +141,8 @@ $sm_lang = array(
|
|||
'config' => array(
|
||||
'general' => 'General',
|
||||
'language' => 'Language',
|
||||
'show_update' => 'Check for new updates weekly?',
|
||||
'email_status' => 'Allow sending email?',
|
||||
'show_update' => 'Updates',
|
||||
'email_status' => 'Allow sending email',
|
||||
'email_from_email' => 'Email from address',
|
||||
'email_from_name' => 'Email from name',
|
||||
'email_smtp' => 'Enable SMTP',
|
||||
|
@ -151,7 +151,7 @@ $sm_lang = array(
|
|||
'email_smtp_username' => 'SMTP username',
|
||||
'email_smtp_password' => 'SMTP password',
|
||||
'email_smtp_noauth' => 'Leave blank for no authentication',
|
||||
'sms_status' => 'Allow sending text messages?',
|
||||
'sms_status' => 'Allow sending text messages',
|
||||
'sms_gateway' => 'Gateway to use for sending messages',
|
||||
'sms_gateway_mosms' => 'Mosms',
|
||||
'sms_gateway_mollie' => 'Mollie',
|
||||
|
@ -175,19 +175,25 @@ $sm_lang = array(
|
|||
'alert_type_status' => 'Status change',
|
||||
'alert_type_offline' => 'Offline',
|
||||
'alert_type_always' => 'Always',
|
||||
'log_status' => 'Log status<br/><div class="small">If log status is set to TRUE, the monitor will log the event whenever the Notification settings are passed</div>',
|
||||
'log_email' => 'Log emails sent by the script?',
|
||||
'log_sms' => 'Log text messages sent by the script?',
|
||||
'log_status' => 'Log status',
|
||||
'log_status_description' => 'If log status is set to TRUE, the monitor will log the event whenever the Notification settings are passed.',
|
||||
'log_email' => 'Log emails sent by the script',
|
||||
'log_sms' => 'Log text messages sent by the script',
|
||||
'updated' => 'The configuration has been updated.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => 'Log',
|
||||
'settings_email' => 'Email settings',
|
||||
'settings_sms' => 'Text message settings',
|
||||
'settings_notification' => 'Notification settings',
|
||||
'settings_log' => 'Log settings',
|
||||
'auto_refresh' => 'Auto-refresh',
|
||||
'auto_refresh_servers' =>
|
||||
'Auto-refresh servers page<br/>'.
|
||||
'<div class="small">'.
|
||||
'Auto-refresh servers page.<br/>'.
|
||||
'<span class="small">'.
|
||||
'Time in seconds, if 0 the page won\'t refresh.'.
|
||||
'</div>',
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
|
|
|
@ -0,0 +1,229 @@
|
|||
<?php
|
||||
/**
|
||||
* PHP Server Monitor
|
||||
* Monitor your servers and websites.
|
||||
*
|
||||
* This file is part of PHP Server Monitor.
|
||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @package phpservermon
|
||||
* @author Klemens Häckel <http://clickdimension.wordpress.com/>
|
||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||
* @version Release: @package_version@
|
||||
* @link http://www.phpservermonitor.org/
|
||||
**/
|
||||
|
||||
$sm_lang = array(
|
||||
'name' => 'Español - Spanish',
|
||||
'locale' => array('es_ES.UTF-8', 'es_ES', 'spanish', 'esp'),
|
||||
'system' => array(
|
||||
'title' => 'Server Monitor',
|
||||
'install' => 'Install',
|
||||
'action' => 'Acción',
|
||||
'save' => 'Guardar',
|
||||
'edit' => 'Modificar',
|
||||
'delete' => 'Eliminar',
|
||||
'deleted' => 'Registro eliminado',
|
||||
'date' => 'Fecha',
|
||||
'message' => 'Mensaje',
|
||||
'yes' => 'Si',
|
||||
'no' => 'No',
|
||||
'edit' => 'Modificar',
|
||||
'insert' => 'Insertar',
|
||||
'add_new' => 'Agregar nuevo',
|
||||
'update_available' => 'Hay una nueva versión ({version}) disponible en <a href="http://www.phpservermonitor.org" target="_blank">http://www.phpservermonitor.org</a>.',
|
||||
'back_to_top' => 'Back to top',
|
||||
'go_back' => 'Go back',
|
||||
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
|
||||
'short_day_format' => '%B %e',
|
||||
'long_day_format' => '%B %e, %Y',
|
||||
'yesterday_format' => 'Yesterday at %k:%M',
|
||||
'other_day_format' => '%A at %k:%M',
|
||||
'never' => 'Never',
|
||||
'hours_ago' => '%d hours ago',
|
||||
'an_hour_ago' => 'about an hour ago',
|
||||
'minutes_ago' => '%d minutes ago',
|
||||
'a_minute_ago' => 'about a minute ago',
|
||||
'seconds_ago' => '%d seconds ago',
|
||||
'a_second_ago' => 'a second ago',
|
||||
),
|
||||
'menu' => array(
|
||||
'config' => 'Configurar',
|
||||
'server' => 'Servidores',
|
||||
'server_log' => 'Log',
|
||||
'server_status' => 'Status',
|
||||
'server_update' => 'Actualizar',
|
||||
'user' => 'Usuarios',
|
||||
'help' => 'Ayuda',
|
||||
),
|
||||
'users' => array(
|
||||
'user' => 'Usuario',
|
||||
'name' => 'Nombre',
|
||||
'user_name' => 'Username',
|
||||
'password' => 'Password',
|
||||
'password_repeat' => 'Password repeat',
|
||||
'password_leave_blank' => 'Leave blank to keep unchanged',
|
||||
'level' => 'Level',
|
||||
'level_10' => 'Administrator',
|
||||
'level_20' => 'User',
|
||||
'level_description' => '<b>Administrators</b> have full access: they can manage servers, users and edit the global configuration.<br/><b>Users</b> can only view and run the updater for the servers that have been assigned to them.',
|
||||
'mobile' => 'Mobil',
|
||||
'email' => 'Email',
|
||||
'updated' => 'Usuario actualizado.',
|
||||
'inserted' => 'Usuario ingresado.',
|
||||
'profile' => 'Profile',
|
||||
'profile_updated' => 'Your profile has been updated.',
|
||||
'error_user_name_bad_length' => 'Usernames must be between 2 and 64 characters.',
|
||||
'error_user_name_invalid' => 'The username may only contain alphabetic characters (a-z, A-Z), digits (0-9) and underscores (_).',
|
||||
'error_user_name_exists' => 'The given username already exists in the database.',
|
||||
'error_user_email_bad_length' => 'Email addresses must be between 5 and 255 characters.',
|
||||
'error_user_email_invalid' => 'The email address is invalid.',
|
||||
'error_user_level_invalid' => 'The given user level is invalid.',
|
||||
'error_user_no_match' => 'The user could not be found in the database.',
|
||||
'error_user_password_invalid' => 'The entered password is invalid.',
|
||||
'error_user_password_no_match' => 'The entered passwords do not match.',
|
||||
),
|
||||
'log' => array(
|
||||
'title' => 'Registro Log',
|
||||
'type' => 'Tipo',
|
||||
'status' => 'Estado',
|
||||
'email' => 'Email',
|
||||
'sms' => 'SMS',
|
||||
),
|
||||
'servers' => array(
|
||||
'server' => 'Servidores',
|
||||
'label' => 'Titulo',
|
||||
'domain' => 'Domain/IP',
|
||||
'port' => 'Port',
|
||||
'type' => 'Tipo',
|
||||
'type_website' => 'Website',
|
||||
'type_service' => 'Service',
|
||||
'pattern' => 'Search string/pattern',
|
||||
'pattern_description' => 'If this pattern is not found on the website, the server will be marked offline. Regular expressions are allowed.',
|
||||
'last_check' => 'Ultima verificación',
|
||||
'last_online' => 'Última vez en línea',
|
||||
'monitoring' => 'Monitoreo',
|
||||
'send_email' => 'Email',
|
||||
'send_sms' => 'SMS',
|
||||
'updated' => 'Servidor arctualizado.',
|
||||
'inserted' => 'Servidor ingresado.',
|
||||
'latency' => 'Tiempo de respuesta',
|
||||
'latency_max' => 'Tiempo de respuesta (maximum)',
|
||||
'latency_min' => 'Tiempo de respuesta (minimum)',
|
||||
'latency_avg' => 'Tiempo de respuesta (average)',
|
||||
'year' => 'Year',
|
||||
'month' => 'Month',
|
||||
'week' => 'Week',
|
||||
'day' => 'Day',
|
||||
'hour' => 'Hour',
|
||||
'warning_threshold' => 'Warning threshold',
|
||||
'warning_threshold_description' => 'Number of failed checks required before it is marked offline.',
|
||||
'chart_last_week' => 'Last week',
|
||||
'chart_history' => 'History',
|
||||
// Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
|
||||
'chart_day_format' => '%Y-%m-%d',
|
||||
'chart_long_date_format' => '%Y-%m-%d %H:%M:%S',
|
||||
'chart_short_date_format' => '%m/%d %H:%M',
|
||||
'chart_short_time_format' => '%H:%M',
|
||||
),
|
||||
'config' => array(
|
||||
'general' => 'General',
|
||||
'language' => 'Idioma',
|
||||
'show_update' => 'Comprobar actualizaciones semanalmente ?',
|
||||
'email_status' => 'Habilitar envio de email ?',
|
||||
'email_from_email' => 'Email desde dirección',
|
||||
'email_from_name' => 'Email desde nombre',
|
||||
'email_smtp' => 'Enable SMTP',
|
||||
'email_smtp_host' => 'SMTP host',
|
||||
'email_smtp_port' => 'SMTP port',
|
||||
'email_smtp_username' => 'SMTP username',
|
||||
'email_smtp_password' => 'SMTP password',
|
||||
'email_smtp_noauth' => 'Leave blank for no authentication',
|
||||
'sms_status' => 'Habilitar envio de SMS ?',
|
||||
'sms_gateway' => 'SMS Gateway',
|
||||
'sms_gateway_mosms' => 'Mosms',
|
||||
'sms_gateway_mollie' => 'Mollie',
|
||||
'sms_gateway_spryng' => 'Spryng',
|
||||
'sms_gateway_inetworx' => 'Inetworx',
|
||||
'sms_gateway_clickatell' => 'Clickatell',
|
||||
'sms_gateway_textmarketer' => 'Textmarketer',
|
||||
'sms_gateway_username' => 'Gateway username',
|
||||
'sms_gateway_password' => 'Gateway password',
|
||||
'sms_from' => 'Número origen del SMS',
|
||||
'alert_type' => 'Cuando desea recibir notificaciones ?<br/>',
|
||||
'alert_type_description' => '<b>... Al cambiar el estado:</b> '.
|
||||
'p.ej. online -> offline o offline -> online.<br/>'.
|
||||
'<br /><b>Offline:</b> '.
|
||||
'Recibirá una notificación cuando el servidor va fuera de línea.'.
|
||||
'Se envia un sólo mensaje cuando el CronJob detecta la caída por primera vez.<br/>'.
|
||||
'<br><b>Siempre:</b> '.
|
||||
'Se le enviará una notificación, cada vez que se ejecuta el script o el CronJob, '.
|
||||
'aunqué el servicio puede haber estado fuera de línea por varias horas antes.',
|
||||
'alert_type_status' => 'Cambio de estado',
|
||||
'alert_type_offline' => 'Offline',
|
||||
'alert_type_always' => 'Siempre',
|
||||
'log_status' => 'Log status',
|
||||
'log_status_description' => 'Al setear TRUE (marcar) se protocolan todos los estados.',
|
||||
'log_email' => 'Enviar Log via email?',
|
||||
'log_sms' => 'Enviar Log via SMS ?',
|
||||
'updated' => 'Configuración guardada.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => 'Log',
|
||||
'settings_email' => 'Email',
|
||||
'settings_sms' => 'Mensaje SMS',
|
||||
'settings_notification' => 'Notificación',
|
||||
'settings_log' => 'Log',
|
||||
'auto_refresh' => 'Refrescar automáticamente página de servidores',
|
||||
'auto_refresh_servers' =>
|
||||
'Refrescar automáticamente página de servidores.<br/>'.
|
||||
'<span class="small">'.
|
||||
'Tiempo en segundos, indicar "0" para no actualizar.'.
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
'off_sms' => 'Servidor \'%LABEL%\' está fuera de línea: ip=%IP%, port=%PORT%. error=%ERROR%',
|
||||
'off_email_subject' => 'Importante: Servidor \'%LABEL%\' está fuera de línea',
|
||||
'off_email_body' => "No posible conectar al servidor:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>Error: %ERROR%<br/>Fecha: %DATE%",
|
||||
'on_sms' => 'Servidor \'%LABEL%\' ya está de nuevo funcionando en línea: ip=%IP%, port=%PORT%',
|
||||
'on_email_subject' => 'Importante: Servidor \'%LABEL%\' ya está de nuevo en línea',
|
||||
'on_email_body' => "Servidor '%LABEL%' ya está funcionando en línea de nuevo:<br/><br/>Servidor: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>Fecha: %DATE%",
|
||||
),
|
||||
'login' => array(
|
||||
'welcome_usermenu' => 'Welcome, %user_name%',
|
||||
'title_sign_in' => 'Please sign in',
|
||||
'title_forgot' => 'Forgot your password?',
|
||||
'title_reset' => 'Reset your password',
|
||||
'submit' => 'Submit',
|
||||
'remember_me' => 'Remember me',
|
||||
'login' => 'Login',
|
||||
'logout' => 'Logout',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'password_repeat' => 'Repeat password',
|
||||
'password_forgot' => 'Forgot password?',
|
||||
'password_reset' => 'Reset password',
|
||||
'password_reset_email_subject' => 'Reset your password for PHP Server Monitor',
|
||||
'password_reset_email_body' => 'Please use the following link to reset your password. Please note it expires in 1 hour.<br/><br/>%link%',
|
||||
'error_user_incorrect' => 'The provided username could not be found.',
|
||||
'error_login_incorrect' => 'The information is incorrect.',
|
||||
'error_login_passwords_nomatch' => 'The provided passwords do not match.',
|
||||
'error_reset_invalid_link' => 'The reset link you provided is invalid.',
|
||||
'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
|
||||
'success_password_reset' => 'Your password has been reset successfully. Please login.',
|
||||
),
|
||||
);
|
|
@ -174,19 +174,25 @@ $sm_lang = array(
|
|||
'alert_type_status' => 'Changement d\'état',
|
||||
'alert_type_offline' => 'Hors service',
|
||||
'alert_type_always' => 'Toujours',
|
||||
'log_status' => 'Etat des événements<br/><div class="small">Si l\'option est activée, un événement est enregistré chaque fois qu\'une notification a lieu</div>',
|
||||
'log_status' => 'Etat des événements',
|
||||
'log_status_description' => 'Si l\'option est activée, un événement est enregistré chaque fois qu\'une notification a lieu.',
|
||||
'log_email' => 'Enregistrer tout les emails envoyés',
|
||||
'log_sms' => 'Enregistrer tout les SMS envoyé',
|
||||
'log_sms' => 'Enregistrer tout les SMS envoyés',
|
||||
'updated' => 'La configuration a été mise à jour.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => 'Événements',
|
||||
'settings_email' => 'Configuration email',
|
||||
'settings_sms' => 'Configuration SMS',
|
||||
'settings_notification' => 'Configuration des notifications',
|
||||
'settings_log' => 'Configuration des événements',
|
||||
'auto_refresh' => 'Auto-rachaîchissement',
|
||||
'auto_refresh_servers' =>
|
||||
'Auto-rachaîchissement de la page serveurs<br/>'.
|
||||
'<div class="small">'.
|
||||
'Auto-rachaîchissement de la page serveurs.<br/>'.
|
||||
'<span class="small">'.
|
||||
'Temps en secondes. Si 0, la page n\'est pas rafraîchie.'.
|
||||
'</div>',
|
||||
'</span>',
|
||||
'seconds' => 'secondes',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
|
|
|
@ -0,0 +1,229 @@
|
|||
<?php
|
||||
/**
|
||||
* PHP Server Monitor
|
||||
* Monitor your servers and websites.
|
||||
*
|
||||
* This file is part of PHP Server Monitor.
|
||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @package phpservermon
|
||||
* @author Marco Gargani <http://www.marcogargani.it>
|
||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||
* @version Release: @package_version@
|
||||
* @link http://www.phpservermonitor.org/
|
||||
**/
|
||||
|
||||
$sm_lang = array(
|
||||
'name' => 'Italiano - Italian',
|
||||
'locale' => array('it_IT.UTF-8', 'it_IT', 'italian', 'ita'),
|
||||
'system' => array(
|
||||
'title' => 'Server Monitor',
|
||||
'install' => 'Install',
|
||||
'action' => 'Azione',
|
||||
'save' => 'Salva',
|
||||
'edit' => 'Modifica',
|
||||
'delete' => 'Elimina',
|
||||
'deleted' => 'L\'oggetto è stato eliminato',
|
||||
'date' => 'Data',
|
||||
'message' => 'Messaggio',
|
||||
'yes' => 'Sì',
|
||||
'no' => 'No',
|
||||
'edit' => 'Modifica',
|
||||
'insert' => 'Inserisci',
|
||||
'add_new' => 'Aggiungi Nuovo?',
|
||||
'update_available' => 'Un nuovo aggiornamento ({version}) è disponibile su <a href="http://www.phpservermonitor.org" target="_blank">http://www.phpservermonitor.org</a>.',
|
||||
'back_to_top' => 'Back to top',
|
||||
'go_back' => 'Go back',
|
||||
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
|
||||
'short_day_format' => '%B %e',
|
||||
'long_day_format' => '%B %e, %Y',
|
||||
'yesterday_format' => 'Yesterday at %k:%M',
|
||||
'other_day_format' => '%A at %k:%M',
|
||||
'never' => 'Never',
|
||||
'hours_ago' => '%d hours ago',
|
||||
'an_hour_ago' => 'about an hour ago',
|
||||
'minutes_ago' => '%d minutes ago',
|
||||
'a_minute_ago' => 'about a minute ago',
|
||||
'seconds_ago' => '%d seconds ago',
|
||||
'a_second_ago' => 'a second ago',
|
||||
),
|
||||
'menu' => array(
|
||||
'config' => 'Configurazione',
|
||||
'server' => 'Servers',
|
||||
'server_log' => 'Log',
|
||||
'server_status' => 'Status',
|
||||
'server_update' => 'Aggiorna',
|
||||
'user' => 'Utenti',
|
||||
'help' => 'Aiuto',
|
||||
),
|
||||
'users' => array(
|
||||
'user' => 'utente',
|
||||
'name' => 'Nome',
|
||||
'user_name' => 'Username',
|
||||
'password' => 'Password',
|
||||
'password_repeat' => 'Password repeat',
|
||||
'password_leave_blank' => 'Leave blank to keep unchanged',
|
||||
'level' => 'Level',
|
||||
'level_10' => 'Administrator',
|
||||
'level_20' => 'User',
|
||||
'level_description' => '<b>Administrators</b> have full access: they can manage servers, users and edit the global configuration.<br/><b>Users</b> can only view and run the updater for the servers that have been assigned to them.',
|
||||
'mobile' => 'Cellulare',
|
||||
'email' => 'Email',
|
||||
'updated' => 'Utente aggiornato.',
|
||||
'inserted' => 'Utente aggiunto.',
|
||||
'profile' => 'Profile',
|
||||
'profile_updated' => 'Your profile has been updated.',
|
||||
'error_user_name_bad_length' => 'Usernames must be between 2 and 64 characters.',
|
||||
'error_user_name_invalid' => 'The username may only contain alphabetic characters (a-z, A-Z), digits (0-9) and underscores (_).',
|
||||
'error_user_name_exists' => 'The given username already exists in the database.',
|
||||
'error_user_email_bad_length' => 'Email addresses must be between 5 and 255 characters.',
|
||||
'error_user_email_invalid' => 'The email address is invalid.',
|
||||
'error_user_level_invalid' => 'The given user level is invalid.',
|
||||
'error_user_no_match' => 'The user could not be found in the database.',
|
||||
'error_user_password_invalid' => 'The entered password is invalid.',
|
||||
'error_user_password_no_match' => 'The entered passwords do not match.',
|
||||
),
|
||||
'log' => array(
|
||||
'title' => 'Righe log',
|
||||
'type' => 'Tipo',
|
||||
'status' => 'Stato',
|
||||
'email' => 'Email',
|
||||
'sms' => 'SMS',
|
||||
),
|
||||
'servers' => array(
|
||||
'server' => 'Server',
|
||||
'label' => 'Nome',
|
||||
'domain' => 'Dominio/IP',
|
||||
'port' => 'Porta',
|
||||
'type' => 'Tipo',
|
||||
'type_website' => 'Website',
|
||||
'type_service' => 'Service',
|
||||
'pattern' => 'Search string/pattern',
|
||||
'pattern_description' => 'If this pattern is not found on the website, the server will be marked offline. Regular expressions are allowed.',
|
||||
'last_check' => 'Ultimo Controllo',
|
||||
'last_online' => 'Ultima volta Online',
|
||||
'monitoring' => 'Sotto Controllo',
|
||||
'send_email' => 'Invia Email',
|
||||
'send_sms' => 'Invia SMS',
|
||||
'updated' => 'Server aggiornato.',
|
||||
'inserted' => 'Server aggiunto.',
|
||||
'latency' => 'Tempo di risposta',
|
||||
'latency_max' => 'Tempo di risposta (maximum)',
|
||||
'latency_min' => 'Tempo di risposta (minimum)',
|
||||
'latency_avg' => 'Tempo di risposta (average)',
|
||||
'year' => 'Year',
|
||||
'month' => 'Month',
|
||||
'week' => 'Week',
|
||||
'day' => 'Day',
|
||||
'hour' => 'Hour',
|
||||
'warning_threshold' => 'Warning threshold',
|
||||
'warning_threshold_description' => 'Number of failed checks required before it is marked offline.',
|
||||
'chart_last_week' => 'Last week',
|
||||
'chart_history' => 'History',
|
||||
// Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
|
||||
'chart_day_format' => '%Y-%m-%d',
|
||||
'chart_long_date_format' => '%Y-%m-%d %H:%M:%S',
|
||||
'chart_short_date_format' => '%m/%d %H:%M',
|
||||
'chart_short_time_format' => '%H:%M',
|
||||
),
|
||||
'config' => array(
|
||||
'general' => 'Generale',
|
||||
'language' => 'Linguaggio',
|
||||
'show_update' => 'Controllare settimanalmente per nuovi aggiornamenti?',
|
||||
'email_status' => 'Permetti invio email?',
|
||||
'email_from_email' => 'Indirizzo Email mittente',
|
||||
'email_from_name' => 'Nome Email mittente',
|
||||
'email_smtp' => 'Enable SMTP',
|
||||
'email_smtp_host' => 'SMTP host',
|
||||
'email_smtp_port' => 'SMTP port',
|
||||
'email_smtp_username' => 'SMTP username',
|
||||
'email_smtp_password' => 'SMTP password',
|
||||
'email_smtp_noauth' => 'Leave blank for no authentication',
|
||||
'sms_status' => 'Permetti invio SMS?',
|
||||
'sms_gateway' => 'Gateway da usare per inviare SMS',
|
||||
'sms_gateway_mosms' => 'Mosms',
|
||||
'sms_gateway_mollie' => 'Mollie',
|
||||
'sms_gateway_spryng' => 'Spryng',
|
||||
'sms_gateway_inetworx' => 'Inetworx',
|
||||
'sms_gateway_clickatell' => 'Clickatell',
|
||||
'sms_gateway_textmarketer' => 'Textmarketer',
|
||||
'sms_gateway_username' => 'Nome Utente Gateway',
|
||||
'sms_gateway_password' => 'Password Gateway',
|
||||
'sms_from' => 'Numero di telefono del mittente',
|
||||
'alert_type' => 'Seleziona quando vuoi essere notificato.<br/>',
|
||||
'alert_type_description' => '<b>Cambio di Stato:</b> '.
|
||||
'Riceverai una notifica solo quando un server cambierà stato. Quindi da online -> offline oppure da offline -> online.<br/>'.
|
||||
'<br /><b>Offline:</b> '.
|
||||
'Riceverai una notifica solo quando un server andrà offline *SOLO LA PRIMA VOLTA*. Per esempio, '.
|
||||
'Se il tuo cronjob è impostato per controllare ogni 15 min e il tuo server andrà offline dalle 2AM alle 6AM. '.
|
||||
'Riceverai una sola notifica alle 2AM e nient\'altro.<br/>'.
|
||||
'<br><b>Sempre:</b> '.
|
||||
'Riceverai una notifica ogni volta che lo script troverà un server down anche se è stato offline per ore.',
|
||||
'alert_type_status' => 'Cambio di Stato',
|
||||
'alert_type_offline' => 'Offline',
|
||||
'alert_type_always' => 'Sempre',
|
||||
'log_status' => 'Stato Log',
|
||||
'log_status_description' => 'Se lo Stato Log è impostato su VERO, il monitor registrerà nel log gli eventi appena le notifiche verranno inviate.',
|
||||
'log_email' => 'Registra email inviate dallo script.',
|
||||
'log_sms' => 'Registra SMS inviati dallo script.',
|
||||
'updated' => 'La configurazione è stato aggiornata.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => 'Log',
|
||||
'settings_email' => 'Impostazioni Email',
|
||||
'settings_sms' => 'Impostazioni SMS',
|
||||
'settings_notification' => 'Impostazioni Notifiche',
|
||||
'settings_log' => 'Impostazioni Log',
|
||||
'auto_refresh' => 'Auto-Aggiorna pagina servers',
|
||||
'auto_refresh_servers' =>
|
||||
'Auto-Aggiorna pagina servers.<br/>'.
|
||||
'<span class="small">'.
|
||||
'Tempo in secondi, se impostato a 0 la pagina non si aggiornerà.'.
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
'off_sms' => 'Server \'%LABEL%\' è DOWN: ip=%IP%, porta=%PORT%. Errore=%ERROR%',
|
||||
'off_email_subject' => 'IMPORTANTE: Server \'%LABEL%\' è DOWN',
|
||||
'off_email_body' => "Impossibile connettersi al seguente server:<br/><br/>Server: %LABEL%<br/>IP: %IP%<br/>Porta: %PORT%<br/>Errore: %ERROR%<br/>Data: %DATE%",
|
||||
'on_sms' => 'Server \'%LABEL%\' è ATTIVO: ip=%IP%, porta=%PORT%',
|
||||
'on_email_subject' => 'IMPORTANTE: Server \'%LABEL%\' è ATTIVO',
|
||||
'on_email_body' => "Server '%LABEL%' è di nuovo attivo:<br/><br/>Server: %LABEL%<br/>IP: %IP%<br/>Porta: %PORT%<br/>Data: %DATE%",
|
||||
),
|
||||
'login' => array(
|
||||
'welcome_usermenu' => 'Welcome, %user_name%',
|
||||
'title_sign_in' => 'Please sign in',
|
||||
'title_forgot' => 'Forgot your password?',
|
||||
'title_reset' => 'Reset your password',
|
||||
'submit' => 'Submit',
|
||||
'remember_me' => 'Remember me',
|
||||
'login' => 'Login',
|
||||
'logout' => 'Logout',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'password_repeat' => 'Repeat password',
|
||||
'password_forgot' => 'Forgot password?',
|
||||
'password_reset' => 'Reset password',
|
||||
'password_reset_email_subject' => 'Reset your password for PHP Server Monitor',
|
||||
'password_reset_email_body' => 'Please use the following link to reset your password. Please note it expires in 1 hour.<br/><br/>%link%',
|
||||
'error_user_incorrect' => 'The provided username could not be found.',
|
||||
'error_login_incorrect' => 'The information is incorrect.',
|
||||
'error_login_passwords_nomatch' => 'The provided passwords do not match.',
|
||||
'error_reset_invalid_link' => 'The reset link you provided is invalid.',
|
||||
'success_password_forgot' => 'An email has been sent to you with information how to reset your password.',
|
||||
'success_password_reset' => 'Your password has been reset successfully. Please login.',
|
||||
),
|
||||
);
|
|
@ -173,19 +173,25 @@ $sm_lang = array(
|
|||
'alert_type_status' => '상태 변경',
|
||||
'alert_type_offline' => '오프라인',
|
||||
'alert_type_always' => '항상',
|
||||
'log_status' => '로그 상태<br/><div class="small">로그상태가 TRUE이면 알림설정이 통과할때마다 이벤트를 기록합니다.</div>',
|
||||
'log_status' => '로그 상태',
|
||||
'log_status_description' => '로그상태가 TRUE이면 알림설정이 통과할때마다 이벤트를 기록합니다.',
|
||||
'log_email' => '이메일로 로그를 전송하시겠습니까?',
|
||||
'log_sms' => 'SMS로 로그를 전송하시겠습니까?',
|
||||
'updated' => '설정이 수정되었습니다.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => '로그',
|
||||
'settings_email' => 'Email 설정',
|
||||
'settings_sms' => 'SMS 설정',
|
||||
'settings_notification' => '알림 설정',
|
||||
'settings_log' => '로그 설정',
|
||||
'auto_refresh' => 'Auto-refresh',
|
||||
'auto_refresh_servers' =>
|
||||
'서버페이지를 자동으로 새로고침<br/>'.
|
||||
'<div class="small">'.
|
||||
'서버페이지를 자동으로 새로고침.<br/>'.
|
||||
'<span class="small">'.
|
||||
'시간은 초(sec)로 설정을 하고, 0은 새로고침을 하지 않습니다.'.
|
||||
'</div>',
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
|
|
|
@ -122,16 +122,16 @@ $sm_lang = array(
|
|||
'latency' => 'Response tijd',
|
||||
'latency_max' => 'Latency (maximum)',
|
||||
'latency_min' => 'Latency (minimum)',
|
||||
'latency_avg' => 'Latency (average)',
|
||||
'year' => 'Year',
|
||||
'month' => 'Month',
|
||||
'latency_avg' => 'Latency (gemiddeld)',
|
||||
'year' => 'Jaar',
|
||||
'month' => 'Maand',
|
||||
'week' => 'Week',
|
||||
'day' => 'Day',
|
||||
'hour' => 'Hour',
|
||||
'day' => 'Dag',
|
||||
'hour' => 'Uur',
|
||||
'warning_threshold' => 'Warning threshold',
|
||||
'warning_threshold_description' => 'Aantal mislukte pogingen voordat de server als offline gemarkeerd wordt.',
|
||||
'chart_last_week' => 'Last week',
|
||||
'chart_history' => 'History',
|
||||
'chart_last_week' => 'Afgelopen week',
|
||||
'chart_history' => 'Geschiedenis',
|
||||
// Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
|
||||
'chart_day_format' => '%d-%m-%Y',
|
||||
'chart_long_date_format' => '%d-%m-%Y %H:%M:%S',
|
||||
|
@ -141,7 +141,7 @@ $sm_lang = array(
|
|||
'config' => array(
|
||||
'general' => 'Algemeen',
|
||||
'language' => 'Taal',
|
||||
'show_update' => 'Check for new updates weekly?',
|
||||
'show_update' => 'Controleer wekelijks voor updates?',
|
||||
'email_status' => 'Sta email berichten toe?',
|
||||
'email_from_email' => 'Email van adres',
|
||||
'email_from_name' => 'Email van naam',
|
||||
|
@ -165,28 +165,34 @@ $sm_lang = array(
|
|||
'alert_type' => 'Selecteer wanneer je een notificatie wilt.<br/>',
|
||||
'alert_type_description' => '<b>Status change:</b> '.
|
||||
'Je ontvangt alleen bericht wanneer een server van status verandert. Dus van online -> offline of offline -> online.<br/>'.
|
||||
'<br /><b>Offline</b>'.
|
||||
'<br /><b>Offline:</b> '.
|
||||
'Je ontvangt bericht wanneer een server offline gaat voor de *EERSTE KEER*. Bijvoorbeeld, '.
|
||||
'je cronjob draait iedere 15 min en je server gaat down om 01:00 en blijft offline tot 06:00. '.
|
||||
'Je krijgt 1 bericht om 01:00 en dat is het.<br/>'.
|
||||
'<br/><b>Altijd</b>'.
|
||||
'<br/><b>Altijd:</b> '.
|
||||
'Je krijgt een bericht elke keer dat het script draait en een website is down, ook al is de site al een paar uur offline.',
|
||||
'alert_type_status' => 'Status verandering',
|
||||
'alert_type_offline' => 'Offline',
|
||||
'alert_type_always' => 'Altijd',
|
||||
'log_status' => 'Log status<br/><div class="small">Als de log status op TRUE staat, zal de monitor een log aanmaken elke keer dat hij door de notificatie instellingen komt</div>',
|
||||
'log_status' => 'Log status',
|
||||
'log_status_description' => 'Als de log status aan staat, zal de monitor een log aanmaken elke keer dat hij door de notificatie instellingen komt.',
|
||||
'log_email' => 'Log emails verstuurd bij het script?',
|
||||
'log_sms' => 'Log sms berichten verstuurd bij het script?',
|
||||
'updated' => 'De configuratie is gewijzigd.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'SMS',
|
||||
'tab_log' => 'Log',
|
||||
'settings_email' => 'Email instellingen',
|
||||
'settings_sms' => 'SMS instellingen',
|
||||
'settings_notification' => 'Notificatie instellingen',
|
||||
'settings_log' => 'Log instellingen',
|
||||
'auto_refresh' => 'Auto-refresh',
|
||||
'auto_refresh_servers' =>
|
||||
'Auto-refresh servers pagina<br/>'.
|
||||
'<div class="small">'.
|
||||
'Auto-refresh servers pagina.<br/>'.
|
||||
'<span class="small">'.
|
||||
'Tijd in seconden, als de tijd 0 is wordt de pagina niet ververst.'.
|
||||
'</div>',
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
|
|
|
@ -175,19 +175,25 @@ $sm_lang = array(
|
|||
'alert_type_status' => 'Mudança de Status',
|
||||
'alert_type_offline' => 'Offline',
|
||||
'alert_type_always' => 'Sempre',
|
||||
'log_status' => 'Log status<br/><div class="small">Se o status de registro é definido como TRUE, o monitor irá registrar o evento sempre que as configurações de notificação forem passadas</div>',
|
||||
'log_status' => 'Log status',
|
||||
'log_status_description' => 'Se o status de registro é definido como TRUE, o monitor irá registrar o evento sempre que as configurações de notificação forem passadas.',
|
||||
'log_email' => 'Registrar no Log os envios de email feitos pelo script?',
|
||||
'log_sms' => 'Registrar no Log os envios de mensagens de texto feitos pelo script?',
|
||||
'updated' => 'A configuração foi atualizada.',
|
||||
'tab_email' => 'Email',
|
||||
'tab_sms' => 'Texto',
|
||||
'tab_log' => 'Logs',
|
||||
'settings_email' => 'Configuração de email',
|
||||
'settings_sms' => 'Configuração de mensagens de texto',
|
||||
'settings_notification' => 'Configuração de notificações',
|
||||
'settings_log' => 'Configuração de Logs',
|
||||
'auto_refresh' => 'Atualizar automaticamente',
|
||||
'auto_refresh_servers' =>
|
||||
'Atualizar automaticamente a página de servidores<br/>'.
|
||||
'<div class="small">'.
|
||||
'Atualizar automaticamente a página de servidores.<br/>'.
|
||||
'<span class="small">'.
|
||||
'Tempo em segundos, Se 0 a página não será atualizada.'.
|
||||
'</div>',
|
||||
'</span>',
|
||||
'seconds' => 'segundos',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
|
|
|
@ -0,0 +1,229 @@
|
|||
<?php
|
||||
/**
|
||||
* PHP Server Monitor
|
||||
* Monitor your servers and websites.
|
||||
*
|
||||
* This file is part of PHP Server Monitor.
|
||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @package phpservermon
|
||||
* @author manhere <https://github.com/manhere>
|
||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||
* @version Release: @package_version@
|
||||
* @link http://www.phpservermonitor.org/
|
||||
**/
|
||||
|
||||
$sm_lang = array(
|
||||
'name' => '中文 - Chinese',
|
||||
'locale' => array('zh_CN.UTF-8', 'zh_CN', 'chinese', 'chinese-cn'),
|
||||
'system' => array(
|
||||
'title' => 'Server Monitor',
|
||||
'install' => '安装',
|
||||
'action' => '操作',
|
||||
'save' => '保存',
|
||||
'edit' => '编辑',
|
||||
'delete' => '删除',
|
||||
'deleted' => '纪录已删除',
|
||||
'date' => '日期',
|
||||
'message' => '消息',
|
||||
'yes' => '是',
|
||||
'no' => '否o',
|
||||
'edit' => '编辑',
|
||||
'insert' => '插入',
|
||||
'add_new' => '添加',
|
||||
'update_available' => '发现新版本({version}) <a href="http://www.phpservermonitor.org" target="_blank">http://www.phpservermonitor.org</a>.',
|
||||
'back_to_top' => '返回顶部',
|
||||
'go_back' => '后退',
|
||||
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
|
||||
'short_day_format' => '%B %e',
|
||||
'long_day_format' => '%B %e, %Y',
|
||||
'yesterday_format' => '昨日 %k:%M',
|
||||
'other_day_format' => '%A %k:%M',
|
||||
'never' => '从未',
|
||||
'hours_ago' => '%d 小时前',
|
||||
'an_hour_ago' => '1小时前',
|
||||
'minutes_ago' => '%d 分钟前',
|
||||
'a_minute_ago' => '1分钟前',
|
||||
'seconds_ago' => '%d 秒前',
|
||||
'a_second_ago' => '刚刚',
|
||||
),
|
||||
'menu' => array(
|
||||
'config' => '设置',
|
||||
'server' => '服务器',
|
||||
'server_log' => '日志',
|
||||
'server_status' => '状态',
|
||||
'server_update' => '更新',
|
||||
'user' => '用户',
|
||||
'help' => '帮助',
|
||||
),
|
||||
'users' => array(
|
||||
'user' => '用户',
|
||||
'name' => '名称',
|
||||
'user_name' => '用户名',
|
||||
'password' => '密码',
|
||||
'password_repeat' => '重复密码',
|
||||
'password_leave_blank' => '留空为不修改',
|
||||
'level' => '等级',
|
||||
'level_10' => '超级管理员',
|
||||
'level_20' => '普通用户',
|
||||
'level_description' => '<b>超级管理员</b> 拥有所有权限: 管理服务器, 用户 以及修改设置.<br/><b>普通用户</b> 只能查看及更新自己名下所属的服务器.',
|
||||
'mobile' => '手机',
|
||||
'email' => '邮件',
|
||||
'updated' => '用户已更新.',
|
||||
'inserted' => '用户已添加.',
|
||||
'profile' => '个人资料',
|
||||
'profile_updated' => '个人资料已更新.',
|
||||
'error_user_name_bad_length' => '用户名长度必须为2-64个字符.',
|
||||
'error_user_name_invalid' => '用户名只允许使用字母 (a-z, A-Z), 数字 (0-9) 及下划线 (_).',
|
||||
'error_user_name_exists' => '该用户名已存在.',
|
||||
'error_user_email_bad_length' => '电子邮箱长度必须为5-255个字符.',
|
||||
'error_user_email_invalid' => '无效的邮箱地址.',
|
||||
'error_user_level_invalid' => '该用户等级无效.',
|
||||
'error_user_no_match' => '该用户名不存在.',
|
||||
'error_user_password_invalid' => '密码无效.',
|
||||
'error_user_password_no_match' => '密码不符.',
|
||||
),
|
||||
'log' => array(
|
||||
'title' => '日志概览',
|
||||
'type' => '类型',
|
||||
'status' => '状态',
|
||||
'email' => '邮件',
|
||||
'sms' => '短信',
|
||||
),
|
||||
'servers' => array(
|
||||
'server' => '服务器',
|
||||
'label' => '标签',
|
||||
'domain' => '域名/IP',
|
||||
'port' => '端口',
|
||||
'type' => '类型',
|
||||
'type_website' => '网站',
|
||||
'type_service' => '服务',
|
||||
'pattern' => '字符串/正则匹配',
|
||||
'pattern_description' => '如果在网站上未找到对应匹配内容, 则标记该网站为离线. 支持正则表达式.',
|
||||
'last_check' => '最后检查',
|
||||
'last_online' => '最后在线',
|
||||
'monitoring' => '监控中',
|
||||
'send_email' => '发送邮件',
|
||||
'send_sms' => '发送短信',
|
||||
'updated' => '服务器已更新.',
|
||||
'inserted' => '服务器已添加.',
|
||||
'latency' => '延迟',
|
||||
'latency_max' => '延迟(最大)',
|
||||
'latency_min' => '延迟(最小)',
|
||||
'latency_avg' => '延迟(平均)',
|
||||
'year' => '年',
|
||||
'month' => '月',
|
||||
'week' => '周',
|
||||
'day' => '日',
|
||||
'hour' => '小时',
|
||||
'warning_threshold' => '报警阈值',
|
||||
'warning_threshold_description' => '失败达到多少次数则标记为离线.',
|
||||
'chart_last_week' => '上周',
|
||||
'chart_history' => '更早',
|
||||
// Charts date format according jqPlot date format http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
|
||||
'chart_day_format' => '%Y-%m-%d',
|
||||
'chart_long_date_format' => '%Y-%m-%d %H:%M:%S',
|
||||
'chart_short_date_format' => '%m/%d %H:%M',
|
||||
'chart_short_time_format' => '%H:%M',
|
||||
),
|
||||
'config' => array(
|
||||
'general' => '通用',
|
||||
'language' => '语言',
|
||||
'show_update' => '每周检查更新?',
|
||||
'email_status' => '允许发送邮件?',
|
||||
'email_from_email' => '发件人地址',
|
||||
'email_from_name' => '发件人名称',
|
||||
'email_smtp' => '使用SMTP发送',
|
||||
'email_smtp_host' => 'SMTP主机',
|
||||
'email_smtp_port' => 'SMTP端口',
|
||||
'email_smtp_username' => 'SMTP用户名',
|
||||
'email_smtp_password' => 'SMTP密码',
|
||||
'email_smtp_noauth' => '留空为无验证',
|
||||
'sms_status' => '允许发送短信SMS?',
|
||||
'sms_gateway' => '短信SMS发送网关',
|
||||
'sms_gateway_mosms' => 'Mosms',
|
||||
'sms_gateway_mollie' => 'Mollie',
|
||||
'sms_gateway_spryng' => 'Spryng',
|
||||
'sms_gateway_inetworx' => 'Inetworx',
|
||||
'sms_gateway_clickatell' => 'Clickatell',
|
||||
'sms_gateway_textmarketer' => 'Textmarketer',
|
||||
'sms_gateway_username' => 'SMS网关用户名',
|
||||
'sms_gateway_password' => 'SMS网关密码',
|
||||
'sms_from' => '发信人电话号',
|
||||
'alert_type' => '如果想要收到提醒请选中此项.<br/>',
|
||||
'alert_type_description' => '<b>状态变化:</b> '.
|
||||
'服务器 online -> offline 或 offline -> online 的状态变化将会收到提醒.<br/>'.
|
||||
'<br /><b>离线状态:</b> '.
|
||||
'服务器首次发生离线状态将会收到提醒 ,如:'.
|
||||
'cronjob 设定为15分钟执行一次, 服务器从1:00-6:00一直处于当状态'.
|
||||
'那么你将于1:00首次发现脱机时收到一条提醒,之后不会重复提醒.<br/>'.
|
||||
'<br><b>总是提醒:</b> '.
|
||||
'每次脚本执行或站点离线(即使站点离线很久已提醒过)均发送提醒.',
|
||||
'alert_type_status' => '状态变化',
|
||||
'alert_type_offline' => '离线状态',
|
||||
'alert_type_always' => '总是提醒',
|
||||
'log_status' => '状态记录',
|
||||
'log_status_description' => '如果状态记录设置为开, 提醒发送时均会保存记录.',
|
||||
'log_email' => '记录脚本所发邮件?',
|
||||
'log_sms' => '记录脚本所发短信SMS?',
|
||||
'updated' => '设置已更新.',
|
||||
'tab_email' => '邮件发送设置',
|
||||
'tab_sms' => '短信发送设置',
|
||||
'tab_log' => '日志设置',
|
||||
'settings_email' => '邮件发送设置',
|
||||
'settings_sms' => '短信发送设置',
|
||||
'settings_notification' => '提醒设置',
|
||||
'settings_log' => '日志设置',
|
||||
'auto_refresh' => 'Auto-refresh',
|
||||
'auto_refresh_servers' =>
|
||||
'自动刷新服务器页.<br/>'.
|
||||
'<span class="small">'.
|
||||
'单位为秒, 设置为0则不自动刷新.'.
|
||||
'</span>',
|
||||
'seconds' => 'seconds',
|
||||
),
|
||||
// for newlines in the email messages use <br/>
|
||||
'notifications' => array(
|
||||
'off_sms' => '服务器 \'%LABEL%\' 宕机: ip=%IP%, port=%PORT%. Error=%ERROR%',
|
||||
'off_email_subject' => 'IMPORTANT: 服务器 \'%LABEL%\' 宕机',
|
||||
'off_email_body' => "无法连接到以下服务器:<br/><br/>服务器: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>错误: %ERROR%<br/>日期: %DATE%",
|
||||
'on_sms' => '服务器 \'%LABEL%\' 运行中: ip=%IP%, port=%PORT%',
|
||||
'on_email_subject' => 'IMPORTANT: 服务器 \'%LABEL%\' 运行中',
|
||||
'on_email_body' => "服务器 '%LABEL%' 恢复运行:<br/><br/>服务器: %LABEL%<br/>IP: %IP%<br/>Port: %PORT%<br/>日期: %DATE%",
|
||||
),
|
||||
'login' => array(
|
||||
'welcome_usermenu' => '欢迎, %user_name%',
|
||||
'title_sign_in' => '请登录',
|
||||
'title_forgot' => '忘记密码?',
|
||||
'title_reset' => '重设密码',
|
||||
'submit' => '提交',
|
||||
'remember_me' => '记住我',
|
||||
'login' => '登录',
|
||||
'logout' => '注销',
|
||||
'username' => '用户名',
|
||||
'password' => '密码',
|
||||
'password_repeat' => '重复密码',
|
||||
'password_forgot' => '忘记密码?',
|
||||
'password_reset' => '重设密码',
|
||||
'password_reset_email_subject' => '重设你的密码',
|
||||
'password_reset_email_body' => '点击以下链接重设密码. 链接1小时内有效.<br/><br/>%link%',
|
||||
'error_user_incorrect' => '该用户不存在.',
|
||||
'error_login_incorrect' => '登录信息不正确.',
|
||||
'error_login_passwords_nomatch' => '密码不符.',
|
||||
'error_reset_invalid_link' => '重设密码链接无效.',
|
||||
'success_password_forgot' => '密码重设邮件已发送.',
|
||||
'success_password_reset' => '密码重设成功.请登录.',
|
||||
),
|
||||
);
|
|
@ -398,7 +398,7 @@ abstract class AbstractController implements ControllerInterface {
|
|||
}
|
||||
|
||||
/**
|
||||
* Set the minimum required user level for this module
|
||||
* Set the minimum required user level for this controller
|
||||
* @param int $level
|
||||
* @return \psm\Module\AbstractController
|
||||
*/
|
||||
|
@ -408,7 +408,7 @@ abstract class AbstractController implements ControllerInterface {
|
|||
}
|
||||
|
||||
/**
|
||||
* Get the minimum required user level for this module
|
||||
* Get the minimum required user level for this controller
|
||||
* @return int
|
||||
*/
|
||||
public function getMinUserLevelRequired() {
|
||||
|
|
|
@ -180,6 +180,9 @@ class ConfigController extends AbstractController {
|
|||
$this->getTemplateId(),
|
||||
array(
|
||||
'subtitle' => psm_get_lang('menu', 'config'),
|
||||
'label_tab_email' => psm_get_lang('config', 'tab_email'),
|
||||
'label_tab_sms' => psm_get_lang('config', 'tab_sms'),
|
||||
'label_tab_log' => psm_get_lang('config', 'tab_log'),
|
||||
'label_settings_email' => psm_get_lang('config', 'settings_email'),
|
||||
'label_settings_sms' => psm_get_lang('config', 'settings_sms'),
|
||||
'label_settings_notification' => psm_get_lang('config', 'settings_notification'),
|
||||
|
@ -213,9 +216,12 @@ class ConfigController extends AbstractController {
|
|||
'label_alert_type_offline' => psm_get_lang('config', 'alert_type_offline'),
|
||||
'label_alert_type_always' => psm_get_lang('config', 'alert_type_always'),
|
||||
'label_log_status' => psm_get_lang('config', 'log_status'),
|
||||
'label_log_status_description' => psm_get_lang('config', 'log_status_description'),
|
||||
'label_log_email' => psm_get_lang('config', 'log_email'),
|
||||
'label_log_sms' => psm_get_lang('config', 'log_sms'),
|
||||
'label_auto_refresh' => psm_get_lang('config', 'auto_refresh'),
|
||||
'label_auto_refresh_servers' => psm_get_lang('config', 'auto_refresh_servers'),
|
||||
'label_seconds' => psm_get_lang('config', 'seconds'),
|
||||
'label_save' => psm_get_lang('system', 'save'),
|
||||
)
|
||||
);
|
||||
|
|
|
@ -38,4 +38,10 @@ interface ControllerInterface {
|
|||
* Initialize the module
|
||||
*/
|
||||
public function initialize();
|
||||
|
||||
/**
|
||||
* Get the minimum required user level for this controller
|
||||
* @return int
|
||||
*/
|
||||
public function getMinUserLevelRequired();
|
||||
}
|
||||
|
|
|
@ -88,9 +88,9 @@ class InstallController extends AbstractController {
|
|||
$errors = 0;
|
||||
|
||||
$phpv = phpversion();
|
||||
if(version_compare($phpv, '5.3.0', '<')) {
|
||||
if(version_compare($phpv, '5.3.7', '<')) {
|
||||
$errors++;
|
||||
$this->addMessage('PHP 5.3+ is required to run PHP Server Monitor.', 'error');
|
||||
$this->addMessage('PHP 5.3.7+ is required to run PHP Server Monitor.', 'error');
|
||||
} else {
|
||||
$this->addMessage('PHP version: ' . $phpv, 'success');
|
||||
}
|
||||
|
|
|
@ -55,20 +55,6 @@ class StatusController extends AbstractServerController {
|
|||
$offline = array();
|
||||
$online = array();
|
||||
|
||||
$tpl_data = array(
|
||||
'bg' => '#000000',
|
||||
'offline_bg' => '#a00000',
|
||||
'offline_fg' => '#f7cece',
|
||||
'online_bg' => '#53a000',
|
||||
'online_fg' => '#d8f7ce',
|
||||
'warning_bg' => '#FAA732',
|
||||
'warning_fg' => '#F3F3B1',
|
||||
'label_last_check' => psm_get_lang('servers', 'last_check'),
|
||||
'label_last_online' => psm_get_lang('servers', 'last_online'),
|
||||
'label_rtime' => psm_get_lang('servers', 'latency'),
|
||||
);
|
||||
$this->tpl->addTemplateData($this->getTemplateId(), $tpl_data);
|
||||
|
||||
foreach ($servers as $server) {
|
||||
if($server['active'] == 'no') {
|
||||
continue;
|
||||
|
@ -106,6 +92,9 @@ class StatusController extends AbstractServerController {
|
|||
$this->getTemplateId(),
|
||||
array(
|
||||
'subtitle' => psm_get_lang('menu', 'server_status'),
|
||||
'label_last_check' => psm_get_lang('servers', 'last_check'),
|
||||
'label_last_online' => psm_get_lang('servers', 'last_online'),
|
||||
'label_rtime' => psm_get_lang('servers', 'latency'),
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ class UserController extends AbstractController {
|
|||
|
||||
public function initialize() {
|
||||
$this->user_validator = new \psm\Util\User\UserValidator($this->user);
|
||||
$servers = $this->db->select(PSM_DB_PREFIX.'servers', null, array('server_id', 'label'));
|
||||
$servers = $this->db->select(PSM_DB_PREFIX.'servers', null, array('server_id', 'label'), '', "ORDER BY `active` ASC, `status` DESC, `label` ASC");
|
||||
// change the indexes to reflect their server ids
|
||||
foreach($servers as $server) {
|
||||
$this->servers[$server['server_id']] = $server;
|
||||
|
|
|
@ -63,6 +63,30 @@ class Installer {
|
|||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if an upgrade is required for the current version.
|
||||
* @return boolean
|
||||
* @see upgrade()
|
||||
*/
|
||||
public function isUpgradeRequired() {
|
||||
$version_db = psm_get_conf('version');
|
||||
|
||||
if(version_compare(PSM_VERSION, $version_db, '==')) {
|
||||
// version is up to date
|
||||
return false;
|
||||
}
|
||||
|
||||
// different DB version, check if the version requires any changes
|
||||
// @todo this is currently a manual check for each version, similar to upgrade().. not a clean way
|
||||
if(version_compare($version_db, '3.0.0', '<')) {
|
||||
return true;
|
||||
} else {
|
||||
// change database version to current version so this check won't be required next time
|
||||
psm_update_conf('version', PSM_VERSION);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a message to the logger callable (if any)
|
||||
* @param string|array $msg
|
||||
|
@ -229,6 +253,7 @@ class Installer {
|
|||
* Populate the tables and perform upgrades if necessary
|
||||
* @param string $version_from
|
||||
* @param string $version_to
|
||||
* @see isUpgradeRequired()
|
||||
*/
|
||||
public function upgrade($version_from, $version_to) {
|
||||
if(version_compare($version_from, '2.1.0', '<')) {
|
||||
|
@ -239,7 +264,7 @@ class Installer {
|
|||
// upgrade to 3.0.0
|
||||
$this->upgrade300();
|
||||
}
|
||||
$this->db->save(PSM_DB_PREFIX . 'config', array('value' => $version_to), array('key' => 'version'));
|
||||
psm_update_conf('version', $version_to);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -89,7 +89,7 @@ class Autorun {
|
|||
// notify the nerds if applicable
|
||||
$notifier->notify($server['server_id'], $status_old, $status_new);
|
||||
|
||||
// clean-up time!! archive all records older than 1 month
|
||||
// clean-up time!! archive all records older than 1 week
|
||||
$archiver->archive($server['server_id'], $cleanup_date);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,6 +67,8 @@ class StatusUpdater {
|
|||
* The function its all about. This one checks whether the given ip and port are up and running!
|
||||
* If the server check fails it will try one more time, depending on the $max_runs.
|
||||
*
|
||||
* Please note: if the server is down but has not met the warning threshold, this will return true
|
||||
* to avoid any "we are down" events.
|
||||
* @param int $server_id
|
||||
* @param int $max_runs how many times should the script recheck the server if unavailable. default is 2
|
||||
* @return boolean TRUE if server is up, FALSE otherwise
|
||||
|
@ -102,6 +104,10 @@ class StatusUpdater {
|
|||
'rtime' => $this->rtime,
|
||||
);
|
||||
|
||||
// log the uptime before checking the warning threshold,
|
||||
// so that the warnings can still be reviewed in the server history.
|
||||
psm_log_uptime($this->server_id, (int) $this->status_new, $this->rtime);
|
||||
|
||||
if($this->status_new == true) {
|
||||
// if the server is on, add the last_online value and reset the error threshold counter
|
||||
$save['status'] = 'on';
|
||||
|
@ -115,13 +121,13 @@ class StatusUpdater {
|
|||
// the server is offline but the error threshold has not been met yet.
|
||||
// so we are going to leave the status "on" for now while we are in a sort of warning state..
|
||||
$save['status'] = 'on';
|
||||
$this->status_new = true;
|
||||
} else {
|
||||
$save['status'] = 'off';
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->save(PSM_DB_PREFIX . 'servers', $save, array('server_id' => $this->server_id));
|
||||
psm_log_uptime($this->server_id, (int) $this->status_new, $this->rtime);
|
||||
|
||||
return $this->status_new;
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<!--%tpl_config-->
|
||||
<form class="form-horizontal well" action="index.php?mod=config&action=save" id="edit_config" method="post">
|
||||
<form class="form-horizontal" action="index.php?mod=config&action=save" id="edit_config" method="post">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#config-general" data-toggle="tab">{label_general}</a></li>
|
||||
<li><a href="#config-email" data-toggle="tab">{label_settings_email}</a></li>
|
||||
<li><a href="#config-sms" data-toggle="tab">{label_settings_sms}</a></li>
|
||||
<li><a href="#config-logging" data-toggle="tab">{label_settings_log}</a></li>
|
||||
<li><a href="#config-email" data-toggle="tab">{label_tab_email}</a></li>
|
||||
<li><a href="#config-sms" data-toggle="tab">{label_tab_sms}</a></li>
|
||||
<li><a href="#config-logging" data-toggle="tab">{label_tab_log}</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-content well">
|
||||
<div id="config-general" class="tab-pane active">
|
||||
<fieldset>
|
||||
<legend>{label_general}</legend>
|
||||
|
@ -22,15 +22,15 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="show_update">{label_show_update}</label>
|
||||
<div class="controls">
|
||||
<input type="checkbox" id="show_update" name="show_update[]" {show_update_checked} />
|
||||
<label class="checkbox" for="show_update"><input type="checkbox" id="show_update" name="show_update[]" {show_update_checked} /> {label_show_update}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="auto_refresh_servers">{label_auto_refresh_servers}</label>
|
||||
<label class="control-label" for="auto_refresh_servers">{label_auto_refresh}</label>
|
||||
<div class="controls">
|
||||
<input type="text" id="auto_refresh_servers" name="auto_refresh_servers" value="{auto_refresh_servers}" maxlength="10" /> seconds
|
||||
<input type="text" class="input-mini" id="auto_refresh_servers" name="auto_refresh_servers" value="{auto_refresh_servers}" maxlength="10" /> {label_seconds}
|
||||
<p class="help-block">{label_auto_refresh_servers}</p>
|
||||
</div>
|
||||
</div>
|
||||
<legend>{label_settings_notification}</legend>
|
||||
|
@ -42,9 +42,7 @@
|
|||
<option value="offline" {alert_type_selected_offline}>{label_alert_type_offline}</option>
|
||||
<option value="always" {alert_type_selected_always}>{label_alert_type_always}</option>
|
||||
</select>
|
||||
<p class="help-block">
|
||||
{label_alert_type_description}
|
||||
</p>
|
||||
<p class="help-block">{label_alert_type_description}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
|
@ -56,9 +54,8 @@
|
|||
<fieldset>
|
||||
<legend>{label_settings_email}</legend>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="email_status">{label_email_status}</label>
|
||||
<div class="controls">
|
||||
<input type="checkbox" id="email_status" name="email_status[]" {email_status_checked} />
|
||||
<label class="checkbox" for="email_status"><input type="checkbox" id="email_status" name="email_status[]" {email_status_checked} /> {label_email_status}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
@ -74,9 +71,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="email_smtp">{label_email_smtp}</label>
|
||||
<div class="controls">
|
||||
<input type="checkbox" id="email_smtp" name="email_smtp[]" {email_smtp_checked} />
|
||||
<label class="checkbox" for="email_smtp"><input type="checkbox" id="email_smtp" name="email_smtp[]" {email_smtp_checked} />{label_email_smtp}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
@ -107,10 +103,9 @@
|
|||
<fieldset>
|
||||
<legend>{label_settings_sms}</legend>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="sms_status">{label_sms_status}</label>
|
||||
<div class="controls">
|
||||
<input type="checkbox" id="sms_status" name="sms_status[]" {sms_status_checked} />
|
||||
</div>
|
||||
<label class="checkbox" for="sms_status"><input type="checkbox" id="sms_status" name="sms_status[]" {sms_status_checked} /> {label_sms_status}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="sms_gateway">{label_sms_gateway}</label>
|
||||
|
@ -152,23 +147,15 @@
|
|||
<fieldset>
|
||||
<legend>{label_settings_log}</legend>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="log_status">{label_log_status}</label>
|
||||
<div class="controls">
|
||||
<input type="checkbox" id="log_status" name="log_status[]" {log_status_checked} />
|
||||
</div>
|
||||
</div>
|
||||
<label class="checkbox"><input type="checkbox" id="log_status" name="log_status[]" {log_status_checked} /> {label_log_status}</label>
|
||||
<p class="help-block">{label_log_status_description}</p>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="log_email">{label_log_email}</label>
|
||||
<div class="controls">
|
||||
<input type="checkbox" id="log_email" name="log_email[]" {log_email_checked} />
|
||||
</div>
|
||||
</div>
|
||||
<label class="checkbox"><input type="checkbox" id="log_email" name="log_email[]" {log_email_checked} /> {label_log_email}</label>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="log_sms">{label_log_sms}</label>
|
||||
<div class="controls">
|
||||
<input type="checkbox" id="log_sms" name="log_sms[]" {log_sms_checked} />
|
||||
</div>
|
||||
</div>
|
||||
<label class="checkbox"><input type="checkbox" id="log_sms" name="log_sms[]" {log_sms_checked} /> {label_log_sms}</label>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<button class="btn btn-success" type="submit">{label_save}</button>
|
||||
</div>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{title}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, minimum-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
{auto_refresh}
|
||||
|
@ -46,7 +46,7 @@
|
|||
<!-- container -->
|
||||
<div class="container-fluid">
|
||||
<div class="page-header">
|
||||
<h1>{subtitle}<small> </small></h1>
|
||||
<h1>{subtitle}</h1>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
{html_sidebar}
|
||||
|
@ -72,15 +72,6 @@
|
|||
|
||||
<!--%tpl_main_menu-->
|
||||
<div class="nav-collapse">
|
||||
<ul class="nav pull-right">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{label_usermenu} <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="{url_profile}"><i class="icon-cog"></i> {label_profile}</a></li>
|
||||
<li><a href="{url_logout}"><i class="icon-off"></i> {label_logout}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav">
|
||||
<!--%tpl_repeat_menu-->
|
||||
<li class="{active}">
|
||||
|
@ -92,6 +83,18 @@
|
|||
<a href="http://www.phpservermonitor.org/" target="_blank">{label_help}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav pull-right">
|
||||
<li class="dropdown visible-desktop">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{label_usermenu} <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="{url_profile}"><i class="icon-cog"></i> {label_profile}</a></li>
|
||||
<li><a href="{url_logout}"><i class="icon-off"></i> {label_logout}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="hidden-desktop divider"></li>
|
||||
<li class="hidden-desktop"><a href="{url_profile}">{label_profile}</a></li>
|
||||
<li class="hidden-desktop"><a href="{url_logout}">{label_logout}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--%%tpl_main_menu-->
|
||||
|
||||
|
@ -102,6 +105,6 @@
|
|||
<!--%tpl_main_footer-->
|
||||
<footer class="footer">
|
||||
<p class="pull-right"><a href="#">{label_back_to_top}</a></p>
|
||||
<p><small>Powered by <a href="http://www.phpservermonitor.org/" target="_blank">PHP Server Monitor {version}</a>.<br/>{update_available}</small></p>
|
||||
<p class="powered"><small>Powered by <a href="http://www.phpservermonitor.org/" target="_blank">PHP Server Monitor {version}</a>.<br/>{update_available}</small></p>
|
||||
</footer>
|
||||
<!--%%tpl_main_footer-->
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<!--%tpl_server_status-->
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: {bg};
|
||||
padding: 30px 20px;
|
||||
background: black;
|
||||
}
|
||||
|
||||
.page-header {
|
||||
|
@ -18,57 +17,25 @@
|
|||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.entity {
|
||||
padding: 10px;
|
||||
box-shadow: 0px 0px 5px #666;
|
||||
border-radius: 3px;
|
||||
margin-bottom: 20px;
|
||||
width: 300px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.offline {
|
||||
width: 325px;
|
||||
float: left;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.offline .entity {
|
||||
background: {offline_bg};
|
||||
color: {offline_fg};
|
||||
border: 2px solid {offline_fg};
|
||||
}
|
||||
|
||||
.offline .entity.warning {
|
||||
background: {warning_bg};
|
||||
color: {warning_fg};
|
||||
border: 2px solid {warning_fg};
|
||||
}
|
||||
|
||||
.online .entity {
|
||||
background: {online_bg};
|
||||
color: {online_fg};
|
||||
border: 2px solid {online_fg};
|
||||
float: left;
|
||||
margin-right: 20px;
|
||||
}
|
||||
</style>
|
||||
<div class="offline">
|
||||
<div class="entity-container">
|
||||
<!--%tpl_repeat_servers_offline-->
|
||||
<div class="entity {class_warning}" onclick="window.location.href='{url_view}'">
|
||||
<h2>{label}</h2>
|
||||
<p>{label_last_online}: {last_online_nice}</p>
|
||||
<p>{label_last_check}: {last_checked_nice}</p>
|
||||
<div class="offline">
|
||||
<div class="entity {class_warning}" onclick="window.location.href='{url_view}'">
|
||||
<h2>{label}</h2>
|
||||
<p>{label_last_online}: {last_online_nice}</p>
|
||||
<p>{label_last_check}: {last_checked_nice}</p>
|
||||
</div>
|
||||
</div>
|
||||
<!--%%tpl_repeat_servers_offline-->
|
||||
{servers_offline}
|
||||
</div>
|
||||
<div class="online">
|
||||
<!--%tpl_repeat_servers_online-->
|
||||
<div class="entity" onclick="window.location.href='{url_view}'">
|
||||
<h2>{label}</h2>
|
||||
<p>{label_last_online}: {last_checked_nice}</p>
|
||||
<p>{label_rtime}: {rtime}s</p>
|
||||
<div class="online">
|
||||
<div class="entity" onclick="window.location.href='{url_view}'">
|
||||
<h2>{label}</h2>
|
||||
<p>{label_last_online}: {last_checked_nice}</p>
|
||||
<p>{label_rtime}: {rtime}s</p>
|
||||
</div>
|
||||
</div>
|
||||
<!--%%tpl_repeat_servers_online-->
|
||||
{servers_online}
|
||||
|
|
|
@ -1,7 +1,14 @@
|
|||
body {
|
||||
padding-top: 70px;
|
||||
padding-top: 40px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
-webkit-text-size-adjust: none;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: moz-none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.navbar-fixed-top {
|
||||
position: fixed;
|
||||
|
@ -15,6 +22,93 @@ body {
|
|||
margin: 5px 0;
|
||||
min-width: 100px;
|
||||
}
|
||||
.navbar .nav .divider {
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
background-color: #444;
|
||||
}
|
||||
|
||||
.powered {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tab-content {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.nav-tabs {
|
||||
margin-left: 10px;
|
||||
margin-bottom: 0;
|
||||
border: 0;
|
||||
}
|
||||
.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
|
||||
background-color: whiteSmoke;
|
||||
}
|
||||
.nav-tabs > li > a, .nav-tabs > li > a:hover {
|
||||
padding: 8px 8px;
|
||||
}
|
||||
|
||||
legend {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.form-horizontal .control-label {
|
||||
width: 180px;
|
||||
}
|
||||
.form-horizontal .controls {
|
||||
margin-left: 190px;
|
||||
}
|
||||
.form-horizontal .form-actions {
|
||||
padding-left: 190px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.form-horizontal label {
|
||||
font-weight: bold;
|
||||
}
|
||||
.help-block {
|
||||
font-style: italic;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.offline, .online {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
max-width: 320px;
|
||||
}
|
||||
.entity {
|
||||
text-align: left;
|
||||
padding: 10px;
|
||||
box-shadow: 0px 0px 5px #666;
|
||||
border-radius: 3px;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.offline .entity {
|
||||
background: #a00000;
|
||||
color: #f7cece;
|
||||
border: 2px solid #f7cece;
|
||||
}
|
||||
.offline .entity.warning {
|
||||
background: #FAA732;
|
||||
color: #F3F3B1;
|
||||
border: 2px solid #F3F3B1;
|
||||
}
|
||||
.online .entity {
|
||||
background: #53a000;
|
||||
color: #d8f7ce;
|
||||
border: 2px solid #d8f7ce;
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 980px) {
|
||||
.hidden-desktop {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 979px) {
|
||||
.sidebar-nav .nav-list {
|
||||
padding: 0;
|
||||
|
@ -26,7 +120,39 @@ body {
|
|||
float: left;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.navbar .brand {
|
||||
margin-left: -10px;
|
||||
}
|
||||
.visible-desktop {
|
||||
display: none !important;
|
||||
}
|
||||
.tab-content {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479px) {
|
||||
.container-fluid {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.form-horizontal .controls {
|
||||
margin-left: 0px;
|
||||
}
|
||||
.form-horizontal .form-actions {
|
||||
padding-left: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.entity-container {
|
||||
text-align: center;
|
||||
}
|
||||
.entity {
|
||||
margin: 0 10px 20px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
body.install{
|
||||
padding-top:20px;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue