![](/img/trans.png)
[英]NameError: name 'hasattr' is not defined - Python3.6, Django1.11, Ubuntu16-17, Apache2.4, mod_wsgi
[英]How do I set up Django 1.11 with Python 3.6.1 using Apache 2.4 on Ubuntu 16+
我想知道如何在Ubuntu上快速簡單地設置Django
我已經閱讀了如此多的官方和用戶文檔,我的頭腦正在旋轉,並不是100%確定從哪里開始。
我不是一個絕對的初學者,而且我對Django,Python和Linux Shell命令(Ubuntu)有一些工作知識,因此指令可以快速而重要。
注意:我在下面回答了我自己的問題......
在Ubuntu 16+上使用Apache 2.4在Python 3.6.1中設置Django 1.11
注意:這並不涵蓋您可以做的所有事情 - 它旨在讓您的服務器盡快啟動並運行Django。 它應該適用於更高版本,只需記住找到正確的軟件包並相應地更改版本控制
你可能不得不改變很多路徑,所以要注意。
1.安裝Python 3.6和virtualenv
sudo apt-get update
sudo apt-get install python3.6 python3.6-dev
sudo apt-get install virtualenv
(Ubuntu軟件包https://packages.ubuntu.com/ )
2.安裝Apache2 webserver
sudo apt-get install apache2 apache2-dev
(所有東西都是apache https://httpd.apache.org/ )
3.創建並輸入項目的文件夾 - 然后在其中構建虛擬環境
mkdir ~/example.com
cd ~/example.com
virtualenv --python=/usr/bin/python3.6 py361ve
(有關虛擬環境的更多信息,請訪問https://virtualenv.pypa.io/en/stable/ )
4.輸入新的虛擬環境以向其安裝軟件包
source py361ve/bin/activate
(使用virtualenv https://virtualenv.pypa.io/en/stable/userguide/ )
5.安裝Django,mod_wsgi和任何其他所需的包
pip install django
pip install mod_wsgi
pip install ...
(在虛擬環境中不需要pip3 - pip在這里使用你的虛擬環境python版本)
(更多關於點子可以在這里找到https://pip.pypa.io/en/stable/ mod_wsgi https://modwsgi.readthedocs.io/en/develop/ )
6.移動現有項目或在〜/ example.com文件夾中創建新的django項目
django-admin startproject django_project
(如何構建Django應用程序https://docs.djangoproject.com/en/1.11/intro/tutorial01/ )
7.編輯Django項目文件夾中的wsgi.py文件,為項目添加sys路徑
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
附加:sys.path.append('/ path / to / your / library')
(django部署https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/ )
8.為您的站點編輯Django項目的settings.py,並設置項目正常工作所需的任何其他內容。
我將“靜態”和“媒體”文件夾放在與我的python代碼不同的位置(在/var/www/example.com/中),我認為你也應該防止意外地將你的python代碼公開。
(說明下面的VirtualHost示例應該使設置更清晰)
(Django設置https://docs.djangoproject.com/en/1.11/topics/settings/ )
9.運行以下命令並復制輸出以放置在apache配置文件中
mod_wsgi-express module-config
10.退出虛擬環境
deactivate
(您可以隨時使用步驟4中的源方法重新進入虛擬環境)
11.導航到apache2配置文件夾(Ubuntu上的/ etc / apache2 /)並將復制的文本放在Apache2配置文件的底部。
sudo nano apache2.conf
(更多關於apache2.conf [或某些系統上的httpd.conf] https://httpd.apache.org/docs/2.4/configuring.html )
12.導航到/ etc / apache2 / sites-available /並為您的站點創建新的conf文件。 編輯VirtualHost模板(在所有說明下方)並將其復制到此文件。
sudo nano example.com.conf
(VirtualHost示例https://httpd.apache.org/docs/2.4/vhosts/examples.html和mod_wsgi守護程序模式https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/#using -mod-wsgi-daemon-mode )
13.保存文件后,在Apache中啟用此站點
sudo a2ensite example.com.conf
sudo service apache2 reload
14.如果要啟用對站點的管理員訪問權限,只需將文件從python虛擬環境復制到別名的static / admin文件夾即可
example path: /py361ve/lib/python3.6/site-packages/django/contrib/admin/static/admin
(提供管理文件https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/#serving-the-admin-files )
15.每次更新任何python或django相關腳本時,您都需要“觸摸”wsgi.py文件以重新加載運行站點的守護進程以使其處於活動狀態或重新啟動apache ...
touch ~/example.com/my_project/my_project/wsgi.py
or
sudo service apache2 restart
16.最后檢查所有文件夾和文件是否具有足夠的組(通常是www-data)讀寫權限,以及數據庫所在的文件夾(如果使用sqlite)具有組寫權限。
VirtualHost示例模板......
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin info@example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Alias /robots.txt /var/www/example.com/robots.txt
Alias /favicon.ico /var/www/example.com/favicon.ico
Alias /static/ /var/www/example.com/static/
Alias /media/ /var/www/example.com/media/
<Directory /var/www/example.com/static>
Require all granted
</Directory>
<Directory /var/www/example.com/media>
Require all granted
</Directory>
WSGIDaemonProcess example.com python-home=/home/user_name/example.com/py361ve
WSGIProcessGroup example.com
WSGIScriptAlias / /home/user_name/example.com/django_project/django_project/wsgi.py
<Directory /home/user_name/example.com/django_project/django_project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
注意:請根據需要編輯錯誤並對說明進行改進,但不要試圖使事情過於復雜
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.