序章

序1:TestLink和TestLink-API-Python-client

  • 目前TestLink的最新版本是1.9.19
  • TestLink-API-Python-client支持的TestLink最高版本是1.9.17
  • 如果后期要使用TestLink-API-Python-client和jenkins交互,那么TestLink只能选择1.9.17版本

序2:TestLink部署基本要求

TestLink 1.9.19 环境依赖包括:

依赖项 版本要求
web服务 Apache 2.x
PHP 5.5以上,如果使用PHP 7.2.x会更好
数据库 MySQL 5.7.x,MariaDB 10.1.x,Postgres 9.x,MS-SQL 201x
浏览器 Firefox,Chrome

一、安装Apache

1.1、安装Apache

apt-get update
apt-get install apache2

过程如下:

root@duke:~# apt-get update
Get:1 file:/var/cuda-repo-9-0-local InRelease
Ign:1 file:/var/cuda-repo-9-0-local InRelease
Get:2 file:/var/cuda-repo-9-0-local Release [574 B]
Get:2 file:/var/cuda-repo-9-0-local Release [574 B]
Hit:3 http://mirrors.aliyun.com/ubuntu xenial InRelease
Hit:5 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease
Get:6 http://mirrors.aliyun.com/ubuntu xenial-backports InRelease [107 kB]
Hit:7 http://mirrors.aliyun.com/ubuntu xenial-security InRelease
Hit:8 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:9 http://ppa.launchpad.net/qameta/allure/ubuntu xenial InRelease
Hit:10 http://archive.canonical.com/ubuntu xenial InRelease
Hit:11 http://ppa.launchpad.net/yandex-qatools/allure-framework/ubuntu xenial InRelease
Hit:12 https://packages.gitlab.com/runner/gitlab-runner/ubuntu xenial InRelease
Fetched 107 kB in 3s (26.8 kB/s)
Reading package lists... Done
root@duke:~# apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
0 upgraded, 9 newly installed, 0 to remove and 81 not upgraded.
Need to get 1,541 kB of archives.
After this operation, 6,373 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libapr1 amd64 1.5.2-3 [86.0 kB]
Get:2 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libaprutil1 amd64 1.5.4-1build1 [77.1 kB]
。。。。。。
。。。。。。
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for ufw (0.35-0ubuntu2) ...

1.2、Apache安装目录信息

/var/www                      #Apache默认文档根目录
/etc/apache2 #Apache配置存储目录
/etc/apache2/apache2.conf #Apache配置文件

1.3、配置Apache

1.3.1、将“全局服务器名称”设置为“禁止语法警告”

如果不设置ServerName全球范围内,你会检查语法错误Apache配置时收到以下警告:

apache2ctl configtest #检查语法错误

过程如下:

root@duke:/# apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

修改/etc/apache2/apache2.conf配置文件,关闭语法警告
过程如下:

root@duke:~# vi /etc/apache2/apache2.conf
# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.
# Include generic snippets of statements
IncludeOptional conf-enabled/.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/
.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
ServerName 192.168.0.157 #在最后一行添加,ip是当前主机IP
"/etc/apache2/apache2.conf" 223L, 7141C written
root@duke:~# apache2ctl configtest
Syntax OK
root@duke:~# systemctl restart apache2 重启Apache

1.3.2、调整防火墙以允许Web流量

  1. 查看防火墙管理列表

    ufw app list

    过程如下:

    root@duke:/# ufw app list
    可用应用程序:
    Apache
    Apache Full
    Apache Secure
    CUPS
    OpenLDAP LDAP
    OpenLDAP LDAPS
    OpenSSH

  2. 查看Apache Full使用的端口
    ufw app info "Apache Full"

    过程如下:

    root@duke:/# ufw app info "Apache Full"
    配置: Apache Full
    标题:Web Server (HTTP,HTTPS)
    描述: Apache v2 is the next generation of the omnipresent Apache web server.
    端口:80,443/tcp

  3. 防火墙开放Apache
    ufw allow in "Apache Full"

    root@duke:/# ufw allow in "Apache Full"
    防火墙规则已更新
    规则已更新(v6)

  4. 访问Apache
    开放防火墙后就可以尝试登陆Apache服务器
    http://192.168.0.157/

    界面如下:

1.3.3、配置apache2.conf文件

修改:/etc/apache2/apache2.conf 配置文件,添加以下内容:

AddType application/x-httpd-php .php .htm .html
AddDefaultCharset UTF-8
ServerName 192.168.0.157

过程如下:

root@duke:~# vi /etc/apache2/apache2.conf
# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.
# Include generic snippets of statements
IncludeOptional conf-enabled/.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/
.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
AddType application/x-httpd-php .php .htm .html
AddDefaultCharset UTF-8
ServerName 192.168.0.157 #在配置文件最后添加

"/etc/apache2/apache2.conf" 223L, 7141C written
root@duke:~# apache2ctl configtest
Syntax OK
root@duke:~# systemctl restart apache2 重启Apache

1.4、Apache命令

启动命令

/etc/init.d/apache2 start

systemctl start apache2

停止命令

/etc/init.d/apache2 stop

systemctl stop apache2

重启命令

/etc/init.d/apache2 restart

systemctl restart apache2

二、安装PHP和 PHP 扩展模块

  • TestLink 支持 MySQL、PostgreSQL 和微软的 SQL Server 数据库,由于采用mysql数据库,所以需要安装基于PHP的MySQL扩展模块
  • Ubuntu16.04系统自带了PHP 7.0.X版本,因此PHP5无法正常安装的
  • Ubuntu16.04系统软件库自带了PHP 7.0.X版本,想要安装PHP 7.2.x必须修改软件库

2.1、安装PHP

2.1.1、卸载自带PHP 7.0版本

apt-get purge php
apt-get purge php-common php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline

执行过程如下:

root@duke:~# apt-get purge php
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
php-common php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
php
0 upgraded, 0 newly installed, 1 to remove and 81 not upgraded.
After this operation, 11.3 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 307016 files and directories currently installed.)
Removing php (1:7.0+35ubuntu6.1) ...
root@duke:~# apt-get purge php-common php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
php-common
php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline*
0 upgraded, 0 newly installed, 8 to remove and 81 not upgraded.
After this operation, 14.1 MB disk space will be freed.
(Reading database ... 307013 files and directories currently installed.)
Removing php7.0 (7.0.33-0ubuntu0.16.04.4) ...
Removing php7.0-fpm (7.0.33-0ubuntu0.16.04.4) ...
apache2_invoke php7.0-fpm prerm: No action required
Purging configuration files for php7.0-fpm (7.0.33-0ubuntu0.16.04.4) ...
apache2_invoke php7.0-fpm postrm: No action required
dpkg: warning: while removing php7.0-fpm, directory '/etc/php/7.0/fpm/conf.d' not empty so not removed
Removing php7.0-cli (7.0.33-0ubuntu0.16.04.4) ...
Purging configuration files for php7.0-cli (7.0.33-0ubuntu0.16.04.4) ...
dpkg: warning: while removing php7.0-cli, directory '/etc/php/7.0/cli/conf.d' not empty so not removed
Removing php7.0-readline (7.0.33-0ubuntu0.16.04.4) ...
Purging configuration files for php7.0-readline (7.0.33-0ubuntu0.16.04.4) ...
Removing php7.0-opcache (7.0.33-0ubuntu0.16.04.4) ...
Purging configuration files for php7.0-opcache (7.0.33-0ubuntu0.16.04.4) ...
Removing php7.0-json (7.0.33-0ubuntu0.16.04.4) ...
Purging configuration files for php7.0-json (7.0.33-0ubuntu0.16.04.4) ...
Removing php7.0-common (7.0.33-0ubuntu0.16.04.4) ...
Purging configuration files for php7.0-common (7.0.33-0ubuntu0.16.04.4) ...
dpkg: warning: while removing php7.0-common, directory '/etc/php/7.0' not empty so not removed
Removing php-common (1:35ubuntu6.1) ...
Purging configuration files for php-common (1:35ubuntu6.1) ...
Processing triggers for man-db (2.7.5-1) ...

2.1.1、配置PHP 7.x.x版本库

1、使用ppa增加源

apt-get install python-software-properties
add-apt-repository ppa:ondrej/php
apt-get update

执行过程如下:

root@duke:~# apt-get install python-software-properties
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
python-apt python-pycurl
Suggested packages:
python-apt-dbg python-apt-doc python-pycurl-dbg python-pycurl-doc
The following NEW packages will be installed:
python-apt python-pycurl python-software-properties
0 upgraded, 3 newly installed, 0 to remove and 81 not upgraded.
Need to get 204 kB of archives.
After this operation, 937 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 python-apt amd64 1.1.0~beta1ubuntu0.16.04.4 [140 kB]
Get:2 http://mirrors.aliyun.com/ubuntu xenial/main amd64 python-pycurl amd64 7.43.0-1ubuntu1 [43.3 kB]
Get:3 http://mirrors.aliyun.com/ubuntu xenial-updates/universe amd64 python-software-properties all 0.96.20.8 [20.6 kB]
Fetched 204 kB in 0s (1,188 kB/s)
Selecting previously unselected package python-apt.
(Reading database ... 306870 files and directories currently installed.)
Preparing to unpack .../python-apt_1.1.0~beta1ubuntu0.16.04.4_amd64.deb ...
Unpacking python-apt (1.1.0~beta1ubuntu0.16.04.4) ...
Selecting previously unselected package python-pycurl.
Preparing to unpack .../python-pycurl_7.43.0-1ubuntu1_amd64.deb ...
Unpacking python-pycurl (7.43.0-1ubuntu1) ...
Selecting previously unselected package python-software-properties.
Preparing to unpack .../python-software-properties_0.96.20.8_all.deb ...
Unpacking python-software-properties (0.96.20.8) ...
Setting up python-apt (1.1.0~beta1ubuntu0.16.04.4) ...
Setting up python-pycurl (7.43.0-1ubuntu1) ...
Setting up python-software-properties (0.96.20.8) ...
root@duke:~# add-apt-repository ppa:ondrej/php
Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included. Only Supported Versions of PHP (http://php.net/supported-versions.php) for Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases) are provided. Don't ask for end-of-life PHP versions or Ubuntu release, they won't be provided.

Debian oldstable and stable packages are provided as well: https://deb.sury.org/#debian-dpa

You can get more information about the packages at https://deb.sury.org

BUGS&FEATURES: This PPA now has a issue tracker:
https://deb.sury.org/#bug-reporting

CAVEATS:

  1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
  2. If you are using apache2, you are advised to add ppa:ondrej/apache2
  3. If you are using nginx, you are advise to add ppa:ondrej/nginx-mainline
    or ppa:ondrej/nginx

PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/

WARNING: add-apt-repository is broken with non-UTF-8 locales, see
https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:

# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
More info: https://launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or ctrl-c to cancel adding it
在此处按[ENTER]键
gpg: keyring `/tmp/tmp_6wjtp2o/secring.gpg' created
gpg: keyring `/tmp/tmp_6wjtp2o/pubring.gpg' created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp_6wjtp2o/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
root@duke:~# apt-get update
Get:1 file:/var/cuda-repo-9-0-local InRelease
Ign:1 file:/var/cuda-repo-9-0-local InRelease
Get:2 file:/var/cuda-repo-9-0-local Release [574 B]
Get:2 file:/var/cuda-repo-9-0-local Release [574 B]
Hit:3 http://mirrors.aliyun.com/ubuntu xenial InRelease
Hit:4 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease
Get:5 http://mirrors.aliyun.com/ubuntu xenial-backports InRelease [107 kB]
Hit:7 http://mirrors.aliyun.com/ubuntu xenial-security InRelease
Hit:8 http://archive.canonical.com/ubuntu xenial InRelease
Hit:9 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:10 http://ppa.launchpad.net/ondrej/php/ubuntu xenial InRelease [23.9 kB]
Hit:11 https://packages.gitlab.com/runner/gitlab-runner/ubuntu xenial InRelease
Hit:12 http://ppa.launchpad.net/qameta/allure/ubuntu xenial InRelease
Hit:13 http://ppa.launchpad.net/yandex-qatools/allure-framework/ubuntu xenial InRelease
Get:14 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 Packages [52.3 kB]
Get:15 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main i386 Packages [52.1 kB]
Get:16 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main Translation-en [28.2 kB]
Fetched 263 kB in 20s (12.8 kB/s)
Reading package lists... Done

2、查看源中PHP7.3版本

apt list | grep php

不出意外,列表中已经包含PHP 7.3 版本,甚至有PHP 7.2版本

3、安装PHP7.3

apt-get -y install php

执行过程如下:

root@duke:~# apt-get -y install php
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libapache2-mod-php7.3 libargon2-0 libpcre2-8-0 libsodium23 php-common php7.3 php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
libapache2-mod-php7.3 libargon2-0 libpcre2-8-0 libsodium23 php php-common php7.3 php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
0 upgraded, 12 newly installed, 0 to remove and 101 not upgraded.
Need to get 4,047 kB/4,226 kB of archives.
After this operation, 18.2 MB of additional disk space will be used.
。。。。。。
。。。。。。
Creating config file /etc/php/7.3/cli/php.ini with new version
Setting up libapache2-mod-php7.3 (7.3.6-1+ubuntu16.04.1+deb.sury.org+1) ...

eating config file /etc/php/7.3/apache2/php.ini with new version
apache2_invoke: Enable module php7.3
Setting up php7.3 (7.3.6-1+ubuntu16.04.1+deb.sury.org+1) ...
Setting up php (2:7.3+69+ubuntu16.04.1+deb.sury.org+2+php7.3) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...

4、安装PHP7.2 扩展模块

apt-get install  php7.3-mysql php7.3-ldap php7.3-gd php7.3-curl php-mysql php-ldap php-gd php-curl

执行过程如下:

root@duke:~# apt-get install php7.3-mysql php7.3-ldap php7.3-gd php7.3-curl php-mysql php-ldap php-gd php-curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
php7.2-ldap php7.2-mysql
0 upgraded, 2 newly installed, 0 to remove and 99 not upgraded.
Need to get 140 kB of archives.
After this operation, 556 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 php7.2-ldap amd64 7.2.19-1+ubuntu16.04.1+deb.sury.org+1 [23.1 kB]
Get:2 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 php7.2-mysql amd64 7.2.19-1+ubuntu16.04.1+deb.sury.org+1 [117 kB]
Fetched 140 kB in 2s (62.9 kB/s)
Selecting previously unselected package php7.2-ldap.
(Reading database ... 307082 files and directories currently installed.)
Preparing to unpack .../php7.2-ldap_7.2.19-1+ubuntu16.04.1+deb.sury.org+1_amd64.deb ...
Unpacking php7.2-ldap (7.2.19-1+ubuntu16.04.1+deb.sury.org+1) ...
Selecting previously unselected package php7.2-mysql.
Preparing to unpack .../php7.2-mysql_7.2.19-1+ubuntu16.04.1+deb.sury.org+1_amd64.deb ...
Unpacking php7.2-mysql (7.2.19-1+ubuntu16.04.1+deb.sury.org+1) ...
Processing triggers for libapache2-mod-php7.2 (7.2.19-1+ubuntu16.04.1+deb.sury.org+1) ...
Setting up php7.2-ldap (7.2.19-1+ubuntu16.04.1+deb.sury.org+1) ...

Creating config file /etc/php/7.2/mods-available/ldap.ini with new version
Setting up php7.2-mysql (7.2.19-1+ubuntu16.04.1+deb.sury.org+1) ...

Creating config file /etc/php/7.2/mods-available/mysqlnd.ini with new version

Creating config file /etc/php/7.2/mods-available/mysqli.ini with new version

Creating config file /etc/php/7.2/mods-available/pdo_mysql.ini with new version
Processing triggers for libapache2-mod-php7.2 (7.2.19-1+ubuntu16.04.1+deb.sury.org+1) ...

5、查看PHP安装版本

php -v

执行过程如下:

root@duke:/etc/php/7.2# php -v
PHP 7.3.6-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May 31 2019 11:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.6-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

6、PHP性能优化
为使 TestLink 达到最佳性能,建议对 PHP 配置进行优化。
需要修改 PHP 配置文件 /etc/php/7.3/apache2/php.ini 中的参数:

  • session.gc_maxlifetime
    单位为秒。该参数指定的时间间隔之后,存储的数据会被标示为'garbage',进而被垃圾回收进程清理掉。默认为 24 分钟(即 1440 秒)。TestLink 在进行安装之前会检查该参数,如果设置等于小于 10 分钟,TestLink 安装程序会强制用户去扩展该值。如果大 10 分钟,只给出警告信息。如果大于推荐的 30 分钟,安装程序校验为成功。
    建议设置为:session.gc_maxlifetime = 1860
  • max_execution_time
    每个 php 脚本最大执行时间,单位为秒,默认为 30s,
    TestLink 推荐设置为 120s

  • max_input_vars
    从PHP 5.3.9开始提供。默认值:1000
    如果测试用例超过100个,那么可能引发TestLink限制执行测试用例个数问题。
    建议修改为10000

  • memory_limit
    如果要从xml文件导入测试用例或更新用例,默认值 memory_limit = 128M 可能导致导入失败,原因在于系统可能会耗尽内存
    建议memory_limit值为256MB

执行过程如下:

root@duke:~#vi /etc/php/7.3/apache2/php.ini
。。。。。。
。。。。。。
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
#session.gc_maxlifetime = 1440
session.gc_maxlifetime = 1860 ;将1440修改为1860

; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does not
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; find /path/to/sessions -cmin +24 -type f | xargs rm
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
。。。。。。
。。。。。。
;max_execution_time = 30
max_execution_time = 120 ;将30修改为120

; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time = 60

; Maximum input variable nesting level
; http://php.net/max-input-nesting-level
;max_input_nesting_level = 64

; How many GET/POST/COOKIE input variables may be accepted
; max_input_vars = 1000 ;默认情况下是注释掉的,需要取消注释
max_input_vars = 10000 ;将1000改为10000

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
;memory_limit = 128M ;默认值为128M,需要修改为256M
memory_limit = 256M

三、安装Mysql

3.1、安装Mysql服务

apt-get install mysql-server

执行过程如下:

root@duke:~# apt install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 libevent-core-2.0-5 libhtml-template-perl mysql-client-5.7 mysql-client-core-5.7 mysql-server-5.7 mysql-server-core-5.7
Suggested packages:
libipc-sharedcache-perl mailx tinyca
The following NEW packages will be installed:
libaio1 libevent-core-2.0-5 libhtml-template-perl mysql-client-5.7 mysql-client-core-5.7 mysql-server mysql-server-5.7 mysql-server-core-5.7
0 upgraded, 8 newly installed, 0 to remove and 99 not upgraded.
Need to get 18.7 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6,356 B]
Get:2 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 mysql-client-core-5.7 amd64 5.7.26-0ubuntu0.16.04.1 [6,388 kB]
Get:3 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 mysql-client-5.7 amd64 5.7.26-0ubuntu0.16.04.1 [1,834 kB]
Get:4 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 mysql-server-core-5.7 amd64 5.7.26-0ubuntu0.16.04.1 [7,471 kB]
Get:5 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 libevent-core-2.0-5 amd64 2.0.21-stable-2ubuntu0.16.04.1 [70.6 kB]
Get:6 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 mysql-server-5.7 amd64 5.7.26-0ubuntu0.16.04.1 [2,831 kB]
Get:7 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libhtml-template-perl all 2.95-2 [60.4 kB]
Get:8 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 mysql-server all 5.7.26-0ubuntu0.16.04.1 [10.8 kB]
Fetched 18.7 MB in 0s (20.4 MB/s)
Preconfiguring packages ...


Selecting previously unselected package libaio1:amd64.
(Reading database ... 307104 files and directories currently installed.)
Preparing to unpack .../libaio1_0.3.110-2_amd64.deb ...
Unpacking libaio1:amd64 (0.3.110-2) ...
Selecting previously unselected package mysql-client-core-5.7.
Preparing to unpack .../mysql-client-core-5.7_5.7.26-0ubuntu0.16.04.1_amd64.deb ...
Unpacking mysql-client-core-5.7 (5.7.26-0ubuntu0.16.04.1) ...
Selecting previously unselected package mysql-client-5.7.
Preparing to unpack .../mysql-client-5.7_5.7.26-0ubuntu0.16.04.1_amd64.deb ...
Unpacking mysql-client-5.7 (5.7.26-0ubuntu0.16.04.1) ...
Selecting previously unselected package mysql-server-core-5.7.
Preparing to unpack .../mysql-server-core-5.7_5.7.26-0ubuntu0.16.04.1_amd64.deb ...
Unpacking mysql-server-core-5.7 (5.7.26-0ubuntu0.16.04.1) ...
Selecting previously unselected package libevent-core-2.0-5:amd64.
Preparing to unpack .../libevent-core-2.0-5_2.0.21-stable-2ubuntu0.16.04.1_amd64.deb ...
Unpacking libevent-core-2.0-5:amd64 (2.0.21-stable-2ubuntu0.16.04.1) ...
Selecting previously unselected package mysql-server-5.7.
Preparing to unpack .../mysql-server-5.7_5.7.26-0ubuntu0.16.04.1_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.26-0ubuntu0.16.04.1) ...
Selecting previously unselected package libhtml-template-perl.
Preparing to unpack .../libhtml-template-perl_2.95-2_all.deb ...
Unpacking libhtml-template-perl (2.95-2) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.7.26-0ubuntu0.16.04.1_all.deb ...
Unpacking mysql-server (5.7.26-0ubuntu0.16.04.1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for ureadahead (0.100.0-19) ...
Setting up libaio1:amd64 (0.3.110-2) ...
Setting up mysql-client-core-5.7 (5.7.26-0ubuntu0.16.04.1) ...
Setting up mysql-client-5.7 (5.7.26-0ubuntu0.16.04.1) ...
Setting up mysql-server-core-5.7 (5.7.26-0ubuntu0.16.04.1) ...
Setting up libevent-core-2.0-5:amd64 (2.0.21-stable-2ubuntu0.16.04.1) ...
Setting up mysql-server-5.7 (5.7.26-0ubuntu0.16.04.1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
Setting up libhtml-template-perl (2.95-2) ...
Setting up mysql-server (5.7.26-0ubuntu0.16.04.1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for ureadahead (0.100.0-19) ...

3.2、配置Mysql

mysql5.7版本默认配置文件是 /etc/mysql/mysql.conf.d/mysqld.cnf

mysqladmin -u root -p shutdown
service mysql stop
vi /etc/mysql/mysql.conf.d/mysqld.cnf

修改bind-address配置项
将本地mysql访问

bind-address = 127.0.0.1

修改为远端mysql访问,地址为本机ip地址

#bind-address = 127.0.0.1

3.3、设置Mysql远程root访问

3.2章节只是配置了允许用户访问mysql服务器,但是root还是不能正常访问的
所以要通过修改mysql默认系统配置表,来让root远程访问

mysql -uroot -proot
use mysql
SELECT user, host from mysql.user;
update user set host='%' where user='root';

执行过程如下:

root@duke:/etc/mysql/mysql.conf.d# mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.26-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT user, host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT user, host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

mysql> quit
Bye

3.4、重启mysql

service mysql restart

3.5、检查mysql启动状态

1、方法一

service mysql status

执行过程如下:

root@duke:~# service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2019-06-05 11:26 CST; 4min 8s ago
Process: 28886 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 28877 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 28885 (mysqld)
CGroup: /system.slice/mysql.service
└─28885 /usr/sbin/mysqld

6月 05 11:25 duke systemd[1]: Starting MySQL Community Server...
6月 05 11:26 duke systemd[1]: Started MySQL Community Server.

2、方法二

mysql -uroot -proot

执行过程如下:

root@duke:~# mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.26-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye

四、安装TestLink

4.1、下载版本

1、TestLink
2019-6-5 最新版本是1.9.20,稳定版本是1.9.19,
【TestLink 在 sourceforge下载】:速度比git-hub快点
【TestLink 在 github下载】

2、TestLink-API-Python-client
可以使用pip 直接安装,命令如下

pip install TestLink-API-Python-client

也可以下载源码进行安装:源码下载

3、EX-Converter
用于将excel测试用例转换xml,方便导入TestLink
【注意】:要使用TestLink的测试用例模板
【EX-Converter 在 sourceforge下载】

4.2、安装版本

4.2.1、安装TestLink

  1. 上传版本包
    将下载的testlink-1.9.19.tar.gz安装包上传到安装服务器上

  2. 解压版本包

    tar zxvf testlink-1.9.19.tar.gz
  3. 版本部署
    testlink安装是通过web进行,此处步骤是实现在web端可以打开安装页面

    mv testlink-1.9.19 testlink
    cp -r testlink /var/www/html
    chmod -R 777 /var/www/html/testlink
  4. 版本安装
    打开安装页面,192.168.0.157是实际安装的服务器地址

    http://192.168.0.157/testlink/install/

    打开页面如下:

  5. 进行新版本安装
    点击New installation按钮

    勾选I agree to the terms set out in this license.

    点击Continue按钮

  6. 安装报错
    在安装页面会提示,部分数据库和依赖库没有安装,文件目录不存在

  7. 解决问题

    • 数据库只需要mysql即可,其他的可以不进行安装
    • 需要创建/var/testlink/logs//var/testlink/upload_area 目录
      mkdir -p /var/testlink/upload_area /var/testlink/logs
      chmod -R 777 /var/testlink
    • 需要安装GD的依赖库

      apt-get install php7.2-gd
    • 需要安装CURL的依赖库
      curl官网网址下载最新的安装包,安装过程可能会出现curl和libcurl不一致的情况,以下给出安装解决方法,以curl-7.65.1版本安装为例:

      • 未安装openssl情况

        wget https://curl.haxx.se/download/curl-7.65.1.tar.gz
        tar zxvf curl-7.65.1.tar.gz
        cd curl-7.65.1
        ./configure --disable-shared #强制执行静态库编译
        make
        make test (optional)
        make install
        apt-get install php7.3-curl php-curl
      • 安装openssl情况
        wget https://curl.haxx.se/download/curl-7.65.1.tar.gz
        tar zxvf curl-7.65.1.tar.gz
        cd curl-7.65.1
        ./configure --with-ssl=/opt/OpenSSL #安装openssl的安装目录
        make
        make test (optional)
        make install
        apt-get install php7.3-curl php-curl
    • 重启apache
      service apache2 restart
      
  8. 继续安装
    经过上面操作后,重新登录安装TestLink页面,继续安装TestLink,已经无报错信息
    点击Continue按钮

  9. 配置数据库
    进入数据库配置管理页面,按照下图填写

  10. 确认安装
    配置网数据库后,在配置页面最下方,会有提示,TestLink的超级管理员账号
    admin/admin
    点击Process TestLink Setup按钮

  11. 安装成功

  12. 数据库testlink用户增加远程访问权限和全部数据库操作权限

    mysql -uroot -proot
    use mysql
    SELECT user, host from mysql.user;
    update user set host='%' where user='testlink';
    UPDATE mysql.user SET Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Create_user_priv='Y',Event_priv='Y',Trigger_priv='Y',Create_tablespace_priv='Y' WHERE User='testlink';
    FLUSH PRIVILEGES;

    执行过程如下:

    root@duke:/var/www/html# mysql -uroot -proot
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.7.26-0ubuntu0.16.04.1 (Ubuntu)

    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    mysql> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> SELECT user, host from mysql.user;
    +------------------+-----------+
    | user | host |
    +------------------+-----------+
    | root | % |
    | debian-sys-maint | localhost |
    | mysql.session | localhost |
    | mysql.sys | localhost |
    | testlink | localhost |
    +------------------+-----------+
    5 rows in set (0.01 sec)

    mysql> update user set host='%' where user='testlink';
    Query OK, 1 row affected (0.02 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

    mysql> SELECT user, host from mysql.user;
    +------------------+-----------+
    | user | host |
    +------------------+-----------+
    | root | % |
    | testlink | % |
    | debian-sys-maint | localhost |
    | mysql.session | localhost |
    | mysql.sys | localhost |
    +------------------+-----------+
    5 rows in set (0.00 sec)
    mysql>UPDATE mysql.user SET Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Create_user_priv='Y',Event_priv='Y',Trigger_priv='Y',Create_tablespace_priv='Y' WHERE User='testlink';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1 Changed: 1 Warnings: 0

    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    mysql> quit
    Bye

  13. 后续数据库配置

    • 备份testlink_create_udf0.sql文件为init.sql

      cp /var/www/html/testlink/install/sql/mysql/testlink_create_udf0.sql /var/www/html/testlink/install/sql/mysql/init.sql
      
    • 修改init.sql
      init.sql文件中的YOUR_TL_DBNAME全部替换为数据库实例名称testlink
    • 初始化sql文件
      mysql -utestlink -ptestlink  < /var/www/html/testlink/install/sql/mysql/init.sql
      
  14. 配置邮件服务配、安全告警、中文显示
    修改

    vi /var/www/html/testlink/config.inc.php
    

    原生内容为:

    / [LOCALIZATION] /

    / @var string Default localization for users */
    // The value must be available in $$tlCfg->locales (see cfg/const.inc.php).
    // Note: An attempt will be done to establish the default locale
    // automatically using $_SERVER['HTTP_ACCEPT_LANGUAGE']
    $tlCfg->default_language = 'en_GB';
    /

    • @var string How to warning user when security weak points exists.
      *
    • 'SCREEN': messages will displayed on login screen, and tl desktop
    • 'FILE': a file with a list is created but users are not notified via GUI
    • user will receive a message on screen. (default)
    • 'SILENT': same that FILE, but user will not receive message on screen.
      /
      $tlCfg->config_check_warning_mode = 'FILE';
      。。。。。。
      。。。。。。
      /
      [SMTP] /
      /*
    • @var string SMTP server name or IP address ("localhost" should work in the most cases)
    • Configure using custom_config.inc.php
    • @uses lib/functions/email_api.php
      **/

    $g_smtp_host = '[smtp_host_not_configured]'; # SMTP server MUST BE configured

    # Configure using custom_config.inc.php
    $g_tl_admin_email = '[testlink_sysadmin_email_not_configured]'; # for problem/error notification
    $g_from_email = '[from_email_not_configured]'; # email sender
    $g_return_path_email = '[return_path_email_not_configured]';

    /**

    • Email notification priority (low by default)
    • Urgent = 1, Not Urgent = 5, Disable = 0
      **/
      $g_mail_priority = 5;

    /**

    • Taken from mantis for phpmailer config
    • select the method to mail by:
    • PHPMAILER_METHOD_MAIL - mail()
    • PHPMAILER_METHOD_SENDMAIL - sendmail
    • PHPMAILER_METHOD_SMTP - SMTP
      /
      $g_phpMailer_method = PHPMAILER_METHOD_SMTP; *

    /* Configure only if SMTP server requires authentication /
    $g_smtp_username = ''; # user
    $g_smtp_password = ''; # password

    /**

    • This control the connection mode to SMTP server.
    • Can be '', 'ssl','tls'
    • @global string $g_smtp_connection_mode
      */
      $g_smtp_connection_mode = '';

    /**

    • The smtp port to use. The typical SMTP ports are 25 and 587. The port to use
    • will depend on the SMTP server configuration and hence others may be used.
    • @global int $g_smtp_port
      */
      $g_smtp_port = 25;

    /**

    修改为:

    / [LOCALIZATION] /

    / @var string Default localization for users /
    // The value must be available in $$tlCfg->locales (see cfg/const.inc.php).
    // Note: An attempt will be done to establish the default locale
    // automatically using $_SERVER['HTTP_ACCEPT_LANGUAGE']
    $tlCfg->default_language = 'zh_CN'; #语言配置
    /**

    • @var string How to warning user when security weak points exists.
      *
    • 'SCREEN': messages will displayed on login screen, and tl desktop
    • 'FILE': a file with a list is created but users are not notified via GUI
    • user will receive a message on screen. (default)
    • 'SILENT': same that FILE, but user will not receive message on screen.
      /
      $tlCfg->config_check_warning_mode = 'SILENT'; #告警配置
      。。。。。。
      。。。。。。
      /
      [SMTP] */

    /**

    • @var string SMTP server name or IP address ("localhost" should work in the most cases)
    • Configure using custom_config.inc.php
    • @uses lib/functions/email_api.php
      */
      $g_smtp_host = 'smtp.dilu.com'; # SMTP 服务必须配置

    # Configure using custom_config.inc.php
    $g_tl_admin_email = 'zhiwei.han@dilu.com'; # 问题错误通知邮箱
    $g_from_email = 'testlink@dilu.com'; # 收到邮件看到的发送地址
    $g_return_path_email = 'zhiwei.han@dilu.com'; # 如果收到邮件的人进行回复的邮件地址

    /**

    • Email notification priority (low by default)
    • Urgent = 1, Not Urgent = 5, Disable = 0
      **/
      $g_mail_priority = 5;

    /**

    • Taken from mantis for phpmailer config
    • select the method to mail by:
    • PHPMAILER_METHOD_MAIL - mail()
    • PHPMAILER_METHOD_SENDMAIL - sendmail
    • PHPMAILER_METHOD_SMTP - SMTP
      */
      $g_phpMailer_method = PHPMAILER_METHOD_SMTP;

    /* Configure only if SMTP server requires authentication /
    $g_smtp_username = 'zhiwei.han@dilu.com'; # smtp发送的用户名
    $g_smtp_password = 'hzwHL525'; # 发送用户的密码

    /**

    • This control the connection mode to SMTP server.
    • Can be '', 'ssl','tls'
    • @global string $g_smtp_connection_mode
      */
      $g_smtp_connection_mode = '';

    /**

    • The smtp port to use. The typical SMTP ports are 25 and 587. The port to use
    • will depend on the SMTP server configuration and hence others may be used.
    • @global int $g_smtp_port
      */
      $g_smtp_port = 465; #公司使用的邮箱smtp端口是465

    /**

  15. 进入testlink
    点击Please Clicke ME!,进入testlink登录页面
    地址为:http://192.168.0.157/testlink/

  16. 设置testlink为中文

    • 点击图标进入设置页面
    • 设置语言为中文简体,点击保存

  17. 生成用户密钥(用于和jenkins链接)

    • 点击 图标进入设置页面
    • API接口点击生成新的密钥

五、Jenkins配置

5.1、jenkins安装testlink插件

  1. 点击系统管理

  2. 点击插件管理

  3. 点击可选插件

  4. 搜索testlink

  5. 勾选TestLink,点击直接安装

  6. 勾选安装完成后重启Jenkins(空闲时),等待重启

  7. 重启后,进入插件管理,点击已安装

  8. 搜索TestLink,查看到TestLink Plugin即表示安装完成

5.2、TestLink Plugin配置

  1. 点击系统管理

  2. 点击系统设置

  3. 找到TestLink,点击新增

  4. 设置TestLink Plugin,如下

    • 名称(TestLink版本):TestLink-1.9.19

    • URL(TestLink-API的地址):http://192.168.0.157/testlink/lib/api/xmlrpc/v1/xmlrpc.php

    • 开发密钥(TestLink 具有权限的用户秘钥):7a6551179ee27605393ff0ecf951084d

  5. 保存应用

【参考】

IBM开源社区
CSDN --部署Testlink在Ubuntu16.04系统

TestLink+Jenkins在Ubuntu16.04搭建集成测试环境的更多相关文章

  1. ubuntu16.04搭建vulhub环境

    简介 Vulhub官方中文教程https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md 环境:ubuntu16.04.5 python3 ...

  2. Ubuntu16.04搭建boost环境

    下载地址:http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download 编译前所需的库 ...

  3. Ubuntu16.04搭建LAMP开发环境

    Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...

  4. Ubuntu16.04搭建OpenVPN

    Ubuntu16.04搭建OpenVPN 2018年12月27日 15:50:59 VinQin 阅读数:21042   简介 如果在一个非信任网络下比如旅社或者咖啡店的WiFi网络下,想要通过你的智 ...

  5. ubuntu16.04配置java环境(重启后不会失效)

    ubuntu16.04配置java环境(重启后不会失效) 1.jdk的安装包(.tar.gz)拷贝到/opt目录下 mv jdk-8u144-linux-x64.tar.gz /opt 2.解压文件 ...

  6. 在ubuntu16上搭建rabbitMQ环境

    在ubuntu16上搭建rabbitMQ环境 安装rabbitMQ apt-cache pkgnames | grep rabbitmq apt-get install rabbitmq-server ...

  7. Ubuntu16.04下LAMP环境的安装与配置

    Ubuntu16.04下LAMP环境的安装与配置 最近做个实验需要用到Ubuntu环境的靶场,所以这里介绍下Ubuntu环境下LAMP的安装与配置,话不多说,我们gkd! 1.Apache2的安装 首 ...

  8. 【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境

    查看linux内核版本 uname -a 打印结果 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed ...

  9. Ubuntu16.04下iTop4412环境搭建+Android4.0.3编译

    系统:Ubuntu16.04.02(优麒麟) 安装库文件和JDK 使用cd 命令,进入解压出来的“Android_JDK” -->“jdk6”文件夹,运行脚本文件 “install-sun-ja ...

随机推荐

  1. HBase的表结构

    HBase以表的形式存储数据.表有行和列组成.列划分为若干个列族/列簇(column family).  如上图所示,key1,key2,key3是三条记录的唯一的row key值,column-fa ...

  2. 前端 页面加载完成事件 - onload,五种写法

    在js和jquery使用中,经常使用到页面加载完成后执行某一方法.通过整理,大概是五种方式(其中有的只是书写方式不一样). 1:使用jQuery的$(function){}; 2:使用jquery的$ ...

  3. Driect3D初始化演示

    初始化Direct3D演示 初始化Driect3D类: #include "Common\d3dApp.h" #include <DirectXColors.h> us ...

  4. 在IIS上启用WordPress子域名模式多站点功能

    昨天负责网站的支持人员向我反馈在我们负责托管网站的WordPress在启动多站点功能后,浏览新站点或访问新站点的"Dashboard"时,都会反馈“404”错误.我检查了WordP ...

  5. [Python] 09 - Multi-processing

    前言 资源 Ref: Python3 多线程 Ref: Python3之多进程       # python中的多线程无法利用多核优势 更多的提高效率的策略,请参见:[Pandas] 01 - A g ...

  6. AppScan工具介绍与安装

    本文仅供个人参考学习,如做商业用途,请购买正版,谢谢! 介绍 AppScan是IBM公司出的一款Web应用安全测试工具,采用黑盒测试的方式,可以扫描常见的web应用安全漏洞.其工作原理,首先是根据起始 ...

  7. 使用file_get_contents() 发送GET、POST请求

    服务器端执行HTTP请求,大家经常使用的就是CURL,curl工具的确是很好的数据文件传输工具,那么除此之外还有其他的工具能实现这个功能吗? 现在为你介绍一个很常见的工具 file_get_conte ...

  8. Kubernetes的Deployment对象使用

    一.什么是Deployment对象 明明ReplicaSet已经可以控制pod的数量了,为什么还需要Deployment? Deploymen实际上一个两层控制器,遵循一种滚动更新的方式来实升级现有的 ...

  9. Git初始化项目 和 Gitignore

    初始化init: git init git status git add . git commit -am "init projrct" 添加远程仓库: git remote ad ...

  10. 解决CentOS6.x或RedHat Linux 6.x版本不能通过System eth0以固定IP访问外网的问题

    当你在VMware Workstation Pro中,打开从别人那里克隆来的系统,或者是开启迁移后的虚拟机系统时,VMware将会提示你:此虚拟机可能已被移动或 复制.为了配置特定的管理和网络功能.V ...