将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_django_wsgi.conf文件,需要改写成你自己项目的路径。 接着就是上传项目,点击Xshell软件上方的一个快捷键“新建文件传输”,它会自动帮你下载安装Xftp软件,此时你可以看见本机以及服务器上的文件夹,先进入服务器的 /home/目录,再选择本机的项目文件夹右键 传输即可上传到服务器/home/目录下,以下是我的项目目录,在项目根目录下新建apache_django_wsgi.conf文件,用来连接apache与django项目,文件内容:
接着在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 |
<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的错误日志文件,去 一 一解决。
相关文章推荐
- Linux+Django+Python+Wsgi配置过程 Linux下配置Apache+Mod_Wsgi+Django环境 部署django项目
- 最新版windows 2012R2、Apache24、mod_wsgi、Django1.9、python3.4项目部署(生产环境)
- windows64位下用apache2.4.29部署django1.11.7项目并使在局域网内可访问(mod_wsgi.so可下载)--超详细
- linux上部署Django项目(Apache+mod_wsgi+django)
- CentOS 7 + Apache + mod_wsgi 部署Django项目
- centos6.3下apache2.4.4+mod_wsgi+django部署记录
- windows + Apache + mod_wsgi 部署发布Django项目
- apache+mod_wsgi+django在windows下的部署
- Apache mod_wsgi部署Django项目
- linux上部署Django项目(Apache+mod_wsgi+django)
- 在window上部署python Django项目 采用apache+mod_wsgi方案
- Django1.10+Apache2.4+mod_wsgi+python3.5部署
- Apache+mod_wsgi+django在windows下的部署
- apache&mod_wsgi&django部署多个项目
- django1.77+mod_wsgi+python2.79+apache2.24 在阿里云centos部署攻略
- 在apache上部署web.py项目(python2.7+web.py+mod_wsgi+apache2.2)
- 利用mod_wsgi部署Django应用
- WIN, Apache2.2+Django1.6(Python2.7.5)+mod_wsgi 实现网站部署
- django项目部署在Apache服务器中,静态文件路径的注意点