您的位置:首页 > 运维架构 > Apache

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

2017-08-05 13:40 603 查看
环境:阿里云服务器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服务,[b]httpd-devel 是所依赖的,-y表示安装时的确定命令yes[/b]接着输入:yum install mod_wsgi来安装mod_wsgi
接着在Apache的httpd.conf里加上这两句:(httpd.conf一般路径为 /etc/httpd/conf/httpd.conf ,可以  输入vi   /etc/httpd/conf/httpd.conf命令来进入编辑。)
 LoadModule wsgi_module modules/mod_wsgi.soInclude  /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_jangoAlias /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=apacheWSGIProcessGroup demand_jangoWSGIScriptAlias / /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 syssys.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 =FalseALLOWED_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的错误日志文件,去 一 一解决。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python apache 服务器