假設 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 進行設定,這是沒有用的,因為此法需要登入後才會啟動,所以請不要嘗試。