Ubuntu 安裝 Apache2+python3+Django+SQLite

一、安裝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

參考:https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-16-04#conclusion


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章