Centos 7 安装PHP5.5 5.6 7.2

安装和启用EPELRemi存储库

yum update
yum upgrade

yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

接下来,安装yum-utils,它是与yum集成的各种实用程序,以增强其默认功能,为其提供更高级的包管理选项,并使其更易于使用。它的一些重要功能包括操作存储库,在运行中启用或禁用包等,而无需任何手动配置。

yum install yum-utils

yum-utils提供的最重要的程序之一是yum-config-manager,您可以使用它来激活Remi存储库作为安装各种PHP版本的默认存储库。例如,如果要在CentOS 7上安装PHP 5.5PHP 5.6PHP 7.2,只需启用它并如图所示进行安装(以下命令三选一)。

yum-config-manager --enable remi-php55 [ 安装PHP 5.5 ] 
yum-config-manager --enable remi-php56 [ 安装PHP 5.6 ]
yum-config-manager --enable remi-php72 [ 安装PHP 7.2 ]

在启用了PHP的选定版本后,您就可以安装PHP(这里,我们选择安装PHP 5.6)以及所有需要的模块了,如下所示

yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-mbstring php-common php-pdo php-devel php-fpm

需要注意的重要事项:如果您出于某种原因想要降级PHP版本,则需要删除现有的PHP版本,然后使用所需的模块重新安装新的PHP。

Centos 添加新用户,并授root权限,禁用root帐号登陆

1.添加新用户user

adduser user
passwd user

新创建的用户并不能使用sudo命令,需要给他添加授权,授权需要修改/etc/sudoers文件内容,此文件默认为只读权限,要想修改内容的话,需先给此文件添加w(可写)权限。

chmod -v u+w /etc/sudoers

然后就可以添加内容了:

vi /etc/sudoers

在此处增加user用户权限声明:
## Allow root to run any commands anywher
root ALL=(ALL) ALL
user ALL=(ALL) ALL #这个是新增的一行权限声明
:wq保存退出,这时候要记得将写权限收回:

chmod -v u-w /etc/sudoers

2.禁用root用户:
修改 /etc/ssh/sshd_config文件

vi /etc/ssh/sshd_config

将#PermitRootLogin yes
修改为
PermitRootLogin no
重启ssh服务

 service sshd restart

大功告成!

Iptables配置禁止外网访问

iptables:
开22外网端口
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT
允许整个地址段访问:
iptables -A INPUT -s 10.25.96.0/20 -p tcp -j ACCEPT

禁止某个IP
iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP
显示IPtables行数
iptables -L -n –line-number
删除某条规则
iptables -D INPUT 2c

保存
service iptables save

重启iptables
service iptables restart

========================================================

How To Install Nginx on CentOS 7

About Nginx

Nginx is a high performance web server software. It is a much more flexible and lightweight program than Apache HTTP Server.This tutorial will teach you how to install and start Nginx on your CentOS 7 server.

Prerequisites

The steps in this tutorial require the user to have root privileges. You can see how to set that up by following steps 3 and 4 in the Initial Server Setup with CentOS 7 tutorial.

Step One—Add Nginx Repository

To add the CentOS 7 EPEL repository, open terminal and use the following command:

sudo yum install epel-release

Step Two—Install Nginx

Now that the Nginx repository is installed on your server, install Nginx using the following yum command:

sudo yum install nginx

After you answer yes to the prompt, Nginx will finish installing on your virtual private server (VPS).

Step Three—Start Nginx

Nginx does not start on its own. To get Nginx running, type:

sudo systemctl start nginx

If you are running a firewall, run the following commands to allow HTTP and HTTPS traffic:

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

You can do a spot check right away to verify that everything went as planned by visiting your server’s public IP address in your web browser (see the note under the next heading to find out what your public IP address is if you do not have this information already):

http://server_domain_name_or_IP/

You will see the default CentOS 7 Nginx web page, which is there for informational and testing purposes. It should look something like this:

If you see this page, then your web server is now correctly installed.Before continuing, you will probably want to enable Nginx to start when your system boots. To do so, enter the following command:

sudo systemctl enable nginx

Congratulations! Nginx is now installed and running!

How To Find Your Server’s Public IP Address

To find your server’s public IP address, find the network interfaces on your machine by typing:

ip addr
1. lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
. . .
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000


. . .You may see a number of interfaces here depending on the hardware available on your server. The lo interface is the local loopback interface, which is not the one we want. In our example above, the eth0 interface is what we want.Once you have the interface name, you can run the following command to reveal your server’s public IP address. Substitute the interface name you found above:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Server Root and Configuration

If you want to start serving your own pages or application through Nginx, you will want to know the locations of the Nginx configuration files and default server root directory.

Default Server Root

The default server root directory is /usr/share/nginx/html. Files that are placed in there will be served on your web server. This location is specified in the default server block configuration file that ships with Nginx, which is located at

/etc/nginx/conf.d/default.conf.

Server Block Configuration

Any additional server blocks, known as Virtual Hosts in Apache, can be added by creating new configuration files in

/etc/nginx/conf.d

Files that end with .conf in that directory will be loaded when Nginx is started.

Nginx Global Configuration

The main Nginx configuration file is located at /etc/nginx/nginx.conf. This is where you can change settings like the user that runs the Nginx daemon processes, and the number of worker processes that get spawned when Nginx is running, among other things.

See More

Once you have Nginx installed on your cloud server, you can go on to install a LEMP Stack.

Zencash 安全结点搭建指南

英文版安全节点搭建指南(最新完整版)

搭建过的旧版本的需要做一些升级操作,或者删除secnodetracker文件夹,重新clone最新版本。

运行安全节点的必要条件:

  • 1个域名
  • 1台租用的VPS服务器
  • 43个ZEN
域名:
本教程是用Ubuntu 16.04 64bit 进行搭建。

任何后缀的域名都可以,不仅限于com, net这种贵的域名,可以是非常便宜的 .top, .cc, .xyz 之类。

域名解析:

每个安全节点需要一个二级域名,用A记录指向VPS服务器。


配置域名解析:

我使用的dnspod.cn。

在自己的电脑上试一下能否解析成功:

ping znode2.bidb.io

域名解析生效需要等一会儿,可以先进行下一步。


VPS服务器可以选择linode的10美元方案。

(测试期间选择的5美元配置,但在正式网中挑战应答总是超时,所以现在推荐10美元的配置)


配置VPS服务器

登录VPS服务器:
ssh root@45.79.90.93
更新系统和软件:
apt-get -o Acquire::ForceIPv4=true update  && apt-get -y upgrade

更新过程如果出现下图中的提示,选第二个选项后按Tab建切换到Ok,回车继续。

修改主机名:
hostnamectl set-hostname znode2
向hosts文件中添加一个域名映射:
vi /etc/hosts

45.79.66.111 znode2 znode2.bidb.io

znode2 是你的主机名,znode2.bidb.io改成你的二级域名。

设定时区
timedatectl set-timezone 'Asia/Shanghai'
添加管理员用户:

新建一个拥有管理权限的用户

adduser znuser && adduser znuser sudo

根据提示,重复输入两次新用户的密码。

退出root账户,今后只使用新用户znuser登录。

exit
使用新用户名重新登录服务器。
ssh znuser@45.79.66.111
为了服务器更加安全,需要禁用root登录。
sudo vim /etc/ssh/sshd_config

移动到第28行,修改配置文件,将PermitRootLogin设置为no,然后保存退出。
修改之后如下所示:

重启sshd服务使修改生效:
sudo systemctl restart sshd.service
安装一些常用工具:
sudo apt-get -o Acquire::ForceIPv4=true update
sudo apt -y install git screen vim nmap ncdu busybox inxi links unzip python
配置防火墙

为了服务器更加安全,必须配置防火墙。

查看防火墙是否正常运行:

sudo ufw status

防火墙未开启

配置防火墙:
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow http/tcp
sudo ufw allow https/tcp
sudo ufw allow 9033/tcp
sudo ufw logging on
开启防火墙:
sudo ufw enable

配置完成后,检查一次防火墙状态。

sudo ufw status
ssh安全防护:

使用Fail2Ban防止黑客非法登录你的服务器。(fail2ban会限制ssh重试登录次数,10次密码错误后,请求登录的IP地址会被加入黑名单,10分钟之后才可以再次登录。)

sudo apt -y install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

可以通过如下命令,查看非法登录的拦截记录:

sudo tail -f /var/log/fail2ban.log
增大虚拟内存。

我们租用的VPS内存比较少,通过增大SWAP交换空间(虚拟内存),可以避免一些内存不足的情况。

查看当前的内存使用信息:
free -h
配置4G大小的交换空间:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
再次查看内存:
free -h

优化交换空间的参数:

sudo vi /etc/sysctl.conf
将如下配置添加到文件末尾:
vm.swappiness=10
配置重启后自动挂载交换空间:
sudo vi /etc/fstab
将如下配置添加到文件末尾:
/swapfile none swap sw 0 0

安装zencash

为了避免一些错误,我们先要禁用ipv6:
sudo vi /etc/sysctl.conf
在文件末尾添加如下内容:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

执行如下命令使配置生效
sudo sysctl -p 

安装常用工具:
sudo apt -y install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake
下载zencash代码:
mkdir zencash
cd zencash
git clone https://github.com/ZencashOfficial/zen.git
下载zkSNARK 数据包:
cd zen
./zcutil/fetch-params.sh
下载编译好的zen客户端
cd ~
wget https://github.com/ZencashOfficial/zen/releases/download/v2.0.10-1/zen-2.0.10-1-amd64.deb
开始安装
sudo dpkg -i zen-2.0.10-1-amd64.deb
sudo apt-get -f -y install
运行zend:
zend

第一次运行zend会生成一个配置文件 ~/.zen/zen.conf

编辑zen.conf
vim ~/.zen/zen.conf

把如下内容粘贴进文件,将 rpcpassword 换成你自己的密码。

addnode=zen.suprnova.cc
addnode=zpool.blockoperations.com
addnode=zen.bitfire.one
addnode=zenmine.pro
addnode=minez.zone
addnode=zennodes.network
rpcuser=znodeuser
rpcpassword=63Qa5VybvCTPppBpVmn8HpjrKgxqaaEAqfYVrHjk9WtBG738
rpcport=18231
rpcallowip=127.0.0.1
server=1
daemon=1
listen=1
txindex=1
logtimestamps=1

可以使用如下命令随机密码生成:

sudo tr -dc A-Za-z0-9 < /dev/urandom | head -c 48 | xargs
配置开机自动运行:
crontab -e

第一次运行会提示选择编辑器.

把如下内容添加到文件末尾:

@reboot /usr/bin/zend
再次运行zend:
zend

如果你已经开启了,先关闭再重新执行:

cd ~
zen-cli stop
zend
查看信息:

第一次运行会同步一段时间,当两次查看blocks数值没有变化,说明区块数据同步完成了。

zen-cli getinfo

生成SSL证书

sudo ufw status numbered
检查防火墙,确保80, 443端口开启:
检查80和443端口是否被占用:
netstat -tan
执行如下命令,下载安装acme.sh脚本。
cd
sudo apt install socat
mkdir acme
cd acme
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install
生成证书:
cd ~
sudo .acme.sh/acme.sh --issue --standalone -d znode2.bidb.io

证书的完整路径

添加定时任务,自动更新证书:
sudo crontab -e
在文件末尾添加如下内容:

6 0 * * * “/home/znuser/.acme.sh”/acme.sh –cron –home “/home/znuser/.acme.sh” > /dev/null

将两处 znuser 替换成你自己的用户名。

配置证书

在 /usr/share/ca-certificates/ 目录下创建letsencrypt目录来保存CA证书。

sudo mkdir /usr/share/ca-certificates/letsencrypt/
sudo cp /home/znuser/.acme.sh/znode2.bidb.io/ca.cer /usr/share/ca-certificates/letsencrypt/ca.crt
sudo dpkg-reconfigure ca-certificates

出现如下窗口,选yes(用键盘方向键选择),按Tab键切换到Ok, 回车进入下一步。

按下空格键选中第一项[*],然后Tab到Ok,回车。

zend开启TLS支持

修改zen.conf配置,添加证书路径开启TLS支持。

vim ~/.zen/zen.conf
将如下内容添加到文件末尾:

tlscertpath=/home/znuser/.acme.sh/znode2.bidb.io/znode2.bidb.io.cer
tlskeypath=/home/znuser/.acme.sh/znode2.bidb.io/znode2.bidb.io.key

将znuser替换成你的用户名,后面的文件夹和文件名都要换成你自己的。

停止安全节点,重新启动:
zen-cli stop
zend
测试TLS是否正常:

正式网络使用9033端口

openssl s_client -connect znode2.bidb.io:9033
正常状态如下图:
安装Node.js:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
安装secnodetracker :
cd ~/zencash
git clone https://github.com/ZencashOfficial/secnodetracker.git
安装node modules:
cd secnodetracker
npm install
运行安全节点需要至少43个ZEN,其中42放在一个T地址钱包,1个ZEN放在安全节点的Z地址中。
新建一个Z地址:
zen-cli z_getnewaddress
查看钱包余额:
zen-cli z_gettotalbalance

使用Swing Wallet 向这个z地址转入至少1个ZEN(拆分成4-5个小订单转过去推荐每次转0.2个)

最好是1.1个,每次挑战应答都需要耗费0.0001 交易费。

在Windows下面转账ZEN会更容易一些

转账确认需要3分钟左右,在服务器上用如下命令来查询余额(private 是Z地址的余额):
zen-cli z_gettotalbalance

等ZEN到账后再进行下一步。

配置secnodetracker:
cd ~/zencash/secnodetracker
node setup.js

node setup

  • Stake transparent address: 填写余额大于42个ZEN的T地址
  • Alert email address: 用来接收信息的邮箱地址。
  • Full hostname (FQDN) 填写二级域名
  • Region code: 区域代码, 北美(na)欧洲(eu)东南亚(sea) 填写服务器所在地的对应代码。如果也是Fremont 机房,填写na 。

运行secnodetracker:

node app.js

显示内容可能略有不同,不过只要显示Authenticated 就说明运行正常了.

收到一次挑战

收到一次挑战(完成挑战后会有相应奖励)。

ctrl+c 结束这次执行,接下来配置pm2守护进程。

设置开机自动运行:
安装pm2:
sudo npm install pm2 -g
配置开机自动运行:
pm2 start app.js --watch
pm2 save
pm2 startup
执行提示中的内容。
查看secnodetracker的运行状态:
pm2 list
查看你的安全节点状态:
通过这个网站可以查询安全节点运行状态

安全节点划分为3个区域,根据填写的Region code访问对应的查询页面。

北美: https://securenodes.na.zensystem.io/
欧洲: https://securenodes.eu.zensystem.io/
东南亚: https://securenodes.sea.zensystem.io/

正式网的安全节点。

本篇教程参考英文版搭建教程,并做了一定修改。以下是英文版教程: