将django项目利用mod

xiaoxiao2021-02-28  103

环境:阿里云服务器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的错误日志文件,去 一 一解决。
转载请注明原文地址: https://www.6miu.com/read-20866.html

最新回复(0)