各位看官老爷们,点击关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!
阿里云创建ECS实例教程
注意:
阿里云有300元额度的免费适用期哟
白嫖~~~~
注册了阿里云账户后,进入上图页面,点击控制台
注意:宝塔上的Python项目只支持Centos操作系统,其他任何系统都不行
博主有两天的时间都是使用的Ubuntu,太心酸了,
以上操作结束后实例创建成功,先重新设置密码!!
以上实例创建成功后:就可以来进行以下操作啦~~~
Vue+Django前后端的服务器部署(通过宝塔面板)
1. 电脑本地配置前后端相关代码(前端静态资源托管到后端Django中)
1.1 前端部分:
主要操作文件:vite.config.js和axios.js
1.vite.config.js
server: { proxy: { '/api': { // target: 'http://127.0.0.1:8000', target: 'http://47.109.155.116:8000', changeOrigin: true, // rewrite: (path) => path.replace(/^\/api/, '') } } },
该文件中只需要注意server中的proxy选项中的target属性:设置成服务器的公网IP:端口号即可
2.axios.js
const instance = axios.create({ // baseURL: 'http://127.0.0.1:8000/api/', baseURL: 'http://47.109.155.116:8000/api/', timeout: 5000, })
该文件中只需要注意baseURL,同样只需要替换成公网IP:8000
将以上相关代码修改过后:
如果使用的是npm管理控制的
那么久直接使用:
npm run build
生成dist文件夹
1.2 后端部分:
主要操作文件:settings.py和urls.py文件
1.settings.py文件:
将所有的localhost地址全部改为服务器ip地址 然后: 在TEMPLATES中添加: "DIRS":[os.path.join(BASE_DIR, 'frontend/dist')], DATABASE里面的相应信息改成服务器中的宝塔面板中创建的数据库 添加一个: STATICFILES_DIRS = [ os.path.join(BASE_DIR, "frontend/dist/static"), ] STATIC_ROOT = os.path.join(BASE_DIR, "static") 注意:将上文中的前端的dist文件夹复制到Django文件夹中的新建文件夹“frontend”下面
2.urls.py文件:
urlpatterns = [ ....... # 添加前端路由 - 匹配所有路径到Vue入口文件 re_path(r'^.*$', TemplateView.as_view(template_name='index.html')), ] # 开发环境静态文件服务 if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
以上的完成以后,就运行以下命令:
pip freeze > requirements.txt (导出该Django项目的依赖包,用于在云端服务器上的终端中运行安装) python manage.py collectstatic
命令的用处就是:将前端的静态资源搜集起来放置于Django项目文件夹中,这样我们就可以只上传——Django项目到宝塔面板上了
2. 远程连接:安装宝塔面板
2.1 服务器操作:
点击“远程连接”登录进去终端
注意:如果你不知道自己的密码就点击——重置密码即可
以上就是登录进去后的界面:
接下来我们就进行——安装“宝塔面板”的操作:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
如上图所示:
会弹出宝塔面板账户登录信息。
我们通过所给的外网面板地址来登录宝塔面板
2.1宝塔面板操作:准备事项
登录进入宝塔面板后:
首先先下载相关插件:
这里需要注意一点的是:必须要下载Mysql后才能下载phpMyadmin插件。注意版本的搭配:我这里下载的是Mysql8.0版本以及Python3.9.9
添加数据库:
值得注意的是:这里有一个非常非常重要的点——下图红圈中的root密码
可以通过红圈中的选项来更改密码:
因为最开始的root密码是随机生成的(后面的终端操作中登录mysql时需要密码就是这个你修改后的root密码)
我就是在这里卡了一天——最后才找到这个的!!!!!!!!!!
添加站点
添加一个PHP项目:其中的域名——如果你没有申请域名的话你就直接输入你的ECS实例(公网IP地址即可),同时在这里选择穿件相应版本的数据库。
点击文件功能
在图片中的位置(公网IP目录下添加你的Django工程文件)
3. 将托管后的Django代码工程上传到宝塔页面的“文件”栏目中
3.1上传文件
4. 配置Python环境
4.1 ”Python项目“中的引导安装
如果你是第一次点击网站中的Python项目——那么你就可以直接通过弹出的安装Python按钮,选择你对应需要的版本安装即可。
4.1.1 添加Python项目
项目名称:随便取名
Python环境:刚刚安装的那个
启动方式:命令行启动(我采用的就是命令行启动——因为我这个项目仅仅还在测试阶段,后续会更新上线部署方式的部署方法,点击关注我,不迷路哟)
项目路径:选择刚刚上传的项目的“父级目录(根目录)”
启动命令(开发模式):
python manage.py runserver 0.0.0.0:8000
项目初始化命令:
通常都是
python3 manage.py makemigration python3 manage.py migrate
4.2 “Python环境”——手动安装
mkdir local cd local wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz tar -xzf Python-3.9.9.tgz yum groupinstall "Development Tools" -y yum install zlib-devel bzip2-devel openssl-devel ncurses-devel \ yum install sqlite-devel readline-devel tk-devel gdbm-devel db4-devel \ yum install libpcap-devel xz-devel libffi-devel -y make distclean cd Python-3.9.9 ./configure --prefix=/usr/local/python3.9 ./configure --enable-optimizations make -j4 make altinstall ln -s /usr/local/python3.9/bin/python3.9 /usr/bin/python3.9 python3.9 --version cd /www/wwwroot/47.109.155.116/Security_System_project python3.9 -m venv vsvenv source vsvenv/bin/activate pip3 install -r requirements.txt(如果遇到Mysql的问题:多半是版本不匹配) 出现问题: # 查找 mysql.h 和 libmysqlclient.so find / -name 'mysql.h' -type f 2>/dev/null find / -name 'libmysqlclient.so*' -type f 2>/dev/null 找到具体文件位置后就可以设置具体的环境变量了 # 设置环境变量 export MYSQLCLIENT_CFLAGS="-I/usr/include/mysql" export MYSQLCLIENT_LDFLAGS="-L/www/server/mysql/lib -lmysqlclient" 查看具体的环境变量值 echo $MYSQLCLIENT_CFLAGS echo $MYSQLCLIENT_LDFLAGS 那就: 安装Mysql8.0的社区版本: # 添加 MySQL 官方 Yum 源 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm rpm -Uvh mysql80-community-release-el7-5.noarch.rpm # 安装开发包 yum install mysql-community-devel 再次确认 /usr/include/mysql/ 里存在如下宏的头文件: grep MYSQL_OPT_SSL_KEY /usr/include/mysql/mysql.h export MYSQLCLIENT_CFLAGS="-I/usr/include/mysql" export MYSQLCLIENT_LDFLAGS="-L/usr/lib64/mysql -lmysqlclient" pip install mysqlclient==2.2.7 pip install django 然后安装依赖requierments.js: pip install requierments.js python3 manage.py makemigrations pip install django-cors-headers pip install djangorestframework pip install djangorestframework-simplejwt python3 manage.py makemigrations mkdir /home/hkc chown hkc:hkc /home/hkc chmod 700 /home/hkc # Step 1: 创建 mysql 用户 groupadd mysql useradd -r -g mysql -s /bin/false mysql # Step 2: 修改权限 chown -R mysql:mysql /www/server/mysql # Step 3: 切换用户启动(推荐) su - mysql /www/server/mysql/bin/mysqld --defaults-file=/www/server/mysql/my.cnf & # 或者 root 用户下强制启动(不推荐) /www/server/mysql/bin/mysqld --defaults-file=/www/server/mysql/my.cnf --user=mysql & python3 manage.py migrate python3 manage.py runserver 0.0.0.0:8000
5. 数据库相关
点击以上的“终端”,进入Python项目终端执行以下操作:
mysqladmin -u root -p ping(确认mysql是否启动) -- 登录数据库: mysql -u root -p -- 查看有哪些用户及主机: SELECT user, host FROM mysql.user; -- 查看某用户的权限: SHOW GRANTS FOR 'Django_user'@'localhost'; -- 如果权限不足可授予权限: GRANT ALL PRIVILEGES ON your_database_name.* TO 'Django_user'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;
通过命令:
mysql --help | grep "Default options" -A 1 mysql --print-defaults(Mysql实际加载的是哪个配置文件) 查看文件内容: cat /etc/my.cnf 然后完善[mysqld]部分的相应内容:
可以知道配置文件my.cnf的位置:
便于我们查看配置文件总是否配置正确:
如果没有以下内容:
# 允许远程连接(注释掉则允许所有IP) bind-address = 0.0.0.0
就要添加进入该配置文件中
注意:我们不仅需要再服务器的“安全组“中放行相应的端口更需要在宝塔界面的终端的防火墙中放行端口
上图中:端口8000就放行不了,需要时8000/8000才行
放行端口命令:
首先:检查防火墙开放端口 firewall-cmd --list-ports 开放新端口: sudo firewall-cmd --add-port=8001/tcp --permanent sudo firewall-cmd --reload
如果放行成功的话,会显示success的。
补充一点:
1. 找出占用端口的进程
sudo lsof -i :8000
或
sudo netstat -tulnp | grep :8000
2. 终止占用端口的进程
找到 PID 后,使用:
sudo kill -9 [PID]
sudo kill -9 12345
3. 尝试使用不同端口
python manage.py runserver 0.0.0.0:5173 --insecure
6. 以上所有步骤完成后
运行:
python manage.py collectstatic python3 manage.py makemigration python3 manage.py migrate python manage.py runserver 0.0.0.0:8001 --insecure
文章有写的不当的地方,欢迎在评论区中指正修改。如果感觉文章实用对你有帮助,欢迎点赞收藏和关注,你的点赞关注就是我动力,大家一起学习进步。
有不懂的可以在评论区里提出来哟,博主看见后会及时回答的。