Proxmox Virtual Environment(PVE)完美的更改IP地址

一、在局域网的电脑浏览器输入PVE的IP地址登录后台,从左边的菜单找到“PVE”—“_Shell”菜单,进入网页版的ssh界面下;或者在主机的控制台下输入root密码后登录到ssh下;

二、输入以下命令回车:

vi /etc/network/interfaces

通过键盘上下左右移动到address这行的IP地址,按一次i进入修改状态,修改为新的IP地址,如果需要网关则修改gateway这行,修改完成确认无误后按一次ESC键输入:wq!回车保存退出。

三、输入以下命令回车:

vi /etc/issue

通过键盘上下左右移动到https://这行的IP地址,按一次i进入修改状态,修改为新的IP地址,端口8006不要改,修改完成确认无误后按一次ESC键输入:wq!回车保存退出。

四、输入以下命令回车:

vi /etc/hosts

通过键盘上下左右移动到第2行的IP地址,按一次i进入修改状态,修改为新的IP地址,修改完成确认无误后按一次ESC键输入:wq!回车保存退出。

五、重启PVE,完美解决!

查水表的原理,来了解一下

我们来假设一个案例,在一个月黑风高的晚上,小明在某论坛大肆批评政府,第二天小明刚一睡醒就听见咚咚咚,开门查水表,于是乎小明神秘消失了。

好了,再以网监的角度来看看:

一天,网监局的小红看到了一个网民在网上发了个大肆批判ZF的帖子,心想,这哥们胆子挺大啊?于是联系了那个网络公司,要求调取发帖人IP地址,IP调取结果为122.224.54.112,IPWHOIS登记的所有人为中国电信,好了,网监局小红联系了中国电信,要求查在2019-06-02 03:30使用122.224.54.112的人,之后中国电信乖乖的配合网监局,交出了小明的家庭地址,浙江省绍兴市XXXXXX ,然后水表就没了。

再切换会小明的角度:小明心想,老子明明用的是ADSL,动态IP,发完贴就断开了,怎么还tm被查到了,WTF?
老衲的解释:在各级ISP的日志服务器上都有留存日志,日志留存时间大概是6个月左右,在AAA服务器上留有你登录认证的用户名,时间,分配的IP地址。依靠这个就能找到谁在哪个时间段使用过哪个IP地址。

被拘留15天后的小明终于出来了,他心想,老子就要跟你们这群网监局的人干到底,小明就在网上找到了个代理VPN,继续上网发帖,继续在另一个网站上批评政府,这是个小网站啊,日志留存期内肯定查不到了,而且还挂了个VPN,第二天,小明又被查水表了。

以网监局的小红的角度再看看:诶呀?根据”与情控制系统”的报告,有人在某个小型网站发了个反ZF的文章,小红又火速要求网站提供发帖人IP地址,结果小红一看 175.45.176.11 这是尼玛是我大朝鲜IP啊,难不成是金三胖子发的帖子么?小红想了想,金三胖子不会说中文啊,于是,小红上报了此次事件,上级表示一定要查到,然后小红就去各大出口运营商调取路由日志了,于是小明发现,在2019年6月18日01:38,122.224.250.38链接到了175.45.176.11的某个端口,于是乎小红查了查122.224.250.38在那个时间段是属于谁的?一查,又是小明干的。

小红第二天火速赶往小明家,把正在看电视的小明抓捕归案。小明又被小红胖揍一顿。

小明心想:老子明明挂了VPN了啊,又在小型网站上发帖,怎么又尼玛被抓了。

其实他根本不知道:各级公安系统均配备了舆情控制系统,能采集几乎所有的国内网站的发帖信息,检测到关键字就被单独列出。而且单层VPN很不保险,查路由日志就查到了。

又是蹲了15天拘留。

小明肯定心里很不爽啊,于是苦修黑阔技术。同时中国电信也拒绝继续向小明提供服务,他换成了广电网络(二级ISP,出口IP都一样,几千人共用一个IP)之后又学会了一招,双层VPN/变换出口IP的VPN(就比如链接用175.45.176.11,但是访问网站的时候出口IP就变成了175.45.179.244,这样就没法靠路由日志查了),于是乎小明又继续批评ZF

网监局的小红看到后,这怎么又有人发帖了,查吧。一看,IP是175.45.179.244,这尼玛又是我大朝鲜的IP,是不是小明干的啊?但是没证据啊,于是又查了查路由日志,这回什么都没有,小红心想,这小明技术提高了啊。于是乎小红要求国内各大网络公司提供175.45.179.244这个IP的访问记录,于是某企鹅公司说了,这个IP登录过我们公司的服务,号码是12345668,小红又要求某企鹅公司提供这个号码的历史登录记录,于是乎小红看到了,看IP是二级ISP的,几千人共用一个ip啊,怎么办呢?小红又要求企鹅公司提供登录端口号,然后又同时根据二级ISP内网审计设备查到了登录该qq的内网IP,于是根据内网记录,查到了网络开户人就是小明。
小红火速赶到了小明的家,又把小明抓走了。这是小明的三进宫了,小红也表示很无奈,渐渐的,单身的小红和小明互相就有了好感(>.<尼玛)

小明想:老子都用二级ISP了,也用双重VPN了,怎么又尼玛被抓了,wr!!

小明又没想到:首先二级ISP有更严格的内网审计功能,你要是直接登录QQ,他们的内网审计就能直接看到你登录的QQ帐号但是看不到你的聊天记录,因为加密的。某局实验室的设备可以直接看到你的聊天记录(有QQ的解密密钥,还能解飞信,YY之类的,毕竟中国的企业必须给WJ部门提供方便)。虽然是几千人共用一个IP,但是端口号是唯一的,可以通过端口号查内网路由日志。而且这种VPN甚至IPSecVPN能在某墙的干扰下变成纯明文VPN,因为windows系统中可能有bug,即使开启了必须加密也能链接成功,但是却没加密。这就是为什么有时候你开VPN上网,DNS都设置好了,还是打不开非死不可之类的网站。即使这些情况都没有,你也不能保证VPN服务商跟WJ部门没有合作的。而且电脑上有很多国产软件是和WJ部门有合作的,比如搜狗拼音,腾讯qq啊之类的,这些软件的特征是 开启时间长,可长时间驻留,每日必备。在你开全局VPN的时候,你的qq,搜狗拼音等也会被代理上,比如qq会断线重链,根据每个人的唯一码,很简单找到你。

是15天的拘留,小明很不爽啊,出来后苦苦学习黑阔技术,之后又学会了一招
小明用了个Linux LiveCD,把电脑网卡MAC都改了,然后破解了邻居的一个WiFi,然后用I2P作为前置代理链接上了TOR网络,然后继续发帖。第二天,咚咚咚,小明又被小红带走了。

网监局小红:还是有人发帖批评ZF啊,于是小红查了下发帖IP,是个欧洲的TOR出口,小红心想,这怎么办呢,TOR网络,不可能继续追查下去了。小红看了看发帖的用户名:laozishixiaoming,这个用户名。。。
然后百度谷歌搜索了下这个用户名,发现这个用户名注册过很多网站,于是乎联系这些网站要求提供IP,拿到IP后查AAA服务器记录,一看,是小明。于是小红气呼呼的奔向了小明家…………….
小明心想:又尼玛栽了。
小红说:想见我不要用这种方法吧?

总结:
这是社会工程学的一种手段,小明犯的致命错误就是用了自己的常用用户名发帖。

首先,要做到匿名发帖就要保证自己的电脑没有”后门”,这里的”后门”指不经自己授权就随意发送接受自己不想被发送或接收的数据。在这个条件下,腾讯qq,搜狗拼音,暴风影音,迅雷等就是”后门”。

其次要应用的安全,比如VPN总不能被干扰成明文了你还在网上狂吧? IP藏匿手段要好,最好用I2P+TOR代理。

最重要的也是要保证社会工程学的防御,很多发帖人就栽在这上面了……

这个故事的结局是:

小明被政府以高薪聘用成为网监局的一名专家,在职期间抓了无数中二,最后他和小红结了婚,从此他们过上了幸福的生活。。。(这是篇教大家如何泡网警妹子的攻略。)

CentOS 8.x编译安装Nginx1.16.x+MySQL8.0.x+PHP7.4.x 7.3.x 7.2.x 7.1.x 7.0.x 5.6.x 5.5.x 5.3.x 多版本全能环境

CentOS 8.x编译安装Nginx1.16.x+MySQL8.0.x+PHP7.4.x 7.3.x 7.2.x 7.1.x 7.0.x 5.6.x 5.5.x 5.3.x 多版本全能环境 | 系统运维

准备篇

一、防火墙配置

CentOS 8.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

systemctl mask firewalld

systemctl stop firewalld

yum remove firewalld

2、安装iptables防火墙

yum install iptables-services #安装

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT

-A INPUT -j REJECT –reject-with icmp-host-prohibited

-A FORWARD -j REJECT –reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

systemctl restart iptables.service #最后重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

/usr/libexec/iptables/iptables.init restart #重启防火墙

二、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

三 、系统约定

软件源代码包存放位置:/usr/local/src

源码包编译安装位置:/usr/local/软件名字

四、下载软件包

1、下载nginx

http://nginx.org/download/nginx-1.16.1.tar.gz

2、下载MySQL

http://mirrors.sohu.com/mysql/MySQL-8.0/mysql-8.0.19.tar.gz

3、下载php

http://mirrors.sohu.com/php/php-7.4.4.tar.gz
http://mirrors.sohu.com/php/php-7.3.16.tar.gz
http://mirrors.sohu.com/php/php-7.2.29.tar.gz
http://mirrors.sohu.com/php/php-7.1.33.tar.gz
http://mirrors.sohu.com/php/php-7.0.33.tar.gz
http://mirrors.sohu.com/php/php-5.6.40.tar.gz
http://mirrors.sohu.com/php/php-5.5.38.tar.gz
http://mirrors.sohu.com/php/php-5.4.45.tar.gz
http://mirrors.sohu.com/php/php-5.3.29.tar.gz
http://museum.php.net/php5/php-5.2.17.tar.gz
http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz

4、下载cmake(MySQL编译工具)

https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz

5、下载pcre (支持nginx伪静态)

http://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz

6、下载openssl(nginx扩展)

6.1下载最新稳定版本,适用于nginx扩展https

https://www.openssl.org/source/openssl-1.1.1e.tar.gz

6.2下载旧版本,适用于php5.6.x及其以下版本编译安装openssl扩展

https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz

7、下载zlib(nginx扩展)

http://www.zlib.net/zlib-1.2.11.tar.gz

8、下载libmcrypt(php扩展)

https://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

9、下载yasm(php扩展)

http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

10、t1lib(php扩展)

http://download.freenas.org/distfiles/t1lib-5.1.2.tar.gz

11、下载gd库安装包

11.1适用于php 5.4.x及其以上版本

https://github.com/libgd/libgd/releases/download/gd-2.3.0/libgd-2.3.0.tar.gz

11.2适用于 php 5.3.x 5.2.x版本

https://jaist.dl.sourceforge.net/project/gd2/gd-2.0.35.tar.gz

12、libvpx(gd库需要)

https://github.com/webmproject/libvpx/archive/v1.8.2/libvpx-1.8.2.tar.gz

13、tiff(gd库需要)

http://download.osgeo.org/libtiff/tiff-4.0.7.tar.gz

14、libpng(gd库需要)

ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.37.tar.gz

15、freetype(gd库需要)

https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz

16、jpegsrc(gd库需要)

http://distfiles.macports.org/jpeg/jpegsrc.v9d.tar.gz

17、Boost(编译mysql需要)

https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz

18、libzip(编译php需要)

https://libzip.org/download/libzip-1.2.0.tar.gz

19、rpcsvc-proto(编译MySQL需要)

https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz

20、oniguruma(编译安装php7.4.x需要)

https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz

21、curl库(编译php需要)

https://curl.haxx.se/download/curl-7.29.0.tar.gz

五、安装编译工具及库文件(使用yum命令安装)

yum install apr* autoconf automake bison bzip2 bzip2* cpp curl curl-devel fontconfig fontconfig-devel freetype-devel gcc gcc-c++ gd gd-devel gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* make openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet wget zlib-devel ncurses-devel libtirpc-devel gtk* ntpstat bison* sqlite-devel oniguruma libzip-devel

安装篇

以下是用putty工具远程登录到服务器,在命令行下面操作的

一、安装MySQL

1、安装rpcsvc-proto

cd /usr/local/src

tar zxvf rpcsvc-proto-1.4.tar.gz

cd rpcsvc-proto-1.4

./configure

make

make install

2、安装cmake

cd /usr/local/src

tar zxvf cmake-3.15.4.tar.gz

cd cmake-3.15.4

./configure

make

make install

3、安装MySQL

cd /usr/local/src

mkdir -p /usr/local/boost

cp boost_1_70_0.tar.gz /usr/local/boost

groupadd mysql #添加mysql组

useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统

mkdir -p /data/mysql #创建MySQL数据库存放目录

chown -R mysql:mysql /data/mysql #设置MySQL数据库存放目录权限

mkdir -p /usr/local/mysql #创建MySQL安装目录

cd /usr/local/src #进入软件包存放目录

tar zxvf mysql-8.0.19.tar.gz #解压

cd mysql-8.0.19 #进入目录

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_EMBEDDED_SERVER=1 -DFORCE_INSOURCE_BUILD=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DWITH_BOOST=/usr/local/boost

make #编译

make install #安装

编译出错, 重新编译前要删除编译失败的文件,重新编译时,需要清除旧的对象文件和缓存信息。

make clean

rm -f CMakeCache.txt

rm -rf /etc/my.cnf #删除系统默认的配置文件(如果默认没有就不用删除)

cd /usr/local/mysql #进入MySQL安装目录

./bin/mysqld –user=mysql –initialize –basedir=/usr/local/mysql –datadir=/data/mysql #生成mysql系统数据库

–initialize表示默认生成密码, –initialize-insecure 表示不生成密码, 密码为空。

看到这一行[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: LZrRpp40AG*-

记录下自动生成的mysql管理员root账号登录密码LZrRpp40AG*-

vi /usr/local/mysql/my.cnf #mysql 8.0.x默认没有配置文件,我们自己创建一个。

[client]

port=3306

socket=/tmp/mysql.sock

[mysqld]

port=3306

user = mysql

socket=/tmp/mysql.sock

tmpdir = /tmp

key_buffer_size=16M

max_allowed_packet=128M

default_authentication_plugin=mysql_native_password #设置加密方式为mysql_native_password,MySQL 8.0.x默认使用caching_sha2_password加密。

open_files_limit = 60000

explicit_defaults_for_timestamp

server-id = 1

character-set-server = utf8

federated

max_connections = 1000

max_connect_errors = 100000

interactive_timeout = 86400

wait_timeout = 86400

sync_binlog=0

back_log=100

default-storage-engine = InnoDB

log_slave_updates = 1

[mysqldump]

quick

[client]

# The following password will be sent to all standard MySQL clients

password=”my password”

[mysqld-8.0]

sql_mode=TRADITIONAL

[mysqladmin]

force

[mysqld]

key_buffer_size=16M

:wq! #保存退出

ln -s /usr/local/mysql/my.cnf /etc/my.cnf #添加到/etc目录的软连接

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动

chmod 755 /etc/init.d/mysqld #增加执行权限

chkconfig mysqld on #加入开机启动

vi /etc/rc.d/init.d/mysqld #编辑

basedir=/usr/local/mysql #MySQL程序安装路径

datadir=/data/mysql #MySQl数据库存放目录

:wq! #保存退出

service mysqld start #启动

vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行

export PATH=$PATH:/usr/local/mysql/bin

:wq! #保存退出

source /etc/profile #使配置立刻生效

下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。

ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

ln -s /usr/local/mysql/include/mysql /usr/include/mysql

mkdir /var/lib/mysql #创建目录

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加软链接

mysql -u root -p #输入之前生成的密码LZrRpp40AG*-回车

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER; #修改密码,NEVER表示密码永不过期

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’ PASSWORD EXPIRE NEVER; #使用WITH mysql_native_password加密

#MySQL 8.0.x加密方式从mysql_native_password 更改为 caching_sha2_password,mysql8.0.x之前的客户端远程连接可能报错:authentication plugin caching_sha2

flush privileges; #刷新系统授权表

exit #退出mysql控制台

4、创建MySQL数据库、添加用户并授权

数据库名称:www.osyunwei.com

数据库用户名:osyunwei.com

数据库密码:osyunwei

授权osyunwei.com用户对www.osyunwei.com具有全部操作权限

继续在mysql控制台操作

mysql -u root -p #输入刚刚修改过的密码123456,回车

4.1、Create DATABASE IF NOT EXISTS www.osyunwei.com default charset utf8 COLLATE utf8_general_ci; #创建数据库

4.2、CREATE USER ‘osyunwei.com’@’localhost’ IDENTIFIED BY ‘osyunwei’; #创建用户

CREATE USER ‘osyunwei.com’@’127.0.0.1’ IDENTIFIED WITH mysql_native_password BY ‘osyunwei’; #加密方式为mysql_native_password

4.3、grant all privileges on www.osyunwei.com.* to ‘osyunwei.com’@’localhost’; #授权用户osyunwei.com对数据库www.osyunwei.com具有全部操作权限

grant all privileges on www.osyunwei.com.* to ‘osyunwei.com’@’127.0.0.1’; #授权用户

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’localhost’ WITH GRANT OPTION; #授权root用户具有全部数据库本地权限

4.4、MySQL5.7版本后要授权用户对所有数据库有SUPER权限,否则上一步对用户的授权只能连接但无任何操作权限。

grant SUPER on *.* to ‘osyunwei.com’@’localhost’ ; #授予用户对所有数据库有SUPER权限,否则只能连接无任何操作权限。

grant SUPER on *.* to ‘osyunwei.com’@’127.0.0.1’ ;

flush privileges; #刷新系统授权表

exit #退出mysql控制台

service mysqld restart #重启mysql数据库

二、安装Nginx

1、安装pcre

cd /usr/local/src

mkdir /usr/local/pcre

tar zxvf pcre-8.44.tar.gz

cd pcre-8.44

./configure –prefix=/usr/local/pcre

make

make install

2、安装openssl

cd /usr/local/src

mkdir /usr/local/openssl

tar zxvf openssl-1.1.1e.tar.gz

cd openssl-1.1.1e

./config  -fPIC shared  zlib –prefix=/usr/local/openssl

make

make install

3、安装zlib

cd /usr/local/src

mkdir /usr/local/zlib

tar zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure –prefix=/usr/local/zlib

make

make install

4、安装Nginx

groupadd www

useradd -g www www -s /bin/false

cd /usr/local/src

tar zxvf nginx-1.16.1.tar.gz

cd nginx-1.16.1

./configure –prefix=/usr/local/nginx –without-http_memcached_module –user=www –group=www –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-openssl=/usr/local/src/openssl-1.1.1e –with-zlib=/usr/local/src/zlib-1.2.11 –with-pcre=/usr/local/src/pcre-8.44

注意:–with-openssl=/usr/local/src/openssl-1.1.1e –with-zlib=/usr/local/src/zlib-1.2.11 –with-pcre=/usr/local/src/pcre-8.44指向的是源码包解压的路径,而不是安装的路径,否则会报错

make

make install

/usr/local/nginx/sbin/nginx #启动Nginx

设置nginx开机启动

vi /lib/systemd/system/nginx.service #添加以下代码

[Unit]

Description=The NGINX HTTP and reverse proxy server

After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStartPre=/usr/local/nginx/sbin/nginx -t

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/bin/kill -s QUIT $MAINPID

ExecStartPost=/bin/sleep 0.1

PrivateTmp=true

[Install]

WantedBy=multi-user.target

:wq! #保存退出

/usr/local/nginx/sbin/nginx -s stop #停止

systemctl enable nginx.service #设置开机自启动

systemctl start nginx.service #启动

systemctl stop nginx.service #关闭

systemctl restart nginx.service #重启

systemctl reload nginx.service #重新加载配置文件

在浏览器中打开服务器IP地址,会看到下面的界面,说明Nginx安装成功。

扩展阅读:

Nginx配置txt、pdf、doc、xls等文件直接下载的方法

在nginx配置文件中添加以下代码

location / {

if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){

add_header Content-Disposition: ‘attachment;’;

}

}

三、安装php

(一):安装php依赖包

1、安装yasm

cd /usr/local/src

tar zxvf yasm-1.3.0.tar.gz

cd yasm-1.3.0

./configure

make

make install

2、安装libmcrypt

cd /usr/local/src

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure

make

make install

3、安装libvpx

cd /usr/local/src

tar zxvf libvpx-1.8.2.tar.gz

cd libvpx-1.8.2

./configure –prefix=/usr/local/libvpx –enable-shared –enable-vp9

make

make install

4、安装tiff

cd /usr/local/src

tar zxvf tiff-4.0.7.tar.gz

cd tiff-4.0.7

./configure –prefix=/usr/local/tiff –enable-shared

make

make install

5、安装libpng

cd /usr/local/src

tar zxvf libpng-1.6.37.tar.gz #解压

xz -d libpng-1.6.37.tar.xz #先解压xz

tar xvf libpng-1.6.37.tar #再解压tar

或者

tar xvJf libpng-1.6.37.tar.xz #直接解压

cd libpng-1.6.37

./configure –prefix=/usr/local/libpng –enable-shared

make

make install

6、安装freetype

cd /usr/local/src

tar zxvf freetype-2.10.1.tar.gz

cd freetype-2.10.1

./configure –prefix=/usr/local/freetype –enable-shared

make

make install

7、安装jpeg

cd /usr/local/src

tar zxvf jpegsrc.v9d.tar.gz

cd jpeg-9d

./configure –prefix=/usr/local/jpeg –enable-shared

make

make install

8、安装GD库

8.1安装新版本libgd,适用于php5.4.x及其以上版本

cd /usr/local/src

tar zxvf libgd-2.3.0.tar.gz

cd libgd-2.3.0

./configure –prefix=/usr/local/libgd –enable-shared –with-jpeg=/usr/local/jpeg –with-png=/usr/local/libpng –with-freetype=/usr/local/freetype –with-fontconfig=/usr/local/freetype –with-xpm=/usr/lib64 –with-tiff=/usr/local/tiff

make

make install

8.2安装旧版本gd库,适用于php5.3x及其以下版本

cd /usr/local/src

tar zxvf gd-2.0.35.tar.gz

cd gd-2.0.35

./configure –prefix=/usr/local/gd –enable-shared –with-jpeg=/usr/local/jpeg –with-png=/usr/local/libpng –with-freetype=/usr/local/freetype –with-fontconfig=/usr/local/freetype –with-xpm=/usr/lib64 –with-tiff=/usr/local/tiff –with-vpx=/usr/local/libvpx

make

make install

9、安装t1lib

cd /usr/local/src

tar zxvf t1lib-5.1.2.tar.gz

cd t1lib-5.1.2

./configure –prefix=/usr/local/t1lib –enable-shared

make without_doc

make install

10、安装libzip

cd /usr/local/src

tar -zxvf libzip-1.2.0.tar.gz

cd libzip-1.2.0

./configure

make

make install

cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h

#拷贝文件,否则安装php可能会报错 /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or dire

11、安装oniguruma #编译安装php7.4.x需要

cd /usr/local/src

tar -zxf oniguruma-6.9.4.tar.gz

cd oniguruma-6.9.4

./autogen.sh

./configure –prefix=/usr

make

make install

12、安装低版本openssl #适用于编译php5.6.x及其以下版本

CentOS 8.x默认的openssl版本太高,与php 5.6.x不兼容,需要降低openssl版本才能编译成功

which openssl #查询openssl目录,如/usr/include/openssl

openssl version #查看openssl版本

cd /usr/local/src

mkdir /usr/local/ssl

tar zxvf openssl-1.0.2k.tar.gz

cd openssl-1.0.2k

./config -fPIC  shared  zlib  –prefix=/usr/local/ssl

make

make install

mv /usr/bin/openssl   /usr/bin/openssl.old

mv /usr/include/openssl   /usr/include/openssl.old

mv /usr/lib64/libssl.so     /usr/lib64/libssl.so.old

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/ssl/include/openssl /usr/include/openssl

ln -s /usr/local/ssl/lib/libssl.so /usr/lib64/libssl.so

echo “/usr/local/ssl/lib” >> /etc/ld.so.conf

ldconfig -v #建立动态链接

openssl version

注意:带shared参数才能生成libssl.so动态链接库文件,安装curl时, –with-ssl=/usr/local/ssl 才能找到动态链接库,curl才能开启ssl模块

13、安装curl模块

cd /usr/local/src

mkdir /usr/local/curl

tar zxvf curl-7.29.0.tar.gz

cd curl-7.29.0

./configure –without-nss –prefix=/usr/local/curl –with-ssl=/usr/local/ssl

make

make install

(二):编译安装php

注意:如果系统是64位,请执行以下两条命令,否则安装php会出错。

\cp -frp /usr/lib64/libltdl.so* /usr/lib/

\cp -frp /usr/lib64/libXpm.so* /usr/lib/

1.53、安装php5.3.x

cd /usr/local/src

tar -zvxf php-5.3.29.tar.gz

cd php-5.3.29

./configure –prefix=/usr/local/php53 –with-config-file-path=/usr/local/php53/etc –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/gd –with-png-dir=/usr/lib –with-jpeg-dir=/usr/lib –with-freetype-dir=/usr/lib –with-iconv –with-zlib-dir=/usr/local/zlib –enable-xml –enable-magic-quotes –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curlwrappers –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

make #编译

make install #安装

cp php.ini-production /usr/local/php53/etc/php.ini #复制php配置文件到安装目录

#rm -rf /etc/php.ini #删除系统自带配置文件

#ln -s /usr/local/php53/etc/php.ini /etc/php.ini #添加软链接

cp /usr/local/php53/etc/php-fpm.conf.default /usr/local/php53/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

vi /usr/local/php53/etc/php-fpm.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

pid = run/php-fpm.pid #取消前面的分号

listen = 127.0.0.1:9053

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-5.3.29/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php53-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php53-fpm #添加执行权限

chkconfig php53-fpm on #设置开机启动

vi /etc/rc.d/init.d/php53-fpm

prefix=/usr/local/php53

php_fpm_BIN=${exec_prefix}/sbin/php53-fpm

:wq! #保存退出

mv /usr/local/php53/sbin/php-fpm /usr/local/php53/sbin/php53-fpm

service php53-fpm start #启动

vi /usr/local/php53/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = OFF #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

1.55、安装php5.5.x

cd /usr/local/src

tar -zvxf php-5.5.38.tar.gz

cd php-5.5.38

export LD_LIBRARY_PATH=/usr/local/libgd/lib

./configure –prefix=/usr/local/php55 –with-config-file-path=/usr/local/php55/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-vpx-dir=/usr/local/libvpx/ –with-zlib-dir=/usr/local/zlib –with-t1lib=/usr/local/t1lib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

make #编译

make install #安装

cp php.ini-production /usr/local/php55/etc/php.ini #复制php配置文件到安装目录

#rm -rf /etc/php.ini #删除系统自带配置文件

#ln -s /usr/local/php55/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php55/etc/php-fpm.conf.default /usr/local/php55/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

#ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

vi /usr/local/php55/etc/php-fpm.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

pid = run/php-fpm.pid #取消前面的分号

listen = 127.0.0.1:9055

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-5.5.38/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php55-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php55-fpm #添加执行权限

chkconfig php55-fpm on #设置开机启动

vi /etc/rc.d/init.d/php55-fpm

prefix=/usr/local/php55

php_fpm_BIN=${exec_prefix}/sbin/php55-fpm

:wq! #保存退出

mv /usr/local/php55/sbin/php-fpm /usr/local/php55/sbin/php55-fpm

vi /usr/local/php55/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:opcache.enable_cli=1 #php支持opcode缓存

修改为:opcache.enable_cli=0

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

1.56、安装php5.6.x

cd /usr/local/src

tar -zvxf php-5.6.40.tar.gz

cd php-5.6.40

export LD_LIBRARY_PATH=/usr/local/libgd/lib

./configure –prefix=/usr/local/php56 –with-config-file-path=/usr/local/php56/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-vpx-dir=/usr/local/libvpx/ –with-zlib-dir=/usr/local/zlib –with-t1lib=/usr/local/t1lib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

make

make install

如果编译错误,可以清理后在编译一次

make clean #清理

make #编译

cp php.ini-production /usr/local/php56/etc/php.ini #复制php配置文件到安装目录

#rm -rf /etc/php.ini #删除系统自带配置文件

#ln -s /usr/local/php56/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

#ln -s /usr/local/php56/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

vi /usr/local/php56/etc/php-fpm.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

pid = run/php-fpm.pid #取消前面的分号

listen = 127.0.0.1:9056

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-5.6.40/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php56-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php56-fpm #添加执行权限

chkconfig php56-fpm on #设置开机启动

vi /etc/rc.d/init.d/php56-fpm

prefix=/usr/local/php56

php_fpm_BIN=${exec_prefix}/sbin/php56-fpm

:wq! #保存退出

mv /usr/local/php56/sbin/php-fpm /usr/local/php56/sbin/php56-fpm

vi /usr/local/php56/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:;opcache.enable_cli=1 #php支持opcode缓存

修改为:opcache.enable_cli=0

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

1.70、安装php7.0.x

cd /usr/local/src

tar -zvxf php-7.0.33.tar.gz

cd php-7.0.33

export LD_LIBRARY_PATH=/usr/local/libgd/lib

./configure –prefix=/usr/local/php70 –with-config-file-path=/usr/local/php70/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

make #编译

make install #安装

cp php.ini-production /usr/local/php70/etc/php.ini #复制php配置文件到安装目录

#rm -rf /etc/php.ini #删除系统自带配置文件

#ln -s /usr/local/php70/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php70/etc/php-fpm.conf.default /usr/local/php70/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

#ln -s /usr/local/php70/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

vi /usr/local/php70/etc/php-fpm.conf #编辑

pid = run/php-fpm.pid #取消前面的分号

include=/usr/local/php70/etc/php-fpm.d/*.conf

:wq! #保存退出

cp /usr/local/php70/etc/php-fpm.d/www.conf.default /usr/local/php70/etc/php-fpm.d/www.conf

vi /usr/local/php70/etc/php-fpm.d/www.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

listen = 127.0.0.1:9070

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-7.0.33/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php70-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php70-fpm #添加执行权限

chkconfig php70-fpm on #设置开机启动

vi /etc/rc.d/init.d/php70-fpm

prefix=/usr/local/php70

php_fpm_BIN=${exec_prefix}/sbin/php70-fpm

:wq! #保存退出

mv /usr/local/php70/sbin/php-fpm /usr/local/php70/sbin/php70-fpm

vi /usr/local/php70/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:;opcache.enable_cli=1 #php支持opcode缓存

修改为:opcache.enable_cli=0

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

1.71、安装php7.1.x

cd /usr/local/src

tar -zvxf php-7.1.33.tar.gz

cd php-7.1.33

export LD_LIBRARY_PATH=/usr/local/libgd/lib

./configure –prefix=/usr/local/php71 –with-config-file-path=/usr/local/php71/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

make #编译

make install #安装

cp php.ini-production /usr/local/php71/etc/php.ini #复制php配置文件到安装目录

rm -rf /etc/php.ini #删除系统自带配置文件

ln -s /usr/local/php71/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php71/etc/php-fpm.conf.default /usr/local/php71/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

ln -s /usr/local/php71/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

vi /usr/local/php71/etc/php-fpm.conf #编辑

pid = run/php-fpm.pid #取消前面的分号

include=/usr/local/php71/etc/php-fpm.d/*.conf

:wq! #保存退出

cp /usr/local/php71/etc/php-fpm.d/www.conf.default /usr/local/php71/etc/php-fpm.d/www.conf

vi /usr/local/php71/etc/php-fpm.d/www.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

listen = 127.0.0.1:9071

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-7.1.33/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php71-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php71-fpm #添加执行权限

chkconfig php71-fpm on #设置开机启动

vi /etc/rc.d/init.d/php71-fpm

prefix=/usr/local/php71

php_fpm_BIN=${exec_prefix}/sbin/php71-fpm

:wq! #保存退出

mv /usr/local/php71/sbin/php-fpm /usr/local/php71/sbin/php71-fpm

vi /usr/local/php71/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:;opcache.enable_cli=1 #php支持opcode缓存

修改为:opcache.enable_cli=0

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

1.72、安装php7.2.x

cd /usr/local/src

tar -zvxf php-7.2.29.tar.gz

cd php-7.2.29

export LD_LIBRARY_PATH=/usr/local/libgd/lib

./configure –prefix=/usr/local/php72 –with-config-file-path=/usr/local/php72/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

make #编译

make install #安装

cp php.ini-production /usr/local/php72/etc/php.ini #复制php配置文件到安装目录

rm -rf /etc/php.ini #删除系统自带配置文件

ln -s /usr/local/php72/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php72/etc/php-fpm.conf.default /usr/local/php72/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

ln -s /usr/local/php72/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

vi /usr/local/php72/etc/php-fpm.conf #编辑

pid = run/php-fpm.pid #取消前面的分号

include=/usr/local/php72/etc/php-fpm.d/*.conf

:wq! #保存退出

cp /usr/local/php72/etc/php-fpm.d/www.conf.default /usr/local/php72/etc/php-fpm.d/www.conf

vi /usr/local/php72/etc/php-fpm.d/www.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

listen = 127.0.0.1:9072

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-7.2.29/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php72-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php72-fpm #添加执行权限

chkconfig php72-fpm on #设置开机启动

vi /etc/rc.d/init.d/php72-fpm

prefix=/usr/local/php72

php_fpm_BIN=${exec_prefix}/sbin/php72-fpm

:wq! #保存退出

mv /usr/local/php72/sbin/php-fpm /usr/local/php72/sbin/php72-fpm

vi /usr/local/php72/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:;opcache.enable_cli=1 #php支持opcode缓存

修改为:opcache.enable_cli=0

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

1.73、安装php7.3.x

1.73.1

cd /usr/local/src

tar -zvxf php-7.3.16.tar.gz

cd php-7.3.16

export LD_LIBRARY_PATH=/usr/local/libgd/lib

export PKG_CONFIG_PATH=”/usr/local/lib/pkgconfig/” #libzip库安装位置,否则安装php可能会报错

./configure –prefix=/usr/local/php73 –with-config-file-path=/usr/local/php73/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd –enable-pdo

make #编译

make install #安装

cp php.ini-production /usr/local/php73/etc/php.ini #复制php配置文件到安装目录

rm -rf /etc/php.ini #删除系统自带配置文件

ln -s /usr/local/php73/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php73/etc/php-fpm.conf.default /usr/local/php73/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

ln -s /usr/local/php73/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

vi /usr/local/php73/etc/php-fpm.conf #编辑

pid = run/php-fpm.pid #取消前面的分号

include=/usr/local/php73/etc/php-fpm.d/*.conf

:wq! #保存退出

cp /usr/local/php73/etc/php-fpm.d/www.conf.default /usr/local/php73/etc/php-fpm.d/www.conf

vi /usr/local/php73/etc/php-fpm.d/www.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

listen = 127.0.0.1:9073

:wq! #保存退出

1.73.2、设置 php-fpm开机启动(有两种设置方法,选择一种即可)

1.73.2.1 #chkconfig方式

cp /usr/local/src/php-7.3.16/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php73-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php73-fpm #添加执行权限

chkconfig php73-fpm on #设置开机启动

vi /etc/rc.d/init.d/php73-fpm

prefix=/usr/local/php73

php_fpm_BIN=${exec_prefix}/sbin/php73-fpm

:wq! #保存退出

mv /usr/local/php73/sbin/php-fpm /usr/local/php73/sbin/php73-fpm

service php73-fpm start #启动php71-fpm

service php73-fpm stop #停止php71-fpm

1.73.2.2 #systemctl方式

vi /usr/lib/systemd/system/php73-fpm.service #编辑添加以下代码

[Unit]

Description=The PHP FastCGI Process Manager

After=syslog.target network.target

[Service]

Type=simple

PIDFile=/run/php-fpm.pid

ExecStart=/usr/local/php73/sbin/php73-fpm –nodaemonize –fpm-config /usr/local/php73/etc/php-fpm.conf

ExecReload=/bin/kill -USR2 $MAINPID

ExecStop=/bin/kill -SIGINT $MAINPID

[Install]

WantedBy=multi-user.target

:wq! #保存退出

mv /usr/local/php73/sbin/php-fpm /usr/local/php73/sbin/php73-fpm

systemctl enable php73-fpm.service #设置开机自启动

systemctl daemon-reload #重新加载systemctll

systemctl start php73-fpm.service #启动

systemctl stop php73-fpm.service #停止

systemctl restart php73-fpm.service #重启

1.73.3 配置php配置文件

vi /usr/local/php73/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:;opcache.enable_cli=1

修改为:opcache.enable_cli=0 #php支持opcode缓存

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

1.74、安装php7.4.x

#恢复CentOS 8.x自带的openssl和curl默认高版本

#php7.4.x中这2个库需要使用CentOS 8.x自带的高版本进行编译–with-openssl  –with-curl

rm -rf /usr/lib64/libssl.so

mv /usr/lib64/libssl.so.old /usr/lib64/libssl.so

rm -rf /usr/include/openssl

mv /usr/include/openssl.old /usr/include/openssl

rm -rf /usr/bin/openssl

mv /usr/bin/openssl.old /usr/bin/openssl

cd /usr/local/src

tar -zvxf php-7.4.4.tar.gz

cd php-7.4.4

export LD_LIBRARY_PATH=/usr/local/libgd/lib #设置libgd库环境变量

export PKG_CONFIG_PATH=”/usr/local/lib/pkgconfig/” #设置libzip环境变量

./configure –prefix=/usr/local/php74 –with-config-file-path=/usr/local/php74/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-gd –with-jpeg=/usr/local/jpeg –with-freetype=/usr/local/freetype –with-xpm=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –with-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –with-openssl –enable-pcntl –enable-sockets –with-xmlrpc –with-zip –enable-soap –without-pear –with-gettext –enable-session –with-curl –enable-ctype –enable-mysqlnd –enable-pdo

make #编译

make install #安装

./configure –help #可以查看编译参数的写法

cp php.ini-production /usr/local/php74/etc/php.ini #复制php配置文件到安装目录

rm -rf /etc/php.ini #删除系统自带配置文件

ln -s /usr/local/php74/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php74/etc/php-fpm.conf.default /usr/local/php74/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

ln -s /usr/local/php74/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

vi /usr/local/php74/etc/php-fpm.conf #编辑

pid = run/php-fpm.pid #取消前面的分号

include=/usr/local/php74/etc/php-fpm.d/*.conf

:wq! #保存退出

cp /usr/local/php74/etc/php-fpm.d/www.conf.default /usr/local/php74/etc/php-fpm.d/www.conf

vi /usr/local/php74/etc/php-fpm.d/www.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

listen = 127.0.0.1:9074

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-7.4.4/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php74-fpm #拷贝php-fpm到启动目录

chmod +x /etc/rc.d/init.d/php74-fpm #添加执行权限

chkconfig php74-fpm on #设置开机启动

vi /etc/rc.d/init.d/php74-fpm

prefix=/usr/local/php74

php_fpm_BIN=${exec_prefix}/sbin/php74-fpm

:wq! #保存退出

mv /usr/local/php74/sbin/php-fpm /usr/local/php74/sbin/php74-fpm

vi /usr/local/php74/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:;opcache.enable_cli=1

修改为:opcache.enable_cli=0 #php支持opcode缓存

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

#恢复openssl安装版本

mv /usr/bin/openssl /usr/bin/openssl.old

mv /usr/include/openssl /usr/include/openssl.old

mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/ssl/include/openssl /usr/include/openssl

ln -s /usr/local/ssl/lib/libssl.so /usr/lib64/libssl.so

ldconfig -v #建立动态链接

openssl version

四、配置nginx支持php

vi /usr/local/nginx/conf/nginx.conf

#修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改

user www www;  #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错

index index.html index.htm index.php; #添加index.php

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9053;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

#取消FastCGI server部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径

/etc/init.d/nginx restart #重启nginx

service php71-fpm start #启动php71-fpm

说明:

fastcgi_pass 127.0.0.1:9000;中使用端口号来区分php版本,需要使用哪个php版本就修改为相应的端口。

9074对应的php版本是php7.4.x

9073对应的php版本是php7.3.x

9072对应的php版本是php7.2.x

9071对应的php版本是php7.1.x

9070对应的php版本是php7.0.x

9056对应的php版本是php5.6.x

9055对应的php版本是php5.5.x

9053对应的php版本是php5.3.x

五、多版本php共存总结

1、规划php安装路径

/usr/local/php53

/usr/local/php55

/usr/local/php56

/usr/local/php70

/usr/local/php71

/usr/local/php72

/usr/local/php73

/usr/local/php74

2、编译php参数

./configure –prefix=/usr/local/php53 –with-config-file-path=/usr/local/php53/etc –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/gd –with-png-dir=/usr/lib –with-jpeg-dir=/usr/lib –with-freetype-dir=/usr/lib –with-iconv –with-zlib-dir=/usr/local/zlib –enable-xml –enable-magic-quotes –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curlwrappers –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

./configure –prefix=/usr/local/php55 –with-config-file-path=/usr/local/php55/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-vpx-dir=/usr/local/libvpx/ –with-zlib-dir=/usr/local/zlib –with-t1lib=/usr/local/t1lib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

./configure –prefix=/usr/local/php56 –with-config-file-path=/usr/local/php56/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-vpx-dir=/usr/local/libvpx/ –with-zlib-dir=/usr/local/zlib –with-t1lib=/usr/local/t1lib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

./configure –prefix=/usr/local/php70 –with-config-file-path=/usr/local/php70/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

./configure –prefix=/usr/local/php71 –with-config-file-path=/usr/local/php71/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –enable-gd-native-ttf –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-mcrypt –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

./configure –prefix=/usr/local/php72 –with-config-file-path=/usr/local/php72/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd

./configure –prefix=/usr/local/php73 –with-config-file-path=/usr/local/php73/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-mysqlnd-compression-support –with-gd=/usr/local/libgd –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/jpeg –with-freetype-dir=/usr/local/freetype –with-xpm-dir=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –enable-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –with-openssl=/usr/local/ssl –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –enable-session –with-curl=/usr/local/curl –enable-ctype –enable-mysqlnd –enable-pdo

./configure –prefix=/usr/local/php74 –with-config-file-path=/usr/local/php74/etc –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –enable-gd –with-jpeg=/usr/local/jpeg –with-freetype=/usr/local/freetype –with-xpm=/usr/lib64 –with-zlib-dir=/usr/local/zlib –with-iconv –with-libxml –enable-xml –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –enable-opcache –enable-mbregex –enable-fpm –enable-mbstring –enable-ftp –with-openssl –enable-pcntl –enable-sockets –with-xmlrpc –with-zip –enable-soap –without-pear –with-gettext –enable-session –with-curl –enable-ctype –enable-mysqlnd –enable-pdo

3、php开机启动设置

cp /usr/local/src/php-5.3.29/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php53-fpm

vi /etc/rc.d/init.d/php53-fpm

prefix=/usr/local/php53

php_fpm_BIN=${exec_prefix}/sbin/php53-fpm

mv /usr/local/php53/sbin/php-fpm    /usr/local/php53/sbin/php53-fpm

4、php监听端口设置

vi /usr/local/php53/etc/php-fpm.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

pid = run/php-fpm.pid #取消前面的分号

listen = 127.0.0.1:9053

5、nginx结合php

修改nginx站点配置文件

/usr/local/nginx/conf/nginx.conf

fastcgi_pass 127.0.0.1:9053;

根据之前php的设置,选择相应的端口,例如9053对应的php版本是php5.3.x

那么此站点的php版本就为php5.3.x

fastcgi_pass 127.0.0.1:9055;

根据之前php的设置,选择相应的端口,例如9055对应的php版本是php5.5.x

那么此站点的php版本就为php5.5.x

测试篇

cd /usr/local/nginx/html/ #进入nginx默认网站根目录

rm -rf /usr/local/nginx/html/* #删除默认测试页

vi index.php #新建index.php文件

<?php

phpinfo();

?>

:wq! #保存退出

chown www.www /usr/local/nginx/html/ -R #设置目录所有者

chmod 700 /usr/local/nginx/html/ -R #设置目录权限

后记:

CentOS 8.x + MySQL8.0.x + php 7.4组合建议使用系统自带的GD库进行编译,php驱动只有mysqli和mysqlnd驱动。

CentOS 8.x + MySQL8.0.x + php 7.3/7.2/7.1/7.0/5.6/5.5组合建议使用libgd-2.3.0进行编译,php驱动包括mysqli和mysqlnd

CentOS 8.x + MySQL8.0.x + php 5.3组合建议使用gd-2.0.35进行编译,php驱动只有mysqlnd

CentOS 8.x + MySQL8.0.x + php 5.4/5.2,此组合目前编译安装php存在问题,不推荐。

推荐:CentOS 8.x + MySQL8.0.x使用php 7.3/7.2/7.1/7.0/5.6/5.5组合最佳。

php各个小版本的安装过程相同,如php 7.3.10和php 7.3.16安装过程一样。

至此,CentOS 8.x编译安装Nginx1.16.x+MySQL8.0.x+PHP7.4.x 7.3.x 7.2.x 7.1.x 7.0.x 5.6.x 5.5.x 5.3.x 多版本全能环境教程完成。

Huawei交换机配置Telnet登录

 Huawei交换机配置Telnet登录

一,交换机开启Telnet服务

<Huawei>system-view                                                               #进入系统视图

[Huawei]telnet server ?                                                            #查看有enable还是disable选项,选择对应的开启方式。

[Huawei]telnet server enable                                                     #enable选项开启Telnet服务 (普通系列一般为这个)

[Huawei]undo telnet server disable                                           #disable选项开启Telnet服务 (CE高端系列一般为这个)

二,配置VTY用户界面的最大个数(同时可以登录的最大数)

[Huawei]user-interface maximum-vty 15                                  #默认是5,这个可以不设置

三,配置VTY用户界面的终端属性

[Huawei]user-interface vty 0 14                                     #上面是15所有这里是0 14 如果选择默认这里是0 4

[Huawei-ui-vty0-14]protocol inbound telnet                          #配置VTY用户界面支持Telnet协议,缺省情况下,用户界面支持所有协议,这个可以不配

[Huawei-ui-vty0-14]user privilege level 3                           #设置用户级别。3为管理级,有最高权限。

四,配置VTY用户界面的用户验证方式

系统提供AAA验证、密码验证两种方式。配置用户验证方式可以增加设备的安全性。
操作步骤

1、设置AAA验证

[Huawei]user-interface vty 0 14                                         #进入VTY 用户界面视图。0 14表示15个用户,如果只输入14表示只进入14这个VTY

[Huawei-ui-vty0-14]authentication-mode aaa,                            #设置用户验证方式为AAA验证。

[Huawei-ui-vty0-14]quit                                                 #退出VTY用户界面视图

[Huawei]aaa                                                             #进入AAA视图

[Huawei-aaa]local-user admin1234 password ?                             #查看可以选择的密码选择

[Huawei-aaa]local-user admin1234 password simple Huawei12#$              #密码选项simple 账号admin1234 密码Huawei12#$ (普通系列一般为这个)

[Huawei-aaa]local-user admin1234 password irreversible-cipher Huawei12#$             #密码选项irreversible-cipher 账号admin1234 密码Huawei12#$ (CE高端系列一般为这个)
[Huawei-aaa]local-user admin1234 service-type  telnet                    #配置本地用户的接入类型为Telnet

[Huawei-aaa]quit                                                         #退出AAA视图。

[Huawei]commit                                                           #提交配置

2、设置密码验证

[Huawei]user-interface vty 0 14                                           #进入VTY用户界面视图

[Huawei-ui-vty0-14]authentication-mode password                           #设置用户验证方式为密码验证

[Huawei-ui-vty0-14]set authentication password  Huawei12#$                #设置验证密码,输入的密码可以是明文或密文

        说明:

        输入的密码可以是明文或者密文,当不指定cipher password参数时,将采用交互方式输入明文密码,当指定cipher password参数时,既可以输入明文密码也可以输入密文密码,但都将以密文形式保存在配置文件中。

<Huawei>save                                                                                                                         #保存配置

Huawei交换机VRP配置介绍

一、命令视图
• 用户视图<Huawei>
• 系统视图 [Huawei]
• 接口视图 [Huawei-GigabitEthernet0/0/1]
• 协议视图 [Huawei-rip-1]
• 用户界面(User-interface)视图 [Huawei-ui-vty0-4]
• 等
VRP分层的命令结构定义了很多命令行视图,每条命令只能在特定的视
图中执行。本例介绍了常见的命令行视图。每个命令都注册在一个或多
个命令视图下,用户只有先进入这个命令所在的视图,才能运行相应的
命令。进入到VRP系统的配置界面后,VRP上最先出现的视图是用户视
图。在该视图下,用户可以查看设备的运行状态和统计信息。若要修改系统参数,用户必须进入系统视图。用户还可以通过系统视图进入其他的功能配置视图,如接口视图和协议视图。通过提示符可以判断当前所处的视图,例如:“< >”表示用户视图,“[]”表示除用户视图以外的其它视图。
二、基本VRP命令结构
华为网络设备功能的配置和业务的部署都是通过VRP命令行来配置,命令行是在设备内部注册的,具有一定格式和功能的字符串。一条命令行由关键字和参数组成,关键字可以唯一确定一条命令行,参数是完善命令行的格式。

三、命令级别与用户权限级别
系统将命令进行分级管理,以增加设备的安全性。设备管理员可以设置
用户级别,一定级别的用户可以使用对应级别的命令行。缺省情况下命
令级别分为0~3级,用户级别分为0~15级。用户0级为访问级别,对应
网络诊断工具命令(ping、tracert)、从本设备出发访问外部设备的命
令(Telnet客户端)、部分display命令等。用户1级为监控级别,对应
命令级0、1级,包括用于系统维护的命令以及display等命令。用户2级
是配置级别,包括向用户提供直接网络服务,包括路由、各个网络层次
的命令。用户3-15级是管理级别,对应命令3级,该级别主要是用于系
统运行的命令,对业务提供支撑作用,包括文件系统、FTP、TFTP下载
、文件交换配置、电源供应控制,备份板控制、用户管理、命令级别设
置、系统内部参数设置以及用于业务故障诊断的debugging命令。
在具体使用中,如果我们有多个管理员帐号,但只允许某一个管理员保
存系统配置,则可以将save命令的级别提高到4级,并定义只有该管理
员有4级权限。这样,在不影响其他用户的情况下,可以实现对命令的
使用控制。默认情况下3级用户就可以操作VRP系统的所有命令。



四、用户界面
每类用户界面都有对应的用户界面视图。用户界面(User-interface)视
图是系统提供的一种命令行视图,用来配置和管理所有工作在异步交互
方式下的物理接口和逻辑接口,从而达到统一管理各种用户界面的目的
。在连接到设备前,用户要设置用户界面参数。系统支持的用户界面包
括Console用户界面和VTY用户界面。控制口(Console Port)是一种
通信串行端口,由设备的主控板提供。虚拟类型终端(Virtual Type
Terminal)是一种虚拟线路端口,用户通过终端与设备建立Telnet或
SSH连接后,也就建立了一条VTY,即用户可以通过VTY方式登录设备
。设备一般最多支持15个用户同时通过VTY方式访问。执行userinterface
maximum-vty number 命令可以配置同时登录到设备的VTY类型用户界面的最大个数。如果将最大登录用户数设为0,则任何用户都不能通过Telnet或者SSH登录到路由器。display user-interface 命令用来查看用户界面信息。
不同的设备,或使用不同版本的VRP软件系统,具体可以被使用的VTY接口的最大数量可能不同。



五、配置登录权限
如果没有权限限制,未授权的用户就可以使用设备获取信息并更改配置
。从设备安全的角度考虑,限制用户的访问和操作权限是很有必要的。
用户权限和用户认证是提升终端安全的两种方式。用户权限要求规定用
户的级别,一定级别的用户只能执行特定级别的命令。
配置用户界面的用户认证方式后,用户登录设备时,需要输入密码进行
认证,这样就限制了用户访问设备的权限。在通过VTY进行Telnet连接
时,所有接入设备的用户都必须要经过认证。
设备提供三种认证模式,AAA模式、密码认证模式和不认证模式。AAA
认证模式具有很高的安全性,因为登录时必须输入用户名和密码。密码
认证只需要输入登录密码即可,所以所有的用户使用的都是同一个密码
。使用不认证模式就是不需要对用户认证直接登陆到设备。需要注意的
是,Console界面默认使用不认证模式。
对于Telnet登录用户,授权是非常必要的,最好设置用户名、密码和指
定和帐号相关联的权限。
注:不同VRP版本执行set authentication password cipher命令有差异
:有些平台需要回车后输入密码,另外一些平台可直接在命令后输入密
码。故在操作具体产品时请查阅相应VRP产品文档。
六、相关配置
1、 进入用户视图,命令提示符是<>号(正常登陆设备CLI(command-line interface,命令行界面)后的第一个视图,查看运行状态或其他参数)
<Huawei>                                                      #Huawei默认的主机名
<Huawei>?
User view commands:
cd Change current directory
check Check information
clear Clear information
clock Specify the system clock
cluster Run cluster command
cluster-ftp FTP command of cluster
compare Compare function
configuration Configuration interlock
copy Copy from one file to another
debugging Enable system debugging functions
delete Delete a file
dir List files on a file system
display Display current system information
fixdisk Recover lost chains in storage device
format Format the device
ftp Establish an FTP connection
hwtacacs-user
kill Release a user terminal interface
language-mode Specify the language environment
lldp Link Layer Discovery Protocol
local-user Add/Delete/Set user(s)
lock Lock the current user terminal interface
mkdir Create a new directory
more Display the contents of a file
move Move the file
—- More —-
2、 输入system-view进入系统视图,命令提示符是[ ]号(从用户视图进入,配置设备的系统参数等)
<Huawei>system-view
[Huawei]
[Huawei]?
System view commands:
aaa AAA
acl Specify ACL configuration information
alarm Enter the alarm view
anti-attack Specify anti-attack configurations
application-apperceive Set application-apperceive information
arp ARP module
arp-miss Specify ARP MISS configuration information
arp-suppress Specify arp suppress configuration information,
default is disabled
authentication Authentication
autoconfig AutoConfig configuration information
bfd Bidirectional Forwarding Detection
bgp Border Gateway Protocol(BGP)
bootrom BootRom
bpdu BPDU message
btv Btv view
bulk-file Specify the file name of bulk statistics
bulk-stat Set bulk statistics
capture-packet Capture-packet
ccc Circuit cross connection
cfm Connectivity fault management
clear Cancel current configuration
cluster Specify the information for cluster configuration
command-privilege Specify the command level
—- More —-

3、 输入quit从系统视图退到用户视图
[Huawei]quit
<Huawei>

4、进入某个接口视图
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]

5、现在开始配置vlan 100 的管理ip 和子网掩码
[Huawei-Vlanif100]ip address 192.168.2.100 255.255.255.0
[Huawei-Vlanif100]

6、配置Console用户界面(用于限制人员通过控制台(Console)连接访问设备)
[Huawei]user-interface console 0                                                 #进入Console用户界面
[Huawei-ui-console0]authentication-mode password
#配置用户界面用户验证方式为密码认证
[Huawei-ui-console0]set authentication password cipher 1234
#配置密文密码为1234

7、配置VTY用户界面(用户可以与设备通过多种方式交互,不同的用户拥有各自不同的用户界面,例Console、AUX 或VTY等连接方式,这里VTY(Virtual Type Terminal) 是虚拟终端的意思)
[Huawei]user-interface vty 0 4                                                    #进入vty用户界面
[Huawei-ui-vty0-4]user privilege level 3                                     #配置用户级别为3
[Huawei-ui-vty0-4]authentication-mode aaa
#配置用户界面用户验证方式为aaa
[Huawei-ui-vty0-4]quit
[Huawei]aaa                                                                               #进入aaa视图
[Huawei-aaa]local-user admin12 password cipher 1234
#配置用户名为admin12 密文密码为1234
[Huawei-aaa]local-user admin12 service-type telnet
#配置用户的接入类型为telnet
[Huawei-aaa]quit
[Huawei]

Huawei配置两台交换机堆叠示例


配置两台交换机堆叠示例(先配置后连线方式,推荐)

一、基本概念

在堆叠中,有以下一些基本概念,如图1所示。
图1 堆叠基本概念示意图

1、 角色
堆叠中的单台交换机称为成员交换机,按照功能不同可以分为以下角色:

主交换机:主交换机(Master)负责管理整个堆叠。堆叠中只有一台主交换机。

备交换机:备交换机(Standby)是主交换机的备份交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。堆叠中只有一台备交换机。

从交换机:从交换机(Slave)主要用于业务转发,从交换机数量越多,堆叠系统的转发能力越强。除主交换机和备交换机外,堆叠中其他所有的成员交换机都是从交换机。

2、堆叠域

交换机通过堆叠链路连接在一起组成一个堆叠,这些成员交换机的集合就是一个堆叠域。为了适应各种组网应用,同一个网络里可以部署多个堆叠,堆叠之间使用域编号(Domain ID)来进行区别。使其不与网络中其他堆叠系统的域编号冲突。

2、堆叠成员ID

堆叠成员ID,即堆叠成员交换机的编号(Member ID),用来标识和管理成员交换机。堆叠中所有成员交换机的堆叠成员ID都是唯一的。

3、堆叠优先级

堆叠优先级是成员交换机的一个属性,主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,当选为主交换机的可能性越大。

4、堆叠物理成员端口

堆叠物理成员端口,即被配置为堆叠模式的物理端口,用于堆叠成员交换机之间的连接。

5、堆叠端口

堆叠端口是一种专用于堆叠的逻辑端口,需要和堆叠物理成员端口绑定。一个堆叠端口可以与一个或多个堆叠物理成员端口绑定,以提高链路的带宽和可靠性。

每台设备支持两个堆叠端口,为Stack-Portn/1和Stack-Portn/2,其中n为设备的堆叠成员ID。


二、组网图形

图1 配置两台交换机堆叠组网图


三、组网需求
在一个新建的企业网络中,要求接入设备具有充足的端口数目,并且希望网络结构简单,易于配置和管理。
如图1所示,接入交换机SwitchA和SwitchB组成堆叠系统。

四、配置思路
采用如下的思路配置:
1. 提前规划好堆叠方案。
2. 按照前期的规划,完成各台交换机的堆叠配置,包括堆叠成员ID、堆叠优先级、堆叠域编号、堆叠端口等。完成后保存配置并将交换机下电。
3. 连接交换机之间的堆叠线缆,然后将交换机上电。
4. 检查堆叠组建是否成功。

五、操作步骤
1. 提前规划堆叠方案。
• 规划SwitchA的堆叠成员ID为1,SwitchB的成员ID为2。
• 规划SwitchA作为主交换机,其堆叠优先级最高,为150。SwitchB的堆叠优先级为120。
• 规划堆叠域编号(Domain ID)为10,不与网络中其他堆叠系统的域编号冲突。
• 规划SwitchA和SwitchB用于堆叠连接的端口为10GE1/0/1~10GE1/0/4。
2. 配置堆叠属性。
# 配置SwitchA的堆叠优先级为150,Domain ID为10。缺省情况下,设备的堆叠成员ID为1。此处默认SwitchA的堆叠成员ID为1,无需配置。

<HUAWEI> system-view                                  #进入系统视图
[~HUAWEI] sysname SwitchA                             #交换机命名为SwitchA
[*HUAWEI] commit                                      #提交配置
[~SwitchA] stack                                      #进入堆叠管理视图
[~SwitchA-stack] stack member 1 priority 150          #配置堆叠成员设备的堆叠成员ID为1(默认就为1),优先级为150
[*SwitchA-stack] stack member 1 domain 10             #配置堆叠域为10
[*SwitchA-stack] quit                                 #退出堆叠管理视图
[*SwitchA] commit
# 配置SwitchB的堆叠成员ID为2,优先级为120,Domain ID为10。
<HUAWEI> system-view
[~HUAWEI] sysname SwitchB
[*HUAWEI] commit
[~SwitchB] stack
[~SwitchB-stack] stack member 1 priority 120
[*SwitchB-stack] stack member 1 domain 10
[*SwitchB-stack] stack member 1 renumber 2 inherit-config    
Warning: The stack configuration of member ID 1 will be inherited to member ID 2 after the device resets. Continue? [Y/N]: y
[*SwitchB-stack] quit
[*SwitchB] commit
说明:
因SwitchB尚未重启,当前堆叠成员ID还是1,所以此时仍使用member 1来进行堆叠配置。
因为修改堆叠成员ID时指定了inherit-config参数,所以SwitchB重启后会继承member 1的堆叠配置;如果不指定inherit-config参数,那么SwitchB重启后不会继承member 1的堆叠配置,需要使用member 2重新进行堆叠配置。
3. 配置堆叠端口。
# 将SwitchA的业务口10GE1/0/1~10GE1/0/4加入堆叠端口1/1。

[~SwitchA] interface stack-port 1/1                                            #创建堆叠端口
[*SwitchA-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4       #向堆叠端口中添加成员端口。
Warning: The interface(s) (10GE1/0/1-1/0/4) will be converted to stack mode and be configured with the port crc-statistics trigger error-down command if the configuration does not exist. After the configuration is complete, these interfaces may go Error-Down (crc-statistics) because there is no shutdown configuration on the interfaces. [Y/N]: y
[*SwitchA-Stack-Port1/1] commit
[~SwitchA-Stack-Port1/1] return
被配置为堆叠物理成员端口后,端口下会自动配置port crc-statistics trigger error-down。
# 将SwitchB的业务口10GE1/0/1~10GE1/0/4加入堆叠端口1/1。
[~SwitchB] interface stack-port 1/1
[*SwitchB-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4
Warning: The interface(s) (10GE1/0/1-1/0/4) will be converted to stack mode and be configured with the port crc-statistics trigger error-down command if the configuration does not exist. After the configuration is complete, these interfaces may go Error-Down (crc-statistics) because there is no shutdown configuration on the interfaces. [Y/N]: y
[*SwitchB-Stack-Port1/1] commit
[~SwitchB-Stack-Port1/1] return
4. 检查堆叠配置信息。
# 上述配置完成后,执行命令display stack configuration查看配置是否与规划的一致,如果不一致,需要修改配置。以查看SwitchA为例。
<SwitchA> display stack configuration
Oper : Operation
Conf : Configuration
* : Offline configuration
Isolated Port : The port is in stack mode, but does not belong to any Stack-Port

Attribute Configuration:
—————————————————————————-
MemberID Domain Priority Switch Mode Uplink Port
Oper(Conf) Oper(Conf) Oper(Conf) Oper(Conf) Oper(Conf)
—————————————————————————-
1(1) –(10) 100(150) Auto(Auto) 4*40GE(4*40GE)
—————————————————————————-

Stack-Port Configuration:
——————————————————————————–
Stack-Port Member Ports
——————————————————————————–
Stack-Port1/1 10GE1/0/1 10GE1/0/2 10GE1/0/3
10GE1/0/4
——————————————————————————–
5. 保存配置后将设备下电。
# 保存SwitchA和SwitchB的配置,然后将设备下电。SwitchB的配置与SwitchA相同,略。
<SwitchA> save
Warning: The current configuration will be written to the device. Continue? [Y/N]: y
6. 按照前期规划及配置,连接堆叠线缆,线缆连接建议交叉连接,比如A交换机的1端口2端口分别对应B交换机的2端口1端口。线缆连接完成后将设备上电。
建议先将高优先级设备上电,以使其先完成启动,优先竞争为主交换机。
7. 验证配置结果。
# 通过Console口或管理网口登录堆叠系统,使用命令display stack查看堆叠是否组建成功。当通过管理网口登录时,需要使用主交换机的IP地址。
<SwitchA> display stack
——————————————————————————–
MemberID Role MAC Priority DeviceType Description
——————————————————————————–
+1 Master 0004-9f31-d520 150 CE6850-48T4Q-EI
2 Standby 0004-9f62-1f40 120 CE6850-48T4Q-EI
——————————————————————————–
+ indicates the device where the activated management interface resides.
如上所示,显示两台交换机的信息,表示堆叠建立成功,且主交换机为成员ID为1的设备,即SwitchA。
# 查看堆叠系统拓扑信息。
<SwitchA> display stack topology
Stack Topology:
———————————————-
Stack-Port 1 Stack-Port 2
MemberID Status Neighbor Status Neighbor
———————————————-
1 up 2 — —
2 up 1 — —
———————————————-

Stack Link:
—————————————————————————-
Stack-Port Port Status PeerPort PeerStatus
—————————————————————————-
Stack-Port1/1 10GE1/0/1 up 10GE2/0/1 up
Stack-Port1/1 10GE1/0/2 up 10GE2/0/2 up
Stack-Port1/1 10GE1/0/3 up 10GE2/0/3 up
Stack-Port1/1 10GE1/0/4 up 10GE2/0/4 up
Stack-Port2/1 10GE2/0/1 up 10GE1/0/1 up
Stack-Port2/1 10GE2/0/2 up 10GE1/0/2 up
Stack-Port2/1 10GE2/0/3 up 10GE1/0/3 up
Stack-Port2/1 10GE2/0/4 up 10GE1/0/4 up
—————————————————————————-
8. 保存堆叠系统配置。
说明:
在检查堆叠已成功建立后,建议用户立即使用save命令保存堆叠系统配置。
<SwitchA> save
Warning: The current configuration will be written to the device. Continue? [Y/N]: y

把华为交换机设置成时钟源服务器(NTP)

把华为交换机设置成时钟源服务器(NTP),提供给下面客户端Linux服务器使用,

1,先设置交换机的时区,和正确时间

# 假设地理位置在中国北京,设置本地时区名称为BJ。

如果系统默认的UTC是伦敦时间,伦敦当地时间为2012年12月1日0时0分0秒,想要得到对应的北京时间的方法是:北京处于+8时区,时间偏移量增加了8。在配置时,就是在系统默认的UTC时区的基础上,加上偏移量8,才能得到预期的BJ时区。

<HUAWEI> clock timezone BJ add 08:00:00                

设置时区并在现在的UTC基础上偏移8

<HUAWEI> clock datetime 0:0:0 2012-12-01                

这是设置时间的命令,设置成对应的北京时间就行。

2,开启交换机的NTP服务

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable                 开启NTP服务(默认关闭)

[*HUAWEI] commit

# 配置NTP主时钟,层数为2。

 [~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

3,下面的是NTP设置的更多功能,可以不配置

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

  • 广播模式

# 配置NTP主时钟,层数为2。

<HUAWEI> system-view

[~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

# 配置NTP广播服务器,从接口10GE1/0/1发送NTP广播报文,并指定使用密钥ID 42加密。

[~HUAWEI] interface 10ge 1/0/1

[~HUAWEI-10GE1/0/1] undo portswitch

[*HUAWEI-10GE1/0/1] ntp broadcast-server authentication-keyid 42

[*HUAWEI-10GE1/0/1] quit

[*HUAWEI] commit

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable

[*HUAWEI] commit

  • 组播模式

# 配置NTP主时钟,层数为2。

<HUAWEI> system-view

[~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

# 配置NTP组播服务器,从接口10GE1/0/1发送NTP组播报文,并指定使用密钥ID 42加密。

[~HUAWEI] interface 10ge 1/0/1

[~HUAWEI-10GE1/0/1] undo portswitch

[*HUAWEI-10GE1/0/1] ntp multicast-server authentication-keyid 42

[*HUAWEI-10GE1/0/1] quit

[*HUAWEI] commit

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable

[*HUAWEI] commit

  • 多播模式

# 配置NTP主时钟,层数为2。

<HUAWEI> system-view

[~HUAWEI] ntp refclock-master 2

[*HUAWEI] commit

# 配置NTP认证功能,配置认证密钥并声明该密钥可信。

[~HUAWEI] ntp authentication enable

[*HUAWEI] ntp authentication-keyid 42 authentication-mode hmac-sha256 Hello@123456

[*HUAWEI] ntp trusted authentication-keyid 42

[*HUAWEI] commit

# 配置NTP多播服务器,从接口10GE1/0/1发送NTP多播报文。

[~HUAWEI] interface 10ge 1/0/1

[~HUAWEI-10GE1/0/1] undo portswitch

[*HUAWEI-10GE1/0/1] ntp manycast-server

[*HUAWEI-10GE1/0/1] quit

[*HUAWEI] commit

# 使能NTP服务器功能。

[~HUAWEI] undo ntp server disable

[*HUAWEI] commit

在Windows10下搭建NTP服务

系统版本: Windows10专业工作站版

  1. 修改注册表
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    设置为5
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled
    设置为1
  2. 打开命令命令提示符
    net stop w32time
    net start w32time
  3. 防火墙放行NTP所需端口
    123/udp
  4. 如有需要, Windows服务管理里面设置Windows Time为开机启动

另外, 针对步骤1的AnnounceFlags设置为5, 我去查了下相关资料

基本项为0/1/2/4/8

参数含义: a) 0 不作为时间服务器; b) 1 始终为时间服务器; c) 2 自动为时间服务器,意味着由 Windows 时间服务来决定角色; d) 4 始终为可靠时间服务器; e) 8 自动为可靠时间服务器,意味着由 Windows 时间服务来决定角色。

所以5=1+4, 始终为时间服务器且始终为可靠时间服务器.

我拿Windows搭建NTP服务器主要是想测试Linux下NTP服务/客户端的搭建

但是发现搭完后, Linux客户端可以使用Windows的NTP服务更新时间

但是Linux的NTP服务无法与Windows的NTP服务完成时间同步

后感

到今天为止,至少上亿的人,要么开始在家办公,要么带着口罩走进工厂,公司,或者写字楼。

这是一个艰难的抉择,而所有人,只能选择健康和生活的相对平衡。

网络上有个问题是:

疫情中的复工后,你有怎样的感触?

最戳心的一个回答是:

从来没有哪个时刻,像现在一样,让我感觉此前过得太敷衍。
以后我要努力赚钱,认真工作和生活。

是的,世界安静下来,你才能听得到心跳的声音。

经历过生死与突如其来的变故,你才能体会生活的真相。

在家里呆了差不多30天,日子被突然按下暂停键,你明白的只会是更多。

从今天起,至少上亿此前不认真生活的人,注定会「消失」或「失踪」。

而你,最大的感想是什么?

疫情不仅改变了社会,也正在改变你对世界的态度。

如果说,灾难已经无法避免。

那么,刚过去的30多天,就是中国人最深刻的一次集体修行。

健康力
才是一个人最大的能力

一个人到底拥有怎样的能力,才能在这个社会立足?

这个问题,有太多的答案。

但此次疫情给出了,最明显与直白的结果。

健康力,才是一个人最大的能力。

换句话说,健康才是一切平淡,或跌宕生活的起点。

所谓健康,不仅是指你体格足够棒,还指你心理健康,适应力强,道德健康。

身心健康,你才能不轻易被病毒感染。

道德健康,你就会遵守社会的规则与秩序,不在这样一场大灾难里被其他人唾弃。

你不会轻易出逃,不会隐瞒自己的出行与旅游经历。

同时拥有身心健康与道德健康,你才能在所有的风波里安然无恙。

寻常日子里,也许你会有太多通往光鲜,或升级版生活的逻辑。

但渡尽劫波,你就会发现,强大的健康力,才是最颠簸不破的硬实力。

有套房
是一切生活稳定感的前提

此次疫情抗击的一个关键词是:居家隔离。

房子的重要性,在这里展现得淋漓尽致。

如果你没有固定的住处,在过去的20多天里,过得比较狼狈。

但有一套房,也许你在房子里仍然会不安与忐忑,但会好很多。

我不提倡你一定要多买房,毕竟,靠买房致富的年代,已经过去。

但有套房,就算在异乡,你也不会有漂浮在空中的感觉;

有套房,就算去相亲,你也会多一些直言不讳的底气。

而在新冠肺炎这样的疫情里,有一套房,靠近超市和菜市场,不停水和停电。

你就多了一个庇护所,多了许多底气。

海子在诗里说:

从明天起,做一个幸福的人/喂马、劈柴,周游世界/从明天起,关心粮食和蔬菜/我有一所房子,面朝大海,春暖花开。

有套房,可能还是无法喂马、劈柴,但至少,你不会遁无可遁。

有套房,真的是一切生活稳定感的前提。

相信你已经意识到了。

别再欺骗自己了,如果手头有钱,就赶紧去售楼部吧。

你不能穷到没有存款!

这次新冠疫情中,哪一部分人最难受?

除了被感染者,还有没有存款的人。

假期如此漫长,复工遥遥无期,车贷、房贷仍然在那里。

但固定的收入,突然变得不可预期。

没有存款,每天的开支,都是一次对生活余量的透支,让人变得紧张。

你总以为,没有存款也是一种生活选择。

但生活,只会告诉你赤裸裸的事实:

如果你穷到连存款也没有,痛苦就会随之而来。

曾经有则直击人心的广告词是:年纪越大,越没有人会原谅你的穷。

真是这样,年龄越大,你的存款越少,生活对你投的信任票就会越少。

你和这个世界,有时候真的是靠金钱联系着,就这么简单。

那种只存不花的金钱观,当然不足取。

但只花不存,则是成年人最大的不自律。

你一旦不自律,风险的兜底能力就会大大降低。

灾难会让你害怕,也会教给你规避风险的路径。

禁足后才知道
99%的社交是无用的

一些媒体,在形容这次疫情中普通人的居家隔离时,都不约而同用到一个词:

禁足。

疫情大事件,骤然中断了你绝大部分的社会联系,也禁止了你以前不停的社交。

禁足后,会发生什么?

你会发现总想逃离的家,其实也没那么可怕;
你会明白,静下心来看一本书也是可能的;
你还会明白,99%的社交其实是没什么用的。

你呆在家里这么久,没去参加形形色色的聚会、酒局、饭局。

到最后,它们对你的影响依旧微乎其微。

那些只为聚而聚的社交,充其量只是一种弱联系,无法左右你的生活。

你的对手在看书,你的仇人在磨刀,你的闺蜜在减肥,你却把时间浪费在一场又一场的饭局中。

这种生活,不值得过。

你真正需要的,是有价值的遇见。

是你变得优秀,成为所在行业的前15%。

你若强大,人脉自来。

我已经明白了这条道理,你呢?

一辈子太长
要和有趣的人在一起

这是作家王小波的一句话。

但把它用在此次新冠肺炎疫情中,再合适不过。

呆在家中将近30天,出一趟门非常麻烦,重复的空间与生活作息,如何熬过去?

内心呆板的人,会接近崩溃;

过于安静的人,很可能会出现心理问题;

只有那些有趣的人,会活出另一种滋味。

这几天看抖音,我就格外感慨。

抖音中,有太多苦中作乐的人。

有被困在农村老家的人,在磨盘旁扮起了「毛驴」;

有人在给橘子「接生」;

有的一家人,演起了情景小剧。

疫情让他们无法自由出门,但他们在家里找到了另一个小世界。

世界上普通的人很多,但有趣的人很少。

请你做一个普通且有趣的人。

如果你遇到这样的人,请记得珍惜。

不要迷恋深夜的酒
一定要喝清晨的粥

昨晚,和一位刚返城的邻居聊天。

她在老家呆了整整18天。山区,手机都没有信号。

我问她,没有网络的日子可怕吗?

她说:恰恰相反。

从来没有在家里陪父母这么久,第一次感觉安静真好,和家人呆在一起心定。

也从来没有和孩子相处这么长时间,突然发现,除了有时候不写作业,也挺可爱。

新冠肺炎疫情,当然是一次灾难。

但换个角度来看,它何尝又不是,给所有人一个机会,和最亲近的人在一起。

灾难和意外都是不速之客。

不要等它们到来,才去爱值得爱的人。

深夜的酒,喧嚣与热闹,固然让人血脉膨胀,兴奋不已。

但只有和家人在一起的清晨,喝着温暖的粥,才是真正的开始与生活。

你千万不要迷恋深夜的酒,一定要喝清晨的粥。

你千万不要留恋在熙熙攘攘的世界,忘记了家和亲人。

回家,要趁早。

爱父母和亲人,要在当下。

武汉新冠肺炎疫情,将会如何发展?

最好结果,是2到4周内,所有病人治疗结束,2到3个月内全国疫情得到控制;

最差的结果,是控制失败,病毒席卷全球;

还有一种胶着的姿态:

病例数在可控范围内增长,抗疫过程会十分长,可能长达半年至一年之久。

现在看来,一些湖北外省份的疫情「拐点」,可能正在到来,情况在向着乐观的方向走。

这是一个好的消息。

但疫情形势依然严峻,你不能放松。

一定要用此前高度警惕的姿态,去应对。

不少城市,今天已经复工。

被紧急刹车的中国,重新开始走在路上,正常的生活,也渐渐被重启。

但这不是简单的重启。

而是你替那些死去的他们在活;

是你在替被自己荒废的昨天在活。

加缪在《鼠疫》中说:

「对未来的真正慷慨,是把一切献给现在。」

武汉继续加油,谢谢那些一直在武汉坚守的人。

全国内的拐点一定会尽快到来。

这是一场灾难。

也是一场所有中国人的集体修行。

你不要辜负这一场修行。

灾难过后,愿你都能成为一个有好身体、有风险意识,与有趣的人。

愿你有房子,也有积蓄;

愿你既看重身边人,也远离无用的社交与关系。

查看Linux版本系统信息方法汇总

Linux下如何查看版本信息, 包括位数、版本信息以及CPU内核信息、CPU具体型号等等,整个CPU信息一目了然。  

 1、# uname -a   (Linux查看版本当前操作系统内核信息)   Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2019 i686 athlon i386 GNU/Linux   

2、# cat /proc/version (Linux查看当前操作系统版本信息)       Linux version 2.4.20-8 (bhcompile@porky.devel.redhat.com)      (gcc version 3.2.2 20190222 (Red Hat Linux 3.2.2-5)) #1 Thu Mar 13 17:54:28 EST 2019  

3、# cat /etc/issue  或cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息)   Red Hat Linux release 9 (Shrike)

  4、# cat /proc/cpuinfo (Linux查看cpu相关信息,包括型号、主频、内核信息等)   processor        : 0
     vendor_id         : AuthenticAMD
  cpu family        : 15
  model             : 1
  model name      : AMD A4-3300M APU with Radeon(tm) HD Graphics
  stepping         : 0
  cpu MHz          : 1896.236
  cache size       : 1024 KB
  fdiv_bug         : no
  hlt_bug          : no
  f00f_bug        : no
  coma_bug      : no
  fpu                : yes
  fpu_exception   : yes
  cpuid level      : 6
  wp                : yes
  flags             : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr                           sse sse2 syscall mmxext lm 3dnowext 3dnow
  bogomips      : 3774.87   

5、# getconf LONG_BIT  (Linux查看版本说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)   32  

 6、# lsb_release -a