CENTOS7安装GO语言环境

从GO语言官方网站下载对应的二进制存档包:

wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz

下载存档 并将其解压缩/usr/local,将自动在其中创建一个Go树 /usr/local/go

tar -C /usr/local -xzf go1.12.linux-amd64.tar.gz

配置GO语言系统环境变量:

vi /etc/profile 

编辑profile文件,在文件最后添加如下内容 :

#go setting
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export PATH=$PATH:$GOROOT/bin

保存wq!,然后使 profile 文件现在生效

source /etc/profile

测试安装效果: 执行go version指令,确认环境变量是否生效 。

go version

显示:

go version go1.12 linux/amd64

使用go env命令,确实go配置是否正确

go env

显示:

GOARCH="amd64"<br>
GOBIN=""<br>
GOCACHE="/root/.cache/go-build"<br>
GOEXE=""<br>
GOFLAGS=""<br>
GOHOSTARCH="amd64"<br>
GOHOSTOS="linux"<br>
GOOS="linux"<br>
GOPATH="/usr/local/go/gopath"<br>
GOPROXY=""<br>
GORACE=""<br>
GOROOT="/usr/local/go"<br>
GOTMPDIR=""<br>
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"<br>
GCCGO="gccgo"<br>
CC="gcc"<br>
CXX="g++"<br>
CGO_ENABLED="1"<br>
GOMOD=""<br>
CGO_CFLAGS="-g -O2"<br>
CGO_CPPFLAGS=""<br>
CGO_CXXFLAGS="-g -O2"<br>
CGO_FFLAGS="-g -O2"<br>
CGO_LDFLAGS="-g -O2"<br>
PKG_CONFIG="pkg-config"<br>
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build287229697=/tmp/go-build -gno-record-gcc-switches"

go语言运行测试:编辑hello.go文件测试:

vim hello.go

内容如下:

package main 

import (
    "fmt"
)

func main() {
    fmt.Println("Hello world!")
}
go run hello.go

显示Hello world!正确执行。截止到此,安装GO语言环境完成。

使用CADDY服务器实现WORDPRESS使用QUIC协议

本文旨在描述使用CADDY启用QUIC协议-
QUIC(Quick UDP Internet Connection)是谷歌制定的一种基于UDP的低时延的互联网传输层协议。在2016年11月国际互联网工程任务组(IETF)召开了第一次QUIC工作组会议,受到了业界的广泛关注。这也意味着QUIC开始了它的标准化过程,成为新一代传输层协议 。

1.安装CADDY服务器。本文采用CENTOS7.5安装。

 curl https://getcaddy.com | bash -s personal
Downloading Caddy for linux/amd64...
https://caddyserver.com/download/linux/amd64?plugins=
Extracting...
Putting caddy in /usr/local/bin (may require password)
[sudo] password for sammy:
Caddy 0.10.2
Successfully installed

查询caddy位置

which caddy
/usr/local/bin/caddy

2.安装php和mysql

配置PHP-FPM, 确保PHP-FPM正在运行并侦听指定的unix套接字 ;检查 php-fpm.conf 中的
listen =  字段后面的内容,作为caddy配置后的php fastcgi监听字段。

vi /etc/php-fpm.d/www.conf

变更其中的user = 和group =字段为设定的caddy服务器执行用户caddy和caddy,然后启动php

systemctl start php-fpm

3.修改Caddy配置

mkdir /etc/caddy
mkdir /etc/caddy/conf
echo 'import ./conf/*' >> /etc/caddy/Caddyfile
sudo mkdir /etc/ssl/caddy

从github下载 caddy 的 systemctl 守护脚本并对其挂载启动

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
sudo systemctl daemon-reload
sudo systemctl enable caddy
sudo systemctl start caddy

4.开启caddy QUIC协议

修改 /etc/systemd/system/caddy.service ,在 ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp 后面加上 -quic ,即 :

vim /etc/systemd/system/caddy.service

ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp -quic

sudo systemctl daemon-reload
sudo systemctl restart caddy.service

重启服务即可启用。

php启用配置文件实例

abc.com {
    tls XXX@XXX.com
    root /data/wwwroot/abc.com
    gzip
    fastcgi / /dev/shm/php-cgi.sock php
    rewrite {
        if {path} not_match ^\/wp-admin
        to {path} {path}/ /index.php?_url={uri}
    }
}

注意:php在caddy中启用fastcgi接入,所以php-fpm配置文件中的用户名和监控的sock字段的listen值必须和caddy中对应。

安装Percona Server 8.0版本数据库

作为MYSQL的衍生社区版本,Percona以其优秀的迭代速度和有异于ORACLE社区版及MARIA DB版本的新特性,给数据开发者带来了更多的选择。

2018年Percona也升级了其下的Percona Server 8.0。这里演示如何在CentOS下安装Percona Server8.0及启用特色存储引擎.

1.安装Percona YUM源:

$ sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

2.设定Yum源使用Percona的版本为8.0

$ sudo percona-release setup ps80

3.安装数据库

$ sudo yum install percona-server-server

4.运行Percona Server for MySQL

$ sudo service mysql start

5.确认运行状态

$ sudo service mysql status

6.关闭Percona或重启Percona

$ sudo service mysql stop
$ sudo service mysql restart

7.找到安装临时root密码

 grep "A temporary password" /var/log/mysqld.log

你会得到结果临时密码;但是如果无法出现可以试着重启Percona Server

2019-01-04T16:56:48.430540Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 临时密码

8.初始化数据库,修改默认密码,注意8.0默认有强制密码强度要求。

mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) :

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

9.解决phpMyadmin因加密认证不一样导致无法连接的问题

mysql -p
Enter password:
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
Query OK, 0 rows affected (0.26 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

Linux下的tar压缩解压缩命令详解

tar

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思

压缩

tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 

tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

 tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2

tar -cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z

rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux

zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

tar -xvf file.tar //解压 tar包

tar -xzvf file.tar.gz //解压tar.gz

tar -xjvf file.tar.bz2   //解压 tar.bz2

tar -xZvf file.tar.Z   //解压tar.Z

unrar e file.rar //解压rar

unzip file.zip //解压zip

总结

1、*.tar 用 tar -xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、*.tar.gz和*.tgz 用 tar -xzf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar -xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar -xZf 解压

8、*.rar 用 unrar e解压

9、*.zip 用 unzip 解压

解压jdk到指定文件夹:

tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java


腾讯云云主机实现多IP绑定

腾讯云主机实际上一直允许绑定弹性IP,最开始是可以实现经典IP更换为弹性IP可以有效的屏蔽掉攻击,释放IP进行更换。

但是运用弹性网卡实际上可以绑定实现多IP。公网弹性IP实际绑定的是弹性网卡中的内网IP。

点击云主机ID/实例名,检查IP地址,如果为默认公网IP,点击转换为弹性公网IP。

检查网络配置处的网络,如果默认为基础网络有得区域是无法更换为私有网络,那就无法实现绑定多网卡和多IP。

1.新建弹性网卡:

点击云主机ID/实例名,点击弹性网卡,可以看到主网卡配置。

此时我们增加一个新的辅助弹性网卡:

点击主网卡标签,进入弹性网卡选项,点击增加网卡,然后默认即可,可以看到两个网卡并存了。

2.绑定弹性网卡至云主机:

点击绑定云主机;完成后点击绑定主机的辅助网卡,可以查看该网卡的详细信息。

3.绑定新增外网弹性IP至辅助网卡:点击辅助网卡的IP管理。完成后外网弹性IP已经绑定对应的弹性网卡内网IP。但此时系统没有对应的网卡配置信息。

 

4.设置云主机弹性网卡配置文件:

以centos7.4为例:

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1

配置eth1辅助网卡ip信息:注意其中的IPADDR输入对应的辅助网卡内网IP,NETMASK GATEWAY按照对应主网卡设置即可。保存编辑退出。

DEVICE='eth1'
NM_CONTROLLED='yes'
ONBOOT='yes'
IPADDR='172.16.0.17'
NETMASK='255.255.240.0'
GATEWAY='172.16.0.1'

5.关闭rp_filter校验,在etc/sysctl.conf中关闭反向过滤.

vim /etc/sysctl.conf

把其中的net.ipv4.conf.default.rp_filter = 1变更为如下,若没有则增加即可。

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 0

更新配置

systemctl restart network

检查确认

ip addr

CentOS7系统YUM安装MariaDB10.3

1.增加MariaDB的repo源:

# MariaDB 10.3 CentOS repository list - created 2018-05-26 07:55 UTC  
# http://downloads.mariadb.org/mariadb/repositories/  
[mariadb]  
name = MariaDB  
baseurl = http://yum.mariadb.org/10.3/centos7-amd64  
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB  
gpgcheck=1

2.清除Yum缓存,重建缓存

yum clean all 
yum makecache

3.查询MariaDB源中的软件包

yum list --disablerepo=\* --enablerepo=mariadb

其中test为测试工具,backup为备份工具

4.安装安装MariaDB数据库

yum install MariaDB-client MariaDB-server MariaDB-devel -y

5.启动数据库及设置MariaDB开机自启

systemctl start mariadb  
systemctl enable mariadb

6.初始化数据库,并删除测试数据库及更改权限和设置密码

mysql_secure_installation

第一步为输入密码,首次安装未设定默认为空,直接Enter

Change the root password? [Y/n] 该项为询问是否设置新密码。建议设置新密码。其他项目按照默认Y即可。

7.测试进入MariaDB

 mysql -uroot -p -A  
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2894
Server version: 10.3.7-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> 

 

突然的怀念

最近一如既往的忙。连续加班已经快两个多月了。每每下班回来,总想瘫软在床上。

返回恍惚见仰卧于床上,拿着平板或者是书本,总是想起以前在家的时候。

若时光愿意15岁的年少之时,而今回想那是的日子是多么美好。回忆里夏日暑假的早晨有父亲早上秤回来的鱼,抑或是凉菜,即使日子过得不如那么自如的时候,有一块地道的豆腐,也成了我们儿时的期待。那个时候的馋嘴里总有父母如蜜糖般的爱。

回想儿时,没有那么多的不如意,老两口还不到为我们操劳而过早衰老的样子。父亲去年走了,唯一的遗憾,我未能陪着他最后一程。日子总是这样无情,总在你从未准备的时候,让你经历生活的无奈与痛楚。也许他一直不想我们难过吧,或者只是我的自我慰藉。实言说来,无论如何也成了我无法忘怀的遗憾与自责。总想着日子会好起来,我的生活会好起来。然后给你我最想给你们享受的生活。只是时间这个卑鄙小人,从不给任何人奢求的机会。

如今,总对母亲说,天塌下来,父亲不会再顶着了,但是我们会比父亲顶着更稳。每年的那天,我想我会再为你到一杯酒,我们爷两一辈子从未喝过一次正经的酒。虽然你的酒量只遗传给了哥哥,但是我想有我陪你喝的酒,你肯定会很喜欢。

 

使用Percona安装tokudb存储引擎

由分形树索引支持的PerconaTokuDB®是一款开源的,用于Percona Server的高性能存储引擎,可提高可扩展性和运行效率。专为满足大数据应用的苛刻要求而设计,Percona TokuDB降低了与压缩和优化工作相关的部署成本。Percona TokuDB和Percona HotBackup包含在下面的Percona Server for MySQL 下载链接中。

快速和可扩展性:

Percona TokuDB极大地提高了性能和并发性,减少了磁盘和闪存驱动器存储需求,支持在线模式更改并支持完全符合ACID的事务

Percona TokuDB可以:

  • 更好的性能:如果不进行调整,响应时间比InnoDB快20倍
  • 更强的投资回报率:运营和基础设施成本更低,可扩展性和灵活性更高
  • 可用性更高:在公共,私人和混合云环境中对苛刻应用的停机时间更少

1.安装percona官方RPM源

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

2.测试Percona源

yum list | grep percona

3.yum安装percona

yum install Percona-Server-server-57

4.Percona默认管理命令

service mysql start 
service mysql restart 
service mysql stop 
service mysql status

5.查询安装后的临时percona root密码

grep ‘temporary password’ /var/log/mysqld.log

6.修改数据库密码

mysql -u root -p
Enter password:yourpasswd
elcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 92
Server version: 5.7.21-21-log Percona Server (GPL), Release 21, Revision 2a37e4e

Copyright (c) 2009-2018 Percona LLC and/or its affiliates
Copyright (c) 2000, 2018, 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.

Percona [(none)]> set password=password(‘yournewpasswd’);

mysql有密码安全机制,注意设置为足够复杂的密码

7.编辑/etc/mycnf配置文件,修改mysql默认编码

[mysqld] 
character_set_server=utf8

8.安装jemalloc

yum install jemalloc 
rpm -qa |grep jemalloc 
rpm -qa |grep jemalloc 
jemalloc-3.6.0-1.el7.x86_64
rpm -ql jemalloc-3.6.0-1.el7.x86_64
/usr/bin/jemalloc.sh
/usr/lib64/libjemalloc.so.1
/usr/share/doc/jemalloc-3.6.0
/usr/share/doc/jemalloc-3.6.0/COPYING
/usr/share/doc/jemalloc-3.6.0/README
/usr/share/doc/jemalloc-3.6.0/VERSION
/usr/share/doc/jemalloc-3.6.0/jemalloc.html

记录下/usr/lib64/libjemalloc.so.1地址

9.配置jemalloc依赖文件,编辑/etc/my.cnf,其中加入以下内容:

[mysqld_safe] 
malloc-lib=/usr/lib64/libjemalloc.so.1

10.检查Transparent huge pages

echo never > /sys/kernel/mm/transparent_hugepage/enabled 
echo never > /sys/kernel/mm/transparent_hugepage/defrag

11.安装tokudb

yum install Percona-Server-tokudb-57.x86_64

12.修改selinux状态为permissive,编辑编辑/etc/selinux/config修改以下内容:

selinux=permissive
setenforce 0

12.初始设置tokudb

ps_tokudb_admin --enable -uroot -p

输入密码,检查是否成功

13.重启percona

service mysql restart

14.检查确认是否启用tokudb

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 94
Server version: 5.7.21-21-log Percona Server (GPL), Release 21, Revision 2a37e4e

Copyright (c) 2009-2018 Percona LLC and/or its affiliates
Copyright (c) 2000, 2018, 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.

Percona [(none)]> show engines;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |
| TokuDB             | DEFAULT | Percona TokuDB Storage Engine with Fractal Tree(tm) Technology             | YES          | YES  | YES        |
| InnoDB             | YES     | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| ARCHIVE            | YES     | Archive storage engine                                                     | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                             | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.07 sec)

看到tokudb即为成功。

phpmyadmin与php.ini中的socket配置问题

昨天在安装完新的perconesql数据后,发现phpmyadmin不能正常连接了。一时查来查去不知出了什么问题。

后来经过确认,由于php.ini中的mysqli.default_socket和pdo_mysql.default_socke默认为空,实际默认即为/tmp/mysql.sock,此时如果和mysql本身的设置不一致,就会导致phpmyadmin无法有效登录。

我们先查询mysql服务器使用的socket位置:

# mysql -u root -p
Enter password: yourpasswd
mysql> STATUS;
--------------
mysql  Ver 14.14 Distrib 5.7.21-21, for Linux (x86_64) using  6.2

Connection id:		2
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.7.21-21 Percona Server (GPL), Release 21, Revision 2a37e4e
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/lib/mysql/mysql.sock
Uptime:			26 min 14 sec

Threads: 1  Questions: 5  Slow queries: 0  Opens: 105  Flush tables: 1  Open tables: 98  Queries per second avg: 0.003
--------------

mysql> exit
Bye

上面命令中查询到的socket地址为/var/lib/mysql/mysql.sock

修改php.ini文件中的两项:

vi  /etc/php.ini


mysqli.default_socket = /var/lib/mysql/mysql.sock 



pdo_mysql.default_socket = /var/lib/mysql/mysql.so

你也可以设置mysql配置文件my.cnf

vi /etc/my.cnf

[client]
socket          = /var/lib/mysql/mysql.sock

[mysqld]
socket          = /var/lib/mysql/mysql.sock

至此,重启php或httpd就可以登录phpmyadmin