centos+apache+Flask+mod_wsgi小案例配置记录

前言:这段话是写完一整篇文章后写的。本篇文章是实况,很杂很乱不具备系统教学功能,包括了python卸载安装,多python的bug,apxs安装问题,modwsgi编译问题中的路径问题,python路径查找,平行python的share开启。
所以总结一下。
先安装apache
在安装python,注意开启enable-shared编译
然后安装apxs
然后安装mod_wsgi
然后安装flask库
然后配置httpd.conf
然后开始写flask

正文如下:
先列出有用的参考文档:
https://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html(mod_wsgi官方的快速配置文档的,用deepL边翻译边看看得老子睡着)
https://segmentfault.com/a/1190000004500715(这个网站的命名方式真tm霸气,直接一串数组,和我一样简单粗暴,点赞,这篇很详细,很有用,古斯那(俄语:极好的,好吃的))
http://t.csdn.cn/gPZg6(很好的教程)
http://t.csdn.cn/2sJcX(这是最好的教程,直接符合本篇的需求,如果你是真的从0开始,不是我这种已经安装apache和python的人,就差flask,那请直接完全按照这篇进行)

1.下载mod_wsgi

下载地址https://github.com/GrahamDumpleton/mod_wsgi/releases

2.安装mod_wsgi

然后扔到服务器上去编译安装,结果报错,怎么解决???

百度一圈找不到答案,查看了我看得要睡觉的modwsgi官方文档

deepl机器翻译如下,勉强看看吧,我好心累

看了一通,啥也没看懂,我对apache什么乱七八糟的又不了解,不过确定报错centos的原因。
继续查,发现答案
输入which apxs,“通过命令"which apxs"先找到正确的apxs的位置(如:/bin/apxs),然后再把这个路径添加到"./configure --with-apxs=“后面(如”./configure --with-apxs=/bin/apxs"),然后就可以了。”

这,逗我呢,no apxs in?????
继续百度,说是没安装apxs,那就安装咯

全部报错,安装失败,哎

不管,再试试which apxs,依旧找不到,心很累
于是从头百度,发现有一些教程在./configure 这一步后面的地址和官方文档一样,那我就干脆直接也用官方文档的地址试看看?
照样报错,输入make还是刚刚那些错误,哎

定睛一看,发现其实有的教程在./configure 这一步后面的地址和官方文档不一样,那我看来地址真的很重要,那就找出apxs的地址和python3的地址咯,冲冲冲

就尼玛秀,找不到,逗我笑呢???
老子直接暴力查找

好家伙,找半天没找到我停止了,手动找找
还是没找到,真的找了很久

又找到一个安装apxs的命令
yum install httpd-devel


然后这个安装成功咯!
输入which apxs,找到了

再找一下python3的路径
先输入python3确定python版本
然后输入which python3来确定地址

ok,那现在apxs和python3路径都找到了,新的指令如下

./configure --with-apxs=/usr/bin/apxs \
  --with-python=/usr/local/python3/bin/python3

对比一些教程这个指令还是有区别的

好,那重新来编译,看看能成功吗
比刚刚成功非常多,不会再有报apxs找不到什么的错误,但是还是报错了
make的错误

make install的错误

那就百度咯,当然答案五花八门,我先试试这个

apt-get找不到指令

dnmd找不到裂开

还有答案说./configure指令拼写错误的原因,那我就换成如下

./configure -with-python=/usr/local/python3/bin/python3 --with-apxs=/usr/bin/apxs

还是报相同的错误
真的又开始乱找了,百度看了个便,没找到,只要去stackflow找,又开始了头疼的英语阅读阶段,真的困,呜呜呜

然后有的说可能要安装yum install libtool


安装成功,再试着编译一次
还是报错

看来可能真的是这个原因,要用enable-shared的模式重新编译python,哎,好麻烦的

那就开始重新编译吧
下载新python,这不禁让我想起了当初等了一整个下午的可怕经理

哎,这次我科学上网一秒就下载好了,然后再传到服务器

下载地址:https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
丢到root根目录
执行下面代码

$ tar -xzvf Python-3.7.2.tgz
$ cd Python-3.7.2
$ ./configure --prefix=/usr/local/python3 --enable-shared
$ sudo mkdir /usr/local/python3


最后一步报错,看来要先卸载旧的python,好家伙
稍等,看来不用,mkdir只是用于创建文件夹罢了
好的,那继续

make
sudo make install
然后建立python3和pip3的软链。
$ ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
$ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

输入python3后显示

python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

出现该问题是由于在centos下安装python3并没有将编译后python/lib下文件放入默认库/usr/lib或/lib中,导致初始化时没有加载库文件。

解决方案:将lib添加至库配置信息中

#cd /etc/ld.so.conf.d

#vim python3.conf

将编译后的python/lib地址加入conf文件,按照教程的话应该地址是:直接输入一行/usr/local/python3/lib保存即可
然后运行

#ldconfig

再次查看输入python3,即可看到正确显示信息

好,那现在,再来重新编译,希望能成功,真的好累,再失败明天再战了。。。

这应该是成功了吧,哦也。

在 Apache 中配置 mod_wsgi
输入 find / -name mod_wsgi.so查找mod_wsgi.so位置用于下面配置文件的路径
然后输入

vi /etc/httpd/conf/httpd.conf

在末行添加一下内容:

LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so

3.配置wsgi

懒得写了
完全参考这篇文章的“配置wsgi”部分吧
http://t.csdn.cn/wTQxO
然后访问,报错,返回500,立刻百度
没百度出来,后来配置文件完全模仿上篇文章,
就可以了,恭喜。
本篇结束

所以总结一下。
先安装apache
在安装python,注意开启enable-shared编译
然后安装apxs
然后安装mod_wsgi
然后安装flask库
然后配置httpd.conf
然后开始写flask

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值