会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 apache部署web项目!
当前位置:首页 > 热点 > apache部署web项目 正文

apache部署web项目

时间:2026-10-17 05:16:27 来源:烟消火灭网 作者:时尚 阅读:447次

apache部署web项目

昨天帮朋友把一个python flask项目扔到服务器上,部署折腾到凌晨两点。部署他用的部署就是apache,不是部署nginx。这年头选apache的部署人少了,但老家伙依然能打,部署尤其你手头有个现成的部署httpd服务,或者项目里全是部署.htaccess规则的时候。

先把项目文件拷到/var/www/html/myapp,部署权限设成755,部署属主www-data。部署这一步别偷懒,部署我见过太多人卡在403上,部署结果就是部署目录权限不对。然后装mod_wsgi,部署ubuntu上一条命令的事:apt install libapache2-mod-wsgi-py3。python版本要对上,系统自带3.8,你要是用3.10写的代码,那就得自己编译,那又是另一个故事了。

配置虚拟主机。在/etc/apache2/sites-available/里建个文件,叫myapp.conf。内容大概长这样:

 <VirtualHost *:80> ServerName myapp.example.com WSGIDaemonProcess myapp python-path=/var/www/html/myapp WSGIScriptAlias / /var/www/html/myapp/wsgi.py <Directory /var/www/html/myapp> Require all granted </Directory> </VirtualHost> 

wsgi.py这文件你得自己写,就三行:

 from myapp import app if __name__ == "__main__": application = app 

然后a2ensite myapp.conf启用站点,systemctl reload apache2重载服务。就这么简单。

但现实往往没这么顺。我第一次配的时候,页面直接给500,翻apache的error.log,发现是python依赖没装全。虚拟环境没激活,模块全找不到。后来学乖了,直接在WSGIDaemonProcess里加python-home参数指向venv目录,省得每次手动激活。

静态文件是个坑。apache默认不处理python应用里的静态资源,你得单独配一个Alias。比如项目里有static文件夹,那就加一行:

 Alias /static /var/www/html/myapp/static 

不然css和js全挂,页面丑得没法看。我那个朋友就卡在这,跟我说"页面出来了但光秃秃的",我一看,静态文件请求全404。

还有个细节,apache默认的Timeout是60秒。如果你的项目里有长时间运行的接口,比如导出报表这种,客户端等60秒没响应就断了。把Timeout调到300,或者用异步方案,但那是另一个话题。

最后说下.htaccess。apache的优势就在这,你可以在项目目录里放这个文件,覆盖全局配置。比如强制https跳转,或者加个请求头,都不用动主配置文件。但记得AllowOverride All得开着,不然.htaccess就是废纸一张。默认站点是关的,我吃过这亏,改了.htaccess半天没反应,最后发现是AllowOverride没开。

部署这事,说破天也就这几步。但每次都能遇到新问题,不是端口被占就是模块没启用。多备几个排查命令在脑子里,apachectl -t检查配置语法,journalctl -u apache2看服务日志,比什么教程都管用。apache不新潮,但它稳定,配置起来直来直去,不像nginx那套location正则,写错一个符号就是404。你要是第一次部署web项目,选apache反而省心。

(责任编辑:娱乐)

相关内容
  • 免费压力测试网站
  • 反渗透膜机组模型下载
  • 刷机钓鱼
  • 百度渗透啥意思
  • 超星泛雅官网
  • 什么技巧填动词
  • 火狐官网首页入口
  • excel怎么设置二级目录
推荐内容
  • web动态网站源代码
  • 网站禁止f12怎么办
  • 渗透全栈
  • win11漏洞
  • 小网站的网址都是怎么知道的
  • 厦门人力资源网官方网站