笔者平时开发使用的是Windows操作系统,服务器用的是阿里云服务器.一台较低配置的云服务器已经足够日常的研发需要.因为当时购买选用的是Centos7.x操作系统(一般情况都是使用Centos作为服务器),研发所需的一些环境也会随着条件和需要不断增加.本篇文章会根据需要不断增加环境搭建的过程.
Nginx 服务器
Nginx 介绍
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器.由于它自身占用内存少,并发能力强的特点在同类型的网页服务器中有这不俗的表现.深受广大用户的喜爱.
Nginx 安装
1
| vim /etc/yum.repos.d/nginx.repo
|
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 启动
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 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
| systemctl enable nginx.service
|
PHP7
PHP7 介绍
PHP7使用新的 Zend Engine 3.0 提高应用程序性能两倍,比PHP5.6 低了 50% 的内存消耗. 它可以服务于更多的并发用户,无需任何额外的硬件.此外,由于它摒弃低版本的一些过时的API而无法完全向下兼容.
PHP7 安装
- Centos下默认的PHP版本比较低,一般情况下在安装之前先卸载已有的版本.
但是这样是并完全卸载掉PHP,以下命令是查看与php相关的所有软件.
卸载前先查看下软件之前的相互依赖.没有依赖项的软件优先卸载.
1
| rpm -e php70w-common-7.0.19-1.w7.x86_64
|
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 上面搜索到的包即可
|
PHP7 启动
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
| 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 配置
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_service_name=vsftpd guest.enable=YES guest.username=username user_config_dir=/etc/vsftpd/vuser_conf listen_port=21
|
- 创建允许访问的宿主账号文件,填写已存在的宿主账号并保存
1
| vim /etc/vsftpd/chroot_list
|
- 创建虚拟账号和密码,奇数行是账号,偶数行是密码,并生成认证文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| vim /etc/vsftpd/vuser_passwd.txt dbload -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db vim /etc/pam.d/vsftpd getconf LONG_BIT auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd 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 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
|
以上代码注意每行末尾的空格,否则会出现认证成功但却无法登陆的窘境.
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命令大全