zoukankan      html  css  js  c++  java
  • macos apache中mod_wsgi的配置

    最近两天做了一个Django的即时聊天小网站,想搭在apache上,被这个mod_wsgi的问题折磨了半天,终于配置成功,遇到相同问题的看官请往下看。

    首先

    pip install mod_wsgi
    
    #pip用不了的童鞋可以用pip3试一下,要是pip3还不行,那就用python -m pip install mod_wsgi

    别着急, 我们并不使用pip下来的这个,只是为了得到一个配置信息模版

    接下来,打开终端,输入如下

    mod_wsgi-express module-config

    你应该会获得类似这样的结果

    LoadFile "/opt/anaconda3/lib/libpython3.7m.dylib"
    LoadModule wsgi_module "/opt/anaconda3/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-darwin.cpython-37m-darwin.so"
    WSGIPythonHome "/opt/anaconda3"

    我python3使用的anaconda安装的,所以用的自己安装的python的同学不要觉得自己获得的结果奇怪

    这个终端不要关掉,待会要复制这段结果

    然后轮到apache了

    众所周知,mac是自带apache的,但是这个apache并没有apxs工具,而编译mod_wsgi必须有它

    所以,我们马上要着手的就是删除这个自带的apache

    rm -rf 你的apache目录

    不要犹豫,按下你的回车键!

    接下来有分支了:

    1. 你已经安装了Homebrew

    2.你还没有安装Homebrew

    1的同学请直接跟我往下走

    2的同学请出门左转,找到我的上一篇文章,进行brew的安装(安装完后换个国内镜像吧!)

    来,同学我们继续

    新建一个终端

    输入

    brew install httpd

    正常来说几分钟就好啦,耐心等吧!

    安装完后先放一边,我们开始下载mod_wsgi源码

    进入mod_wsgi官网下载源码压缩包(我下的zip)

    按照官方文档编译mod_wsgi

    文档入口帮大家写在下面啦

    https://modwsgi.readthedocs.io/en/develop/user-guides/installation-on-macosx.html

    完成后应会有以下类似结果

    /usr/local/bin/apxs -i -S LIBEXECDIR=/usr/local/lib/httpd/modules -n 'mod_wsgi' src/server/mod_wsgi.la
    /usr/local/opt/httpd/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/local/opt/apr/libexec/build-1/libtool' src/server/mod_wsgi.la /usr/local/lib/httpd/modules
    /usr/local/opt/apr/libexec/build-1/libtool --mode=install install src/server/mod_wsgi.la /usr/local/lib/httpd/modules/
    libtool: install: install src/server/.libs/mod_wsgi.so /usr/local/lib/httpd/modules/mod_wsgi.so
    libtool: install: install src/server/.libs/mod_wsgi.lai /usr/local/lib/httpd/modules/mod_wsgi.la
    libtool: install: install src/server/.libs/mod_wsgi.a /usr/local/lib/httpd/modules/mod_wsgi.a
    libtool: install: chmod 644 /usr/local/lib/httpd/modules/mod_wsgi.a
    libtool: install: ranlib /usr/local/lib/httpd/modules/mod_wsgi.a
    chmod 755 /usr/local/lib/httpd/modules/mod_wsgi.so

    记住这句 

    /usr/local/lib/httpd/modules/mod_wsgi.so

    进入自己电脑上apache的目录

    编辑httpd.conf

    sudo vim httpd.conf

    #翻到文件最下面
    #这时候第一个打开的终端就有用啦!将刚才的结果复制过来
    #就是这段,将第二句话中双引号扩起来的部分改成我刚刚让你们记住的那句话/usr/local/lib/httpd/modules/mod_wsgi.so记得去掉双引号(PS:别傻乎乎的复制我的啊!要把你们终端里打印出来的替换过来!!!)

    LoadFile "/opt/anaconda3/lib/libpython3.7m.dylib" LoadModule wsgi_module "/opt/anaconda3/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-darwin.cpython-37m-darwin.so" WSGIPythonHome "/opt/anaconda3"

    接下来保存退出文件

    终端输入以下命令测试

    sudo apachectl configtest

    若结果为

    Syntax OK

    那么小伙汁/小姑凉,恭喜你!你成功啦!

    那咱们就有缘再见叭~

  • 相关阅读:
    简单工厂模式&工厂方法模式&抽象工厂模式的区别及优缺点及使用场景
    JDK1.8的新特性
    在Button样式中添加EventSetter,理解路由事件
    关于C#低版本升级高版本时,项目中引用Microsoft.Office.Interop.Word,程序提示不存在类型或命名空间名office.
    无法安装或运行此应用程序。该应用程序要求首先在"全局程序集缓存(GAC)"中安装程序集
    C#winform跨窗体传值和调用事件的办法
    C#线程处理:七、线程实列
    C#线程处理:六、线程同步(三)
    C#线程处理:五、线程同步(二)
    C#线程处理:四、线程同步
  • 原文地址:https://www.cnblogs.com/CodeTheUniverse/p/13111035.html
Copyright © 2011-2022 走看看