Loading...

将django项目利用mod_wsgi+Apache部署到linux服务器上

–>

环境:阿里云服务器linux系统CentOS7,阿里云服务器自带的python2.7,mod_wsgi3.4,Apache(也叫httpd)2.4.6
购买阿里云服务器后,在自己电脑上 下载Xshell5软件,用来远程连接服务器,连接服务器的操作网上教程很多,这里不再累述,连接服务器后,自动进入了linux系统的命令行模式,(若此时打命令ls和其他命令都没有反应,可以先打命令
cd /home/ ,接着打 ls 命令就可以看到目录文件夹下的资源)。
接着就是配置服务器上的环境,(本来我的项目是用python3写的,后来在配置服务器上环境时,即使用上了virtualenv来控制python版本,结果还是出错,在查看日志后,发现项目刚开始调用python3,接着又去调用python2,实在令人费解,弄了很长时间也没解决,最后把项目改写成了python2版本),阿里云服务器CentOS7已经自带python2.7了,就不用再安装了。  
首先输入:

yum install httpd httpd-devel -y

来安装apache,httpd就是apache服务,httpd-devel 是所依赖的,-y表示安装时的确定命令yes


接着输入:

yum install mod_wsgi

来安装mod_wsgi


接着Apachehttpd.conf里加上这两句:(httpd.conf一般路径为 /etc/httpd/conf/httpd.conf ,可以  输入vi   /etc/httpd/conf/httpd.conf命令来进入编辑。)

 

LoadModule wsgi_module modules/mod_wsgi.so

Include  /home/shawn/blog_project/apache_django_wsgi.conf

 

第一句话一般不变,第二句是你的项目路径下的一个 apache_django_wsgi.conf文件,需要改写成你自己项目的路径。

 

接着就是上传项目,点击Xshell软件上方的一个快捷键“新建文件传输”,它会自动帮你下载安装Xftp软件,此时你可以看见本机以及服务器上的文件夹,先进入服务器的  /home/目录,再选择本机的项目文件夹右键 传输即可上传到服务器/home/目录下,以下是我的项目目录,

在项目根目录下新建apache_django_wsgi.conf文件,用来连接apache与django项目,文件内容:

<VirtualHost *:80>
DocumentRoot /home/demand_jango/demand_jango
Alias /static/ /home/demand_jango/jiaowu/static/

Alias /static/admin/ /usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin

<Directory />       
Require all granted
</Directory>


<Directory /usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin>       
Require all granted 
</Directory>

<Directory /home/demand_jango/jiaowu/static>      
Require all granted
</Directory>
 
<Directory /home/demand_jango/jiaowu/static> 
<Files yan.jpg>       
Require all granted
</Files>
</Directory>


<Directory /apache>       
Require all granted
</Directory>

<Directory /home/demand_jango/demand_jango>
<Files wsgi.py>       
Require all granted
</Files>
</Directory>

WSGIDaemonProcess demand_jango python-path=/usr/lib64/python2.7/site-packages user=apache group=apache    
WSGIProcessGroup demand_jango
WSGIScriptAlias / /home/demand_jango/demand_jango/wsgi.py


</VirtualHost>

 其中

DocumentRoot为项目路径, Alias /static/ 为静态文件夹路径,Alias /static/admin/为django下的admin路径,

<Directory />       
Require all granted
</Directory>

这些语句是给对应文件夹访问权限。

WSGIDaemonProcess demand_jango python-path=/usr/lib64/python2.7/site-packages user=apache group=apache   中

demand_jango 为项目名,python-path为python的site-packages路径,user=apache group=apache声明使用apache用户 组,

WSGIScriptAlias 后是项目下的wsgi.py文件路径。

在项目下的wsgi.py文件中加上一句话

import sys
sys.path.append('/home/demand_jango') #项目路径

回到 Xshell软件中,在命令行 cd /home/下,输入 chown -R apache:apache demand_jango,
(demand_jango为项目文件夹名),让项目文件夹用户组变为apache,
再输入chmod -R 755 demand_jango 赋予项目文件夹及子目录读写权限,
再 cd ..回到系统根目录chmod -R  home 让home目录有读写权限。

最后需要去修改一下项目下的setting.py文件中:


DEBUG =False
ALLOWED_HOSTS = ['59.110.154.238','locaclhost','127.0.0.1']
其中 '59.110.154.238'为你的服务器的公网IP地址。

对于阿里云服务器来说,还需要去阿里云平台上设置你的服务器的安全组里的安全规则,因为apache使用的是80端口,所以需要去安全规则里设置80端口可以被访问。
然后最好重启一下服务器让一些命令生效,重启完后输入  
service httpd start
启动apache服务,就可以在浏览器上输入公网IP(利如:http://59.110.154.238/gdut/) 访问到服务器上的django项目了。
如果还是访问不了可以到输入 cat  /etc/httpd/logs/error_log ,查看apache的错误日志文件,去 一 一解决。



本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章