CentOS配置mod_wsgi實現Python應用部署
環(huán)境準備與依賴安裝
執(zhí)行以下命令安裝Apache與開發(fā)工具包:
sudo yum install httpd httpd-devel
sudo yum groupinstall "Development Tools"
安裝Python開發(fā)庫(以Python 3為例):
sudo yum install python3-devel
安裝mod_wsgi模塊
通過pip安裝并關聯Apache:
sudo pip3 install mod_wsgi
sudo mod_wsgi-express install-module
驗證模塊加載狀態(tài):
httpd -M | grep wsgi
Apache虛擬主機配置
創(chuàng)建配置文件/etc/httpd/conf.d/wsgi.conf
:
<VirtualHost *:80>
ServerName yourdomain.com
WSGIDaemonProcess myapp python-path=/var/www/myapp:/usr/lib/python3.6/site-packages
WSGIProcessGroup myapp
WSGIScriptAlias / /var/www/myapp/app.wsgi
<Directory /var/www/myapp>
Require all granted
</Directory>
</VirtualHost>
應用測試與權限設置
創(chuàng)建測試WSGI腳本app.wsgi
:
def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
設置目錄權限并重啟服務:
sudo chown -R apache:apache /var/www/myapp
sudo systemctl restart httpd
故障排查與優(yōu)化
- 檢查Apache錯誤日志:
tail -f /var/log/httpd/error_log
- 確認SELinux策略:
setsebool -P httpd_enable_homedirs 1
- 驗證防火墻設置:
sudo firewall-cmd --permanent --add-service=http