腾讯云centos7搭建java、php、python web全环境

Published on with 163 views

用了几年的阿里云服务器即将于5.21到期。没办法,就去网上找找看有没有价格实惠的服务器吧。选来选去,最后还是选择了腾讯云。配置如下: 2核CPU, 2G内存, 1Mbps带宽, 50G系统盘(云硬盘),CentOS 7.4 64位 配置一般,租到服务器后就想着能不能弄一个支持Java php python三种语言的web环境,由于并不是干运维的,于是花了两天时间终于有了下面一番操作。 也深深体会到了作运维的辛苦😷

1.Start--安装Nginx

下面四段话来自于wiki百科

Nginx(发音同engine x)是一个异步框架的 Web服务器,也可以用作反向代理,负载平衡器 和 HTTP缓存。

Nginx可以部署在网络上使用FastCGI脚本、SCGI处理程序、WSGI应用服务器或Phusion乘客模块的动态HTTP内容,并可作为软件负载均衡器。

Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构[11]可以在高负载下提供更可预测的性能。

Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,
Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,
有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操作系统下效率相当高。
同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。

这里我们选择火爆的Nginx作为代理服务器,话不多说直接进入下载安装步骤:

0x01 下载nginx:

sudo yum -y install nginx

0x02 nginx配置文件位置:

/etc/nginx/nginx.conf 其实主要更改的就是service部分,以下直接贴出我的部分配置文件: server { listen 80 default_server; server_name jishuz.cn; index index.html index.htm index.php index.jsp index.do; root /data/wwwroot/; error_log /var/log/nginx/default-error.log crit; # import PHP Support include php.conf; # import JSP Support # include jsp.conf; # 出于安全考虑,这里还有一部分配置并没有贴上来 } server { listen 80; server_name code666.top; root /data/pydir; error_log /var/log/nginx/py-error.log crit; location /{ proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

0x03 nginx常用命令:

开启服务命令:service nginx start

停止服务命令:service nginx stop

重启服务命令:service nginx restart

平滑重启:nginx配置文件改动后,可以使用此命令,并不需要关闭在打开---service nginx reload

打开浏览器,输入ip地址,如果看到Welcome to Nginx等字样就说明Nginx已经安装配置完成了

2.安装MySql

下载:sudo yum install mysql-community-server

启动:systemctl start mysqld

安装后初始化密码并不为空,Mysql安装时会生成一个默认密码,使用 grep "temporary password" /var/log/mysqld.log命令,返回结果最后引号后面的字符串就是root的默认密码,这是就可以mysql -uroot -p输入密码登陆了。

3.安装gunicorn(Python WSGI SERVER)

Q:what is Python WSGI SERVER?

A:首先WSGI只是一种通讯协议,而guniron则是用来运行 wsgi application(由我们自己编写遵循WSGI application的编写规范) 或者 wsgi framework(如Django,Paster)的,地位相当于Java中的Tomcat ----------------

这里我们在python虚拟环境里安装:

cd /data/pydir/pyproject mkdir venv python3 -m venv venv

激活这个虚拟环境:

source venv/bin/activate

如下图所示,路径前方有(venv)则代表已经激活了,退出虚拟环境:deactivate

正式开始安装gunicorn:

pip3 install gunicorn

如何使用gunicorn:

1.在项目的根目录建一个wsgi.py的文件,内容如下(参杂中文,为了更容易的理解):

from flak的入口文件名 import app if __name__ == '__main__': app.run()

2.启动服务:

gunicorn -w 4 -b 127.0.0.1:8000 wsgi:app

然后浏览器输入ip or 域名:8000既可以访问你写的pythoon应用了。但是这样肯定有许多不好的地方,比如这个gunicorn进程被停止了咧,这时就需要安装一个报活的工具了。

4.安装supervisor来保护我们的gunicorn进程

安装supervisor:

pip install supervisor # 注意,我这里并不是在python的虚拟环境装的哦 echo_supervisord_conf > supervisor.conf # 生成supervisord配置文件,这步很重要,我们添加项目都需用到这个配置文件 vim supervisor.conf # 打开配置文件,添加gunicorn进程

在配置文件底部添加如下配置:

[program:pyproject] command=/data/pydir/pyproject/venv/bin/gunicorn --bind 0.0.0.0:8000 wsgi:app ;supervisor启动命令 directory=/data/pydir/pyproject ; 项目的文件夹路径 startsecs=0 ; 启动时间 stopwaitsecs=0 ; 终止等待时间 autostart=true ; 是否自动启动 autorestart=true ; 是否自动重启 stdout_logfile=/data/pyroot/logs/gunicorn.log ; log 日志 stderr_logfile=/data/pyroot/logs/gunicorn.err ; 错误日志

使用 supervsior 启动 gunicorn:

sudo supervisord -c supervisor.conf sudo supervisorctl -c supervisor.conf start pyproject

到这一步,你在浏览器输入网址既可以访问你的python web应用。不过你以为这样就完了,我们还需要把supervisor设置为开机自启才行。否则一旦服务器重启,就每次要进入SSH输入命令启动

把supervisor设为开机自启:

1.新建一个supervisord.service文件

#supervisord.service

[Unit] Description=Supervisor daemon

[Service] Type=forking ExecStart=/usr/bin/supervisord -c /data/pydir/supervisor.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s

[Install] WantedBy=multi-user.target

2.将文件拷贝到/usr/lib/systemd/system/

cp supervisord.service /usr/lib/systemd/system/

3.启动服务并验证是否设置成功

systemctl enable supervisord systemctl is-enabled supervisord

如果提示如下则代表设置成功

到这一步,python web方面的配置就大功告成了,注意关于nginx的python web配置,前面已经贴出,就是code666.top那一段server。

5.安装PHP

这里我们还需要安装php-mysql,用于连接处理MySQL数据库。php-fpm,一个PHP FastCGI管理器。就是为了让Nginx可以操作PHP请求

sudo yum install php php-mysql php-fpm

启动php-fpm,并设置为开机启动:

service php-fpm start chkconfig php-fpm on

然后进入nginx的配置目录,配置nginx.conf即可,第一条已经贴出了相关配置,这里不再重复。

到这一步,php web方面的配置就大功告成了。

6.安装Tomcat

首先下载解压Tomcat,下载链接可以去官网复制,然后可以用chown -R修改Tomcat的目录权限,这时可以启动查看一下tomcat,最后将Tomcat配置成系统服务,也就是让它开机自启即可,最后配置一下nginx.conf文件。其实都是换汤不换药,就是各自的端口号不同,然后添加一个server即可,这里我就不详细写了,推荐一篇简书吧https://www.jianshu.com/p/e59ae18638f5

7.End--安装vsftpd(FTP服务器)

one.用yum命令安装vsftpd

yum install -y vsftpd

two.修改vsftpd配置文件 -- /etc/vsftpd/vsftpd.conf

首先,不允许匿名访问,允许本地账户登陆

然后,使用户不能离开主目录

最后,在配置文件最后添加,否则会报错--vsftpd: refusing to run with writable root inside chroot(),保存修改后,输入命令systemctl restart vsftpd.service重启vsftpd服务。

allow_writeable_chroot=YES

three.新建FTP用户并测试

新建用户并修改密码:

useradd -d /var/ftp/dir -g ftp -s /sbin/nologin silver passwd silver

下载FileZilla FTP客户端,测试出登陆:

你以为这就完成了嘛?不不不,还忘了一个开机自启呢。

four.设置vsftpd开机自启

systemctl enable vsftpd.service

Responses