一、安裝Apache
1. 安裝Apache2:apt install apache2
2. 查看版本:apache2 -v
3 配置端口:
3.1、修改監聽:root@ubuntu:/etc/apache2# sudo nano ports.conf
3.2、修改端口及目錄:root@ubuntu:/etc/apache2/sites-enabled# sudo nano 000-default.conf
3.3、重啓Apache:service apache2 restart
二、配置python3:
1、Ubuntu自帶python2.7,需要刪除:sudo rm /usr/bin/python
2、修改python版本:sudo ln -s /usr/bin/python3 /usr/bin/python
三、安裝pip
1、安裝pip3:
sudo apt-get update
sudo apt-get install python3-pip
四、安裝mod_wsgi:
sudo apt-get update
sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
五、安裝python虛擬環境:
1、安裝virtualenv:sudo pip3 install virtualenv
2、var/www下創建目錄:mkdir sammy
3、進入Sammy下面創建虛擬環境:virtualenv myprojectenv
4、激活虛擬環境:source myprojectenv/bin/activate
5、安裝Django:python -m pip install django,不能使用pip install django 否則,django模塊需要手動加入到sys的path中
六、創建、配置Django項目:
1、創建:root@ubuntu:/var/www/sammy# myprojectenv/bin/django-admin.py startproject myproject
2、修改配置:sudo nano myproject/myproject/settings.py
ALLOWED_HOSTS = ["192.168.108.138"]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
3、初始化項目:
cd myproject
./manage.py makemigrations
./manage.py migrate
4、創建項目管理員:./manage.py createsuperuser
5、鏈接靜態文件:./manage.py collectstatic
6、測試
6.1、創建端口:sudo ufw allow 8000
6.2、命令行運行:./manage.py runserver 0.0.0.0:8000
6.3、訪問:192.168.108.138:8000
6.4、管理員登錄:192.168.108.138:8000/admin(用戶名、密碼是上面的第4步配置的)
6.5、退出:ctrl+c,然後停止:deactivate
七、配置Apache:
打開配置文件:sudo nano /etc/apache2/sites-available/000-default.conf
ServerName 192.168.108.138
ServerAdmin webmaster@localhost
# DocumentRoot /var/www/sammy
Alias /static /var/www/sammy/myproject/static
<Directory /var/www/sammy/myproject/static>
Require all granted
</Directory>
<Directory /var/www/sammy/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess 192.168.108.138 python-path=/var/www/sammy/myproject python-home=/var/www/sammy/myprojectenv/lib/python3.5/site-packages
WSGIProcessGroup 192.168.108.138
WSGIScriptAlias / /var/www/sammy/myproject/myproject/wsgi.py
八、配置SQLite
#664,即所有者的權限爲可讀可寫不可執行、所屬羣組可讀可寫不可執行、其他人可讀不可寫不可執行。
chmod 664 myproject/db.sqlite3
sudo chown :www-data myproject/db.sqlite3
sudo chown :www-data myproject
九、防火牆配置:
#關閉之前的端口
sudo ufw delete allow 8000
sudo ufw allow 'Apache Full'
十、Apache配置結尾:
#
sudo apache2ctl configtest
#重啓
sudo systemctl restart apache2
十一、問題:
1、unable to open database file的解決banf:
chgrp www-data myproject
chgrp www-data myproject/db.sqlite3
chmod g+w myproject
chmod g+w myproject/db.sqlite3