一. 所需環境
phpstudy8.1 我本地localhost是php7.3, mysql8.0,nginx1.16(emmm 沒看文檔 心塞---- 後面各種問題)
切換環境 php5.6.9 mysql5.7.26 nginx1.16
二. 開始安裝
下載testlink源碼包 http://www.testlink.org/
解壓壓縮包放到 www目錄 改名爲tetstink
修改Testlink配置文件(config.inc.php)
1)$tlCfg->config_check_warning_mode = 'FILE';改爲$tlCfg->config_check_warning_mode = 'SILENT';
2)$tlCfg->default_language = 'en_GB';改爲$tlCfg->default_language = 'zh_CN';
訪問此項目 http://localhost/testlink/install/index.php 選擇重新安裝 ---> 同意協議 繼續安裝
檢測環境
看了下源碼
max_execution_time >= 120
session.gc_maxlifetime > 1800 就可以了
memory_limit >= 64M (如果沒報錯就不用改)
修改php.ini文件gc_maxlifetime
(1)session.gc_maxlifetime = 1440改爲session.gc_maxlifetime = 1860
(2)max_execution_time=30改爲max_execution_time=120
修改php.ini後記得重啓
開啓這GD LDAP JSON 三個擴展就行了
Checking GD Graphic library | OK |
Checking LDAP library | OK |
Checking JSON library | OK |
看下log文件 (testlink/logs/userxxx.log)
CREATE TABLE `attachments` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`fk_id` varchar(10) NOT NULL DEFAULT '0',
`fk_table` varchar(250) DEFAULT '',
`title` varchar(250) DEFAULT '',
`description` varchar(250) DEFAULT '',
`file_name` varchar(250) NOT NULL DEFAULT '',
`file_path` varchar(250) DEFAULT '',
`file_size` int(11) NOT NULL DEFAULT '0',
`file_type` varchar(250) NOT NULL DEFAULT '',
`date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`content` longblob,
`compression_type` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query failed: errorcode[1067]
errormsg:Invalid default value for 'date_added'
1、原因
網上查詢說與NO_ZERO_IN_DATE和NO_ZERO_DATE有關係
1)、NO_ZERO_IN_DATE:
在嚴格模式,不接受月或日部分爲0的日期。如果使用IGNORE選項,我們爲類似的日期插入'0000-00-00'。在非嚴格模式,可以接受該日期,但會生成警告。
2)、NO_ZERO_DATE:
在嚴格模式,不要將 '0000-00-00'做爲合法日期。你仍然可以用IGNORE選項插入零日期。在非嚴格模式,可以接受該日期,但會生成警告
2、驗證NO_ZERO_IN_DATE和NO_ZERO_DATE
在mysql執行show variables like 'sql_mode';
結果:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
果然裏面有NO_ZERO_IN_DATE,NO_ZERO_DATE
3、解決辦法
修改my.cnf中的sql_mode值,如果沒有sql_mode,就自己添加,添加時去掉NO_ZERO_IN_DATE,NO_ZERO_DATE這2個值,切記寫在[mysqld]的下面不然不起作用,如下
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
4 、修改完重啓mysq服務