为了建立一个工作站,也是麻烦了....
感谢该博主:
https://www.cnblogs.com/levelksk/p/7921066.html
1.安装centos 后首先安装python,下载解压安装和以前一样,但是注意 python3.7使用起来在 pycharm下建立django遇到bug,可能是我的pycharm版本不够高的原因吧。
后来重新安装python3.6,故障解除。
2.
(nginx+uwsgi+python3+django) 使用该方式,注意尽量开启root来配置,不然会出现各种问题
在早期使用ubuntu遇到众多问题,无奈放弃,转到centos,ubuntu用起来也不够稳定,亟待加强.
3.来源于该博主文章,是一个可靠的博文,没有遇到其他异常状况
1、安装各类基础模块
yum gcc-c++
注:此命令我没有运行成功
(为centos系统增加编译功能)
yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
注:此命令正常
(安装这些模块都是为了成功编译安装python3,防止出现各种异常)
yum install libxml*
注:此命令正常
(安装这个模块是为了让uwsig支持使用“-x"选项,能通过xml文件启动项目)
2、编译安装python3(我已经安装好了python3.6所以跳过此步骤)
进入home路径(本人喜欢把东西都下载到这里),执行以下命令:
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
下载完成后,执行解压命令:
tar -zxvf Python-3.6..tar.gz
进入解压后的Python-3.6.3文件夹,依次执行以下命令
./configure --prefix=/usr/local/python3
(将python3安装到/usr/local/python3/路径下)
make -j2
make install -j2
ln -s /usr/local/python3/bin/python3. /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
注:此命令正常
(以上两个ln命令是为了方便在终端中直接使用python3和pip3命令 )
3、给python3安装django和uwsgi以及配置启动项目的xml文件
pip3 install django
pip3 install uwsgi
注:此命令正常
为了在终端中使用uwsgi命令,执行以下命令
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
将你的django项目放到你想放的路径下,例如/home/www/,假设我们的Django项目名为"myproject",里面有一个应用叫"myapp"
在你的django项目下新建 myproject.xml,内容如下:
<uwsgi>
<socket>127.0.0.1:</socket><!-- 内部端口,自定义 -->
<chdir>/home/www/myproject</chdir><!-- 项目路径 -->
<module>myproject.wsgi</module>
<processes></processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
wq保存
注:此命令正常,对于用不惯Vm的人来说,gedit是个好的选择,注意打开文件要用 root不然提示没有权限。其中有很多命令都需要root,如果狐仙莫名其妙的问题
请开启root
4、安装nginx和配置nginx.conf文件
进入home目录,执行以下命令:
wget http://nginx.org/download/nginx-1.13.7.tar.gz
注:此命令正常
下载完成后,执行解压命令:
tar -zxvf nginx-1.13..tar.gz
注:此命令正常
进入解压后的nginx-1.13.7文件夹,依次执行以下命令:
注意要进入nginx-1.13.7文件夹执行以下命令
cd nginx-1.13.7
./configure
make&make install
注:此命令正常 ,注意要root权限
nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中打开nginx.conf,加入以下内容
cd /usr/local/nginx/conf/
server {
listen ; #暴露给外部访问的端口
server_name localhost;
charset utf-;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:; #外部访问8996就转发到内部8997
}
location /static/ {
alias /home/www/myproject/myapp/static/; #项目静态路径设置
}
}
(以上内容请保证在默认内容的大括号内)
注:此命令正常,nginx.conf 文件下面就有这几行你解注释就好了
有必要说明这种
nginx+uwsgi
工作原理:
nginx负责建立一个本地的工作环境,就是本地服务器,类似于pycharm的 run调试django一样,可以打开一个 http:127.0.0.1的本地服务页面
并开启一个可使用的端口。
uwsgi 负责转发,将外网发过来的请求转发给 nginx,nginx就像处理内部访问一样来处理请求。(所以他们的端口明显不一样)
wq保存后进入/usr/local/nginx/sbin/目录
执行
cd /usr/local/nginx/sbin/
./nginx -t
此命令需要root不然报错
命令先检查配置文件是否有错,没有错就执行以下命令:
./nginx
终止
pkill - nginx
终端没有任何提示就证明nginx启动成功,可以通过链接查看nginx是否启动成功:
http://192.168.1.111 (请将该ip替换成你的服务器ip)
注:你可以输入来避免输入ip
localhost
5、访问项目页面
进入你的django项目路径,执行以下命令:
uwsgi3 -x myproject.xml
注:执行该xml后django就算是启动了,内部的nginx服务也将被启动,uwsgi将能够连接到nginx的服务了,此时网络应该是通畅的了。
以上步骤都没有出错的话,打开你的浏览器,输入以下链接,记得关闭系统防火墙或者开放8996端口
http://192.168.1.111:8996 (请将该ip替换成你的服务器ip)
网站访问成功!
localhost:
注:你可以输入来避免输入ip,此时将能够访问Django的网页了,enjoy yourself
释疑:localhost 在本地就是没有特别的意义,一旦摇了服务器,我们就可以输入服务器地址访问了