如何在centos7上搭建自己的项目
- 1、安装前准备
- 2 、编译安装nginx
- 3、Python3安装
- 4、uWSGI
- 5、安装django
- 6、配置Django + uWSGI + Nginx
- 7、安装mongodb
- 8、vue的配置
centos7 + nginx + uwsgi + django + vue + mongodb 的简单配置
1、安装前准备
安装约定(这个根据自己习惯,可自行修改)
1.软件源码包都下载到/usr/local/src这个目录下
2.软件一般都编译安装到/usr/local这个目录下
安装软件源
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安装基础库
yum -y install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel libffi-devel
2 、编译安装nginx
切换到下载目录
cd /usr/local/src
下载源码包
一般linux最小化安装时,wget不会默认被安装。
(yum -y install wget )
wget http://nginx.org/download/nginx-1.6.1.tar.gz
解压源码包
tar zxvf nginx-1.6.1.tar.gz
切换到解压目录
cd nginx-1.6.1
编译前配置
./configure --prefix=/usr/local/nginx
如果没什么错误即可进行编译安装
make && make install
至此nginx就安装完了,可以执行下面命令启动它
/usr/local/nginx/sbin/nginx
此时咱们就可以在本机上通过curl http://127.0.0.1访问。
小知识补充:
检查nginx配置
/usr/local/nginx/sbin/nginx -t
重新加载配置文件,nginx服务不会中断
/usr/local/nginx/sbin/nginx -s reload
重点:如果想让外网访问这个服务器,需要把本机80端口开放:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
注意:有些服务器提供商(阿里云)需添加安全组规则开启80端口才行
3、Python3安装
安装python依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
下载源码包
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
注:https://www.python.org/ftp/python 可以自由选择版本,复制下载链接就行
解压源码包
tar zxvf Python-3.7.5.tgz
切换到解压目录
cd ./ Python-3.7.5
预编译指定安装位置
./configure -prefix=/usr/local/python3
编译安装
make && make install
建立软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #为python3创建软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 #为pip3创建软连接
4、uWSGI
uwsgi也是服务器软件,管理http请求,但是性能不咋滴就把它作为服务器内部中转服务了
通过pip安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple uwsgi
为了能在终端的任何位置都能使用uwsgi,为其创建软链接:
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
5、安装django
通过pip安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django
为了能在终端的任何位置都能使用django,为其创建软链接:
ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
测试django是否安装成功(可以不用):
1、cd 测试目录
2、创建测试项目:python3 django-admin startproject test_project
3、cd ./test_project
4、python3 manage.py runserver
5、本机测试是否正常:curl 127.0.0.1/admin
6、测试正常,关闭启动的Django
这时可以上传自己的项目文件到服务器上:
通过软件xftp6或scp命令上传,具体自查
此案例路径为/var/wwwroot/下
按照项目需要安装不同的模块(看实际需要)
pip3 install mongoengine
pip3 install pymongo
pip3 install djangorestframework
pip3 install django-rest-framework-mongoengine==3.3.1
pip3 install django-cors-headers
6、配置Django + uWSGI + Nginx
在django项目中创建uWSGI的启动文件 (项目名称.xml):
<uwsgi><socket>127.0.0.1:8899</socket><!-- 内部端口,自定义 --><chdir>/var/wwwroot/test_project</chdir><!-- 项目路径 --><module>test_project.wsgi</module><processes>4</processes> <!-- 进程数 --> <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
打开nginx的配置文件:
vi /usr/local/nginx/conf/nginx.conf
把原来的内容删除,直接加入以下内容:
worker_processes 1;
events {worker_connections 1024;
}
http {include mime.types;default_type application/octet-stream;sendfile on;server {listen 80; #监听端口 给外部访问server_name www.django.cn;charset utf-8;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:8997; #外部访问80就转发到内部8899uwsgi_param UWSGI_SCRIPT test_project.wsgi;uwsgi_param UWSGI_CHDIR /data/wwwroot/test_project; #项目路径}location /static/ {alias data/wwwroot/test_project/static/; #静态资源路径}}
}
运行django项目:
uwsgi -x test_project.xml #注意需要在项目根目录中
重启nginx或者重载nginx
cd /usr/local/nginx/sbin/
./nginx -t //检查配置文件是否存问题
./nginx -s reload //让nginx重新加载配置文件
如果所有模块已安装,就可以在外边浏览器中就可以访问咱们的后台了。
7、安装mongodb
配置MongoDB的yum源
vim /etc/yum.repos.d/mongodb-org-3.4.repo
添加以下内容:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
这里可以修改 gpgcheck=0, 省去gpg验证
yum makecache
安装MongoDB
yum -y install mongodb-org
查看mongodb安装位置 :
whereis mongod
查看修改配置文件(主要看库的路径dbpath):
vim /etc/mongod.conf
启动mongodb :
systemctl start mongod.service
停止mongodb (仅测试,这步不用):
systemctl stop mongod.service
查到mongodb的状态:
systemctl status mongod.service
外网访问需要关闭防火墙:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
设置mongodb远程访问:
编辑mongod.conf注释bindIp,并重启mongodb.(这句配置代表只能本机使用,所以需注释)
vim /etc/mongod.conf
重启mongodb使修改生效:
systemctl restart mongod.service
附:恢复数据到库里
mongorestore -d 数据库名 要恢复的数据的路径
8、vue的配置
打包vue项目:
打开cmd,进入目录
cd + 要打包的文件目录
执行打包命令
npm run build
上传到服务器后,只需修改nginx.conf文件的部分内容(同一服务器,只需要改变端口)
#此情况适用于前后台分别部署到不同服务器server {listen 80;server_name www.xxxxxxxxxx.club;#charset koi8-r;#access_log logs/host.access.log main;location / {root /data/wwwroot/vue/dist;index index.html index.htm;}
再设置域名解析,就能通过域名访问网站了
附:解决部署到国外服务器访问慢的问题
查看当前服务器内核版本
uname -r
结果以 3 开头,例如 3.10.0-693.11.6.el7.x86_64。
这种输出结果说明我们的服务器为 CentOS7 x64 系统,可以继续接下来的操作:
wget --no-check-certificate -O rskernel.sh https://raw.githubusercontent.com/hombo125/doubi/master/rskernel.sh && bash rskernel.sh
等待内核更换完毕后系统会自动重启并断开连接,重连后执行:
yum install net-tools -y && wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/hombo125/doubi/master/appex.sh && bash appex.sh && bash appex.sh install
接下来全部直接回车,出现version信息时说明锐速已完成安装并开机自启