在CentOS上部署Python環境可以通過以下步驟完成:
首先,確保你的CentOS系統是最新的。
sudo yum update -y
安裝編譯Python所需的依賴包。
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel tk-devel gcc make
從Python官方網站下載你需要的Python版本,并進行編譯安裝。
wget https://www.python.org/ftp/python/3.x.x/Python-3.x.x.tgz
將3.x.x
替換為你想要安裝的Python版本號。
tar xvf Python-3.x.x.tgz
cd Python-3.x.x
./configure --prefix=/usr/local/python3
make -j 8 # 使用8個線程進行編譯,可以根據你的CPU核心數調整
sudo make altinstall # 使用altinstall避免覆蓋系統默認的Python版本
安裝完成后,驗證Python是否正確安裝。
python3.x --version # 將3.x替換為你安裝的版本號
使用venv
模塊創建一個虛擬環境,以便更好地管理項目依賴。
sudo yum install -y python3-venv
python3.x -m venv myenv # 將3.x替換為你安裝的版本號
source myenv/bin/activate # 激活虛擬環境
在虛擬環境中安裝項目所需的Python包。
pip install -r requirements.txt # 如果你有requirements.txt文件
如果你打算將Python腳本作為服務運行,可以使用systemd來管理。
sudo nano /etc/systemd/system/my_python_script.service
在文件中添加以下內容:
[Unit]
Description=My Python Script
After=network.target
[Service]
User=your_username
Group=your_groupname
WorkingDirectory=/path/to/your/script
ExecStart=/path/to/your/script/start_script.sh
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start my_python_script.service
sudo systemctl enable my_python_script.service
如果你打算部署Web應用,可以使用Nginx和Gunicorn。
sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
在虛擬環境中安裝Gunicorn。
pip install gunicorn
創建一個Gunicorn配置文件gunicorn.conf.py
。
bind = '127.0.0.1:8000'
workers = 3
gunicorn -c gunicorn.conf.py myapp:app # 將myapp替換為你的應用模塊名,app替換為你的Flask應用實例名
編輯Nginx配置文件/etc/nginx/conf.d/default.conf
。
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo systemctl restart nginx
確保防火墻允許HTTP和HTTPS流量。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
通過以上步驟,你可以在CentOS上成功部署Python環境,并根據需要進行Web應用的部署。