Linux for Django

      在〈Linux for Django〉中尚無留言

假設 Web Server 要建立在 /data/server/mahalbot 之下,依如下步驟操作。

安裝 Web Server

在 Linux 中依序執行如下指令

sudo apt-get install python3-django
sudo apt-get install python3.12-venv
cd /data/server
django-admin startproject mahalbot cd /data/server/mahalbot python3 -m venv .venv ./venv/bin/pip install django matplotlib plotly

允許外部連線

vim /data/server/mahalbot/settings.py,更改如下

#ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']

開機自動啟動 Web Server

在 /etc/systemd/system 自動啟動是最新版的方法,建議使用此法。

請在 /etc/systemd/system 底下新增 mahalbot 檔案,內容如下

[Unit]
Description=mahalbot
Requisite=network-online.target
After=network-online.target nss-lookup.target

[Service]
Type=simple
ExecStart=/server/mahalbot/.venv/bin/python3 /server/mahalbot/manage.py runserver 0.0.0.0:7001
Restart=always
[Install]
WantedBy= multi-user.target

然後執行達如下指令啟動,且於開機時會自動執行

sudo systemctl daemon-reload
suso systemctl enable mahalbot
sudo systemctl start mahalbot

上述 start 會在未重新開機時就立即啟動,enable 是指定重新開機後自動執行。

/etc/init.d 自動啟動

在 /etc/init.d 底下啟動自動執行的方式,是早期的 ubuntu 版本,這種方法有時會怪怪的,不建議,在此僅作記錄。

請在 /etc/init.d/ 下新增 mahalbot 檔案,檔案內容如下

#!/bin/sh
cd /server/mahalbot
/server/mahalbot/.venv/bin/python3 /server/mahalbot/manage.py runserver 0.0.0.0:7001

要注意的是,一定要用 /server/mahalbot/.venv/bin 裏的 python3,這樣才能啟動虛擬環境的所有設定,如果使用 /usr/bin/python3,會因為系統沒有安裝套件,無法啟動成功。

然後更改 mahalbot 權限

sudo chmod 755 mahalbot

最後在 rc3.d 目錄下新增軟連結

cd /etc/rc3.d
sudo ln -s ../init.d/mahalbot S99mahalbot

重新開機後即可自動啟動。

/etc/profile

有些網站教你在 /etc/profile 進行設定,這是沒有用的,因為此法需要登入後才會啟動,所以請不要嘗試。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *