放慢了步伐,只为跑得更远~

0%

在Centos7环境下开发环境打搭建杂集

笔者平时开发使用的是Windows操作系统,服务器用的是阿里云服务器.一台较低配置的云服务器已经足够日常的研发需要.因为当时购买选用的是Centos7.x操作系统(一般情况都是使用Centos作为服务器),研发所需的一些环境也会随着条件和需要不断增加.本篇文章会根据需要不断增加环境搭建的过程.

Nginx 服务器

Nginx 介绍

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器.由于它自身占用内存少,并发能力强的特点在同类型的网页服务器中有这不俗的表现.深受广大用户的喜爱.

Nginx 安装

  • 在指定的目录下创建yum源配置文件.
1
vim /etc/yum.repos.d/nginx.repo
  • 插入以下一行代码,在vim环境下切换编辑模式
1
2
3
4
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
  • 更新系统资源并安装
1
yum update && yum -y nginx install

Nginx 启动

  • 以下关于nginx常用的几个命令:
1
2
3
4
5
6
7
8
9
10
11
12
#启动
systemctl start nginx.service
#关闭
systemctl stop nginx.service
#重载
systemctl reload nginx.service
#重启
systemctl restart nginx.service
#状态
systemctl status nginx.service
# 配置文件
vim /etc/nginx/nginx.conf
  • 安装完nginx之后不要着急着把它启动起来,一帮情况是需要通过防火墙开放nginx的端口,默认是80.
1
2
3
4
5
6
#第一种方案,重启之后失效
iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
service iptables save
#第二种方案,直接写在iptables文件中,需要注意顺序
vim /etc/sysconfig/iptables
-A INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

开放防火墙的80端口之后,可以通过以上命令启动nginx.而且nginx在默认的情况下是有一个站点的,所以启动之后是可以直接访问的.简单的检查下nginx服务器是否正在运行,

1
ps aux | grep nginx

  • 添加开机启动
    1
    systemctl enable nginx.service

PHP7

PHP7 介绍

PHP7使用新的 Zend Engine 3.0 提高应用程序性能两倍,比PHP5.6 低了 50% 的内存消耗. 它可以服务于更多的并发用户,无需任何额外的硬件.此外,由于它摒弃低版本的一些过时的API而无法完全向下兼容.

PHP7 安装

  • Centos下默认的PHP版本比较低,一般情况下在安装之前先卸载已有的版本.
1
yum remove php

但是这样是并完全卸载掉PHP,以下命令是查看与php相关的所有软件.

1
rpm -qa | grep php

卸载前先查看下软件之前的相互依赖.没有依赖项的软件优先卸载.

1
rpm -e php70w-common-7.0.19-1.w7.x86_64
  • 下载并安装指定版本的PHP7
1
2
3
4
5
6
7
# 下载
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 安装
yum install php70w-7.0.19-1.w7.x86_64 php70w-cli-7.0.19-1.w7.x86_64 php70w-common-7.0.19-1.w7.x86_64 php70w-gd-7.0.19-1.w7.x86_64 php70w-ldap-7.0.19-1.w7.x86_64 php70w-mbstring-7.0.19-1.w7.x86_64 php70w-mcrypt-7.0.19-1.w7.x86_64 php70w-mysql-7.0.19-1.w7.x86_64 php70w-pdo-7.0.19-1.w7.x86_64
# 卸载
rpm -qa | grep webstatic
rpm -e 上面搜索到的包即可
  • 安装php-fpm
1
yum install php70w-fpm

PHP7 启动

  • 以下是PHP启动的常见命令
1
2
3
4
5
6
7
8
9
10
# 启动
systemctl start php-fpm
# 关闭
systemctl stop php-fpm
# 重启
systemctl restart php-fpm
# 状态
systemctl status php-fpm
# 配置文件
vim /etc/php.ini

安装完PHP之后就可以通过以上命令启动.查看PHP是否已经正在运行,

1
ps aux | grep php-fpm

添加开机启动

1
systemctl enable php-fpm

FTP 服务器

FTP 介绍

一般而言,直接连接到服务器上是一个便捷而且安全的做法.搭建FTP服务器主要是为了服务其他人,他们不要动那么多命令照样可以在服务器上指定的路径上完成一些任务.比如上传搭建服务器CDN源站后给相关人员上传资源,他们只关心将资源上传到指定的路径之后就可以访问,而不用通过一大堆的命令去完成.

FTP 安装

  • 查看是否有安装,如果没有就安装.
1
2
3
4
5
6
# 检查
rpm -qa | grep vsftpd
# 安装
yum -y install vsftpd
# 开机启动
systemctl enable vsftpd.service

FTP 配置

  • 修改配置文件vsftpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 访问限制
anonymous_enable=NO
local_enable=YES
# 设置路径
chroot_list_enable=YES
# 设置宿主账号列表
chroot_list_file=/etc/vsftpd/chroot_list
# 设置PAM认证文件名
pam_service_name=vsftpd
# 开启虚拟账号
guest.enable=YES
# 设置宿主用户
guest.username=username
# 设置存放虚拟账号的文件夹路径
user_config_dir=/etc/vsftpd/vuser_conf
# 端口监听,默认是21
listen_port=21
  • 创建允许访问的宿主账号文件,填写已存在的宿主账号并保存
1
vim /etc/vsftpd/chroot_list
  • 创建虚拟账号和密码,奇数行是账号,偶数行是密码,并生成认证文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建虚拟账号信息并保存为vuser_passwd.txt
vim /etc/vsftpd/vuser_passwd.txt
# 生成认证文件vuser_passwd.db
dbload -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
# 编辑认证文件,加入ftp认证并保存
vim /etc/pam.d/vsftpd
# 查找系统版本号
getconf LONG_BIT
#系统为32位:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
# 系统为64位:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
  • 创建虚拟账号文件信息
1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建虚拟账号文件
vim /etc/vsftpd/vuser_conf/username
# 权限限制
# 虚拟用户根目录,根据实际情况修改 该目录必须要有读写权限 chmod -R 777 目录
local_root=/var/www/html
# 可写
write_enable=YES
# 掩码
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

以上代码注意每行末尾的空格,否则会出现认证成功但却无法登陆的窘境.

  • 开放防火墙端口,默认是21.设置启动服务器
1
2
3
# 设置防护墙,防护墙添加访问限制
-A INPUT -m state --state NEW -s xxx.xxx.xxx.xxx -m tcp -p tcp --dport 21 -j ACCEPT
systemctl restart vsftpd.service

FTP 日志

这步骤很重要,开启FTP上传下载日志.可以监控访问者的所有行为.

1
2
3
4
5
6
xferlog_enable=YES
xferlog_file=/var/log/vsftpd/xferlog
xferlog_std_format=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd/vsftd.log

邮件功能

mail介绍

很多时候我们希望服务器帮我们做些简单的.系统的.重复的事情,我们往往会将这些任务定期化或者自动化,在一定程度上解放劳动力.在现实工作上有很多需要让服务器自己来处理.让将处理结果通过一定的方式通知到相应的工作人员.
有很多的运维平台其实也集成了这样的功能,可以选择通过邮件的方式,微信公众号推送,甚至是电报.其实不管使用什么方式,这些都是通知工具.以下主要介绍在linux下通过mail命令发送邮件.

mail安装

我们通过mail命令发送邮件,实际上是调用sendmail来执行对外发送邮件功能.使用以下命令指定安装操作.

1
2
yum install -y sendmail
service sendmail start

mail配置

正常情况下在安装之后mail默认使用本地的sendmail功能发送邮件,但如果不安装sendmail模块也可以通过外部SMTP服务器来发送邮件.此时需要修改mail的配置文件(/etc/nail.rc).
在配置文件末尾追加外部SMTP服务器参数信息.特别注意等号前后不能有空格.以下以腾讯的SMTP为例.

1
2
3
4
5
6
vim /etc/nail.rc
set from=Your-mail@qq.com
set smtp=smtp.exmail.qq.com
set smtp-auth-user=Your-mail@qq.com
set smtp-auth-password=Password_mail
set smtp-auth=login

mail使用

mail参数选项如下

1
2
3
4
5
6
7
8
9
10
-b<地址>:指定密件副本的收信人地址;
-c<地址>:指定副本的收信人地址;
-f<邮件文件>:读取指定邮件文件中的邮件;
-i:不显示终端发出的信息;
-I:使用互动模式;
-n:程序使用时,不使用mail.rc文件中的设置;
-N:阅读邮件时,不显示邮件的标题;
-s<邮件主题>:指定邮件的主题;
-u<用户帐号>:读取指定用户的邮件;
-v:执行时,显示详细的信息。

在Shell下使用mail发送邮件很方便,特别处理在一些邮件警报或者定时数据报表的时候.以下通过管道的形式发送邮件.

1
2
3
4
5
## 邮件警报
echo -e "区域:${area}\n状态:在线人数下降超过百分十,当前在线人数${b}\n服务器当前时间:`date`" | tr -d '\r'| mail -s "${area}在线人数异常下降" ${list}
## 数据报表
echo "用户数据报表" | mail -v -s "上个月用户数据报表" -a "data.zip" ${emailList}

SSH 服务器

SSH 介绍

SSH 常见问题

参考资料

如何在centos7环境下安装vsftpd
Linux下使用mail命令发送邮件
centos 7 下发送邮件设置
Linux命令大全

-------------本文结束感谢您的阅读-------------