• 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

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

    那咱们就有缘再见叭~

  • 相关阅读:
    Python项目生成requirements.txt的多种方式
    标准的Flask启动文件
    Flask的错误日志处理和|ORM操作
    Django的model中创建表
    Redis的删除机制、持久化 主从
    RabbitMQ 消息队列
    IP地址与子网掩码逐位相与
    IP地址转二进制
    一款很好用的工具
    放球问题
  • 原文地址:https://www.cnblogs.com/CodeTheUniverse/p/13111035.html
Copyright © 2020-2023  润新知