apache 部署python3_centos7.6+python3+apache2.4+django2.1.2网站部署总结
本次網站部署是使用了django2.1.2版本部署,由于centos自帶的Python2.7不支持django2.0以上版本,故需要安全python3的環境。python3、apache的安裝不做具體介紹,網上有很多方法,不做具體介紹,重點針對本次部署過程中遇到的幾個問題進行記錄。
1、python mysql數據庫連接模塊;
由于python3不支持使用python2的MySQLdb連接數據庫,需要使用pymysql的模塊來連接數據庫,如果直接import pymysql模塊,django程序啟動的時候會報錯提示沒有pymysql模塊。這里需要在站點的__init__.py的文件里面加入下面的內容:
import pymysql
pymysql.install_as_MySQLdb()
把pymysql當成MySQLdb來用。
2.安裝mod_wsgi模塊方法;
使用yum install?mod_wsgi去安裝apache?mod_wsgi模塊, 這樣做其實最終mod模塊會調用本地默認的python2的所有庫文件, 無論你后面如何配置django入口文件, apache都不會使用我們配置的python3, 導致apache無法調用python3而報錯.。正確的方法是使用python3的pip install mod_wsgi來安裝模塊,注意pip也分python2和python3,具體看你安裝的時候的配置。如果已經通過yum安裝過了,可以通過yum remove mod_wsgi移除到即可。
另外,通過pip安裝模塊的會出現gcc編譯錯誤的問題,網上的說法是缺少了一些必要的編譯環境包導致的,網上找了下解決方案,安裝了下面的包以后就好了
yum -y install gcc python36-devel bzip2-devel sqlite-devel openssl-devel readline-devel xz-devel xz-devel tk-devel gdbm-devel??python-devel
安裝完成后通過mod_wsgi-express install-module獲取到模塊的文件
3.apache配置
編輯vi /etc/httpd/conf/httpd.conf,在文件末尾加mod_wsgi-express install-module獲取到的信息;
虛擬主機配置
WSGIPythonHome "/usr"? #這里設置的是python的標準庫所在位置,這個是mod_wsgi-express install-module顯示的路徑,實際寫到python3.6的目錄會有問題不知道什么原因,這樣配置就沒問題;
Listen 8000
ServerName django.example.com
Alias /static/ /var/www/django/static/? #靜態文件路徑
?#靜態文件路徑
Require all granted
?#站點路徑
Require all granted
WSGIDaemonProcess mysite python-path=/usr/lib/python3.6/site-packages:/usr/local/lib/python3.6/site-packages:/usr/local/lib64/python3.6/site-packages??#python3的第三方庫路徑
WSGIScriptAlias / /var/www/django/mysite/wsgi.py? #django項目的wsgi.py文件路徑
總結
以上是生活随笔為你收集整理的apache 部署python3_centos7.6+python3+apache2.4+django2.1.2网站部署总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html 纯css 树形结构,纯css实
- 下一篇: HTML5制作斑马线表格,JavaScr