Wifidog认证服务器常见错误提示

execSql() : An error occured while executing the following SQL query :
SELECT node_id, last_heartbeat_ip from nodes WHERE last_heartbeat_ip='1.2.3.4' ORDER BY last_heartbeat_timestamp DESC

Error message :
ERROR: relation "nodes" does not exist

execSqlUniqueRes() : An error occured while executing the following SQL query :
SELECT network_id FROM networks WHERE is_default_network=TRUE ORDER BY creation_date LIMIT 1

Error message :
ERROR: relation "networks" does not exist
: Network::getDefaultNetwork: Fatal error: Unable to find the default network! in /var/www/wifidog-auth/wifidog/classes/Network.php on line 101

Postgresql的数据库连接正常和wifidog已存在的数据库,但是最初的SQL结构和数据丢失。


: Unable to connect to database on localhost in /usr/local/apache2/htdocs/wifidog-auth/wifidog/classes/AbstractDbPostgres.php on line 71
  • Wifidog未在Postgresql创建的数据库
  • 与Postgresql数据库连接失败:错误配置或许可
    Install.php可以帮你解决这一问题并提供更多相关信息。

Le systeme tente de mettre a jour le schema de la base de donnees.
Preparing SQL statements to update schema to version 34

execSqlUpdate(): SQL Query :

BEGIN;


UPDATE schema_info SET value='34' WHERE tag='schema_version';
ALTER TABLE node_stakeholders DROP CONSTRAINT "$1";
ALTER TABLE node_stakeholders ADD CONSTRAINT nodes_fkey FOREIGN KEY (node_id) REFERENCES nodes(node_id) ON UPDATE CASCADE ON DELETE CASCADE;
COMMIT;
VACUUM ANALYZE;

0 rows affected by the SQL query.
Elapsed time for query execution : 0,847244 second(s)

execSqlUpdate(): 0 rows affected by the SQL query.

你的数据库结构没有更新,wifidog门户检测到这个问题,将结构更新到最新版本。如果进行此操作,刷新浏览器时这个提示就会消失。如果再看到这个提示并且又没有更新源代码,结构更新操作可能会失败。


Warning in /classes/Locale.php : Unable to setlocale() to en, return value: , current locale: 
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;
LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C
Warning in /classes/Locale.php : Unable to setlocale() to en, return value: , current locale: 
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;
LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C
Warning in /classes/Locale.php : Unable to setlocale() to en, return value: , current locale: 
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;
LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C
Warning in /classes/Locale.php : Unable to setlocale() to en, return value: , current locale: 
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;
LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C

这个“locale”取决于服务器的配置。在大多数Unix/Linux系统中,可能会用locale –a来列出所有服务器可得语言环境。许多系统对每个国家都有特定的语言环境,所以你需要更改config.php或者local.config.php。例如:将fr改为fr_CA或fr_FR,将en改为en_US或en_GB。


HTML pages contain strange characters ....

修改你的Apache服务器配置文件,并将“AddDefaultCharset on”更改为“AddDefaultCharset utf-8”。


运行install.php脚本的错误提示
关闭错误日志,你可以看到空白页面。
如果你用以下命令打开错误日志:

here's how to turn on php error message display so you can debug problem.

In php.ini (in FC5 most likely located at /etc/php.ini) enable the

error_reporting = E_ALL 
display_errors = On

This will display any error encounter in you browser window. 

错误提示可能是这样的:

Postgresql database connection :
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: Ident authentication failed for user
"wifidog" in /var/www/html/wifidog/install.php on line 1062

这个问题与PostgreSQL安全有关。比较理想的情况是研究一下PGSQL调用的安全系统,但这也会解决这个问题。需要注意的是是否也可能会在不同系统中产生安全问题,这取决于数据库的配置。
编辑pg_hba.conf文件

#TYPE     DATABASE          USER            IP-ADDRESS             SUBNET MASK               METHOD
host      wifidog           wifidog         192.168.0.11           255.255.255.0             md5

当IPF 地址与设备的IP地址吻合时,连接到PGSQL服务器。
重启PGSQL服务器进行新设置。

本文章由 http://www.wifidog.pro/2015/03/12/Wifidog%E8%AE%A4%E8%AF%81%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E6%8F%90%E7%A4%BA.html 整理编辑,转载请注明出处

标签: wifidog原理, wifidog认证, wifidog流程, wifidog配置, wifidog分析