当前位置: 代码迷 >> 综合 >> 如何在centos7上搭建自己的项目
  详细解决方案

如何在centos7上搭建自己的项目

热度:15   发布时间:2023-09-05 17:47:23.0

如何在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信息时说明锐速已完成安装并开机自启