文章目录
1.把项目中需要的文件保留住 防止被.gitignore文件忽略导致上传运行失败(Logs做成包__init__)
2.把测试的dev.py文件复制进prod.py中把里面数据都改成线上的配置即可(Debug=False, Alllwed_Hosts=['*'],数据库设置线上数据库,设置在配置文件中的路径改为线上)
3.新建一个文件manage用来作为上线的主要文件(里面的Django配置文件设置成线上的配置),线上迁移变成python manage_pro.py makemigrations
4.讲项目上传到git方便后期好做修改上传于拉取
5.重点配置后台和前台地址 修改成上线服务器的地址 提交Git
6.前端项目发送请求地址改为线上
7.前端项目进行打包 npm run build(会出现一个Dist文件夹)压缩成压缩文件上传至云服务器即可
一般的项目都是上传至公司的服务器运行 个人开发可以去购买网络云机器 把自己的项目跑在上面即可
购买之后机器会得到一个公网Ip地址 任何人可以通过这个IP来访问到你的项目了
把项目的安全组端口打开(项目常用的端口80、8080、3306、6379)


方式一
yum install git -y
方式二:# 包含了git和一些别的开发需要软件
yum -y groupinstall "Development tools"
源码安装python、redis需要有别的依赖支持
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel -y
1.根路径
cd ~ cd
2.下载Mysql5.7
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
3.安装mysql5.7
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum install mysql-community-server --nogpgcheck。# 注意输入Y
4.启动mysql5.7
systemctl start mysqld.service # 开启
systemctl status mysqld.service # 查看状态
5.查看默认密码并登录
grep "password" /var/log/mysqld.log # 最后一句
mysql -u root -p
输入密码
6.修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
1.根路径
cd ~ cd
2.下载redis-5.0.5(源码包)
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
3.解压安装包
tar -xf redis-5.0.5.tar.gz
4.进入目标文件
cd redis-5.0.5
5.编译环境
make
6.复制环境到指定路径完成安装
cp -r /root/redis-5.0.5 /usr/local/redis
7.配置redis可以后台启动:修改下方内容
vim /usr/local/redis/redis.conf
修改内容: daemonize yes
完成配置保存退出 esc :wq
8.建立软链接
ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server # 就可以在根路径使用命令
ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli
9.后台运行redis
cd /usr/local/redis
redis-server ./redis.conf &
10.测试redis环境
redis-cli
ctrl+c结束
11.关闭redis服务
pkill -f redis -9
1.源码安装python,依赖一些第三方zlib* libffi-devel
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel -y
2.根路径
cd ~ cd
3.下载Python3.8.6
wget https://registry.npmmirror.com/-/binary/python/3.8.6/Python-3.8.6.tgz
4.解压安装包
tar -xf Python-3.8.6.tgz
5.进入目标文件
cd Python-3.8.6
6.配置安装路径 /usr/local/python3
./configure --prefix=/usr/local/python38
7.编译并安装(如果报错说明缺少依赖)
make && make install
yun install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel -y
8.建立软链接
ln -s /usr/local/python38/bin/python3 /usr/bin/python3.8
ln -s /usr/local/python38/bin/pip3 /usr/bin/python3.8
9.删除安装包于文件
rm -rf Python-3.8.8
rm -rf Python-3.8.8.tar.xz
1.根路径
cd ~ cd
2.安装uwsgi
pip3.8 install uwsgi
3.建立软连接
ln -s /usr/local/python38/bin/uwsgi /usr/bin/uwsgi
1.安装依赖
pip3.8 install virtualenv
pip3.8 install -U virtualenvwrapper -i https://pypi.douban.com/simple/
pip3.8 install virtualenvwrapper
如果出现报错 敲以下命令
python3.8 -m pip install --upgrade pip
python3.8 -m pip install --upgrade setuptools
pip3.8 install pbr
2.建立软连接
ln -s /usr/local/python38/bin/virtualenv /usr/bin/virtualenv
3.配置虚拟环境
vim ~/.bash_profile # 复制以下内容
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.8
source /usr/local/python38/bin/virtualenvwrapper.sh
4.保存退出
esc :wq
5.更新配置文件内容
source ~/.bash_profile
6.创建虚拟环境
mkvirtualenv -p python3.8 luffy
1.根路径
cd ~ cd
2.下载nginx1.13.7
wget http://nginx.org/download/nginx-1.13.7.tar.gz
3.解压压缩包
tar -xf nginx-1.13.7.tar.gz
4.进入目标文件
cd nginx-1.13.7
5.配置安装路径
./configure --prefix=/usr/local/nginx
6.编译并安装
make && make install
7.建立软链接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
8.删除安装与文件
cd ~
rm -rf nginx-1.13.7
rm -rf nginx-1.13.7.tar.xz
9.测试Nginx环境
nginx # 启动
nginx -s stop # 停止
10.起进程
netstat -nlp | grep 80
11.查看进程
ps aux | grep 80
1.把前端build的文件上传至服务器
2.安装软件
yum install -y unzip
yum install lrzsz -y
3.解压文件
unzip dist.zip
4.移动并重命名
mv ~/dist /home/html
5.备份nginx配置 更新配置 定制nginx做请求转发 负载均衡 静态文件代理
cd /usr/local/nginx/conf
mv nginx.cong nginx.conf.bak # 备份
vim nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/html;
index index.html;
}
}
}
6.重新加载配置文件
nginx -s reload
7.开启nginx与停止nginx
nginx nginx -s stop
1. 在自己的项目里面把依赖 生成一个文件 上传push
pip freeze > requirements.txt
pip add.
pip commit -m '提交'
pip push origin master
2.克隆文件到云机器
git clone 库地址
3.拉取项目
git pull origin master
4.切换到luffy虚拟环境
workon luffy
5.安装依赖
pip install -r requirements.txt # 如果出现安装不了的 编辑文件注释掉
6.安装mysqlclient
yum install mysql-devel -y
yum install python-devel -y
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
pip install mysqlclient
1.管理员链接数据库
mysql -u root -p
2.创建数据库
create database luffy default charset=utf8;
3.设置权限账号密码:账号密码要与项目中配置的一致
grant all privileges on 用户名称.* to '数据库名称'@'%' identified by '数据库密码';
grant all privileges on 用户名称.* to '数据库名称'@'localhost' identified by '数据库密码';
flush privileges # 刷新权限
4.退出mysql
quit;
1. python manage_pro.py makemigrations
2. python manage_pro.py migrate
1.使用Uwsgi跑之前运行Django
python manage_pro.py runserver 0.0.0.0:8000 # 这个时候使用公网就可以访问到了
2.进行Uwsgi服务配置
vim ./luffyapi.xml
<uwsgi>
<socket>127.0.0.1:8888</socket>
<chdir>/home/luffy_api/</chdir>
<module>luffy_api.wsgi</module>
<processes>4</processes>
<daemonize>uwsgi.log</daemonize>
</uwsgi>
3.启动uwsgi
uwsgi -x ./luffyapi.xml
4.查看uwsgi进程
ps aux | grep uwsgi
5.配置nginx 把8080的动态请求转发给8888端口
vim /usr/local/nginx/conf/nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/html;
index index.html;
}
}
# 新增的server
server {
listen 8080;
server_name 127.0.0.1;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8888;
uwsgi_param UWSGI_SCRIPT luffy_api.wsgi;
uwsgi_param UWSGI_CHDIR /home/luffy_api/;
}
}
}
6.重启nginx
nginx -s reload
1. vim /usr/local/nginx/conf/nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/html;
index index.html;
try_files $uri $uri/ /index.html; # 解决vue路由问题
}
}
# 新增的server
server {
listen 8080;
server_name 127.0.0.1;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8888;
uwsgi_param UWSGI_SCRIPT luffy_api.wsgi;
uwsgi_param UWSGI_CHDIR /home/luffy_api/;
}
}
}
2 .重启nginx
nginx -s reload
1.编辑线上配置文件
vim /home/project/luffyapi/luffyapi/settings/pro.py
2.修改static配置新增STATIC_ROOT、STATICFILES_DIRS
STATIC_URL = '/static/'
STATIC_ROOT = '/home/luffy_api/luffy_api/static'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "../static"),)
esc
:wq
3.项目目录下没有 static 文件夹需要新建
mkdir /home/luffy_api/static
mkdir /home/luffy_api/luffyapi/static # 两个luffy都创建
4.完成静态文件迁移
python /home/luffy_api/manage_pro.py collectstatic
5.修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/html;
index index.html;
try_files $uri $uri/ /index.html; # 解决vue路由问题
}
}
server {
listen 8080;
server_name 127.0.0.1;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8888;
uwsgi_param UWSGI_SCRIPT luffyapi.wsgi;
uwsgi_param UWSGI_CHDIR /luffy_api/luffy_api/;
}
location /static {
alias /home/luffy_api/luffy_api/static; # 添加了这一句
}
}
}
6.重启nginx
nginx -s reload
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit
我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195
我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正
我一直在尝试使用nanoc用于生成静态网站。我需要组织一个复杂的排列页面,我想让我的内容保持干燥。包含或合并的概念在nanoc系统中如何运作?我已阅读文档,但似乎找不到我想要的内容。例如:我如何获取两个部分内容项并将它们合并到一个新的内容项中。在staticmatic您可以在您的页面中执行以下操作。=partial('partials/shared/navigation')类似的约定在nanoc中如何运作? 最佳答案 这里是nanoc的作者。在nanoc中,部分是布局。因此,您可以拥有layouts/partials/shared/
我安装了ruby、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom
我有一个包含多个组件的存储库,其中大部分是用JavaScript(Node.js)编写的,一个是用Ruby(RubyonRails)编写的。我想要一个.travis.yml文件来触发一个运行每个组件的所有测试的构建。根据thisTravisCIGoogleGroupthread,目前还没有官方支持。我的目录结构是这样的:.├──构建服务器├──核心├──扩展├──网络应用├──流浪文件├──package.json├──.travis.yml└──生成文件我希望能够运行特定版本的Ruby(2.2.2)和Node.js(0.12.2)。我已经有了一个make目标,所以maketest在每
前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型