当然,我“选择了错误的操作系统”,Fedora而不是RHEL或CentOS,但是我在我的位置,并且在Fedora的nginx标准发行版中没有rtmp模块,因为RHEL和CentOS都有作为标准包可用的rtmp模块。
所以,我下载了源代码并做了一个构建。虽然调用make install进行构建(我没有在输出的817行中看到任何错误),但它不执行安装?!
一开始,我走错了花园的道路,这并不是完全错误的(见下面的“第二部分”),但在为这篇文章写“第二部分”时,我意识到我甚至找不到任何证据证明它编译了rtmp模块的任何源代码?!我遵循模块的github自述文件。中的指示
当然,我保存了一份跑步日志--太长了,不能在这里发帖。
有了几十年的编码经验,我知道要检查那些代码的Makefile,却没有找到任何代码?!奇怪,对吧?
如果有人要求从该日志的信息,我有,并将提供它,但IDK你可能想从它看到什么。
第二部分
我认为安装之所以没有发生,是因为源代码是通用编写的,没有注意到正在安装的操作系统,这就是“打包”的全部内容,以及软件包维护人员必须处理的问题.
我真的没有时间了解这些包的所有来龙去脉,但我知道标准的nginx包提供了以下模块:
usr/lib64/nginx/modules/ngx_http_perl_module.so
usr/lib64/nginx/modules/ngx_http_image_filter_module.so
usr/lib64/nginx/modules/ngx_mail_module.so
usr/lib64/nginx/modules/ngx_http_naxsi_module.so
usr/lib64/nginx/modules/ngx_stream_module.so
usr/lib64/nginx/modules/ngx_http_xslt_filter_module.so
usr/lib64/nginx/modules/ngx_http_vhost_traffic_status_module.so但是,我没有看到编译会创建任何.so文件,更不要说将它们移到Fedora上的位置了(默认情况下是/etc/nginx/modules)。此外,日志输出指示我查找/usr/local/nginx,根本没有.o或.so文件,而是一个二进制文件。这很好,但对我没有帮助,我想,除非我想把文件从操作系统和nginx的角度上“预期”的地方移动,这听起来就像一个大规模的时间接收器。
然而,这是一次性安装,当这个盒子需要升级的时候,我不想有太多的痛苦(如果可以的话,其他人也会这么做)。因此,我找到了这个创业板的博客帖子。,它涉及到这个问题,但似乎也涉及到这个问题,因为我还没有完全解决这个问题。
--如果我可以简单地学习如何构建正确的文件,那么我认为的目的是(一旦安装):
/usr/lib64/nginx/modules/ngx_rtmp_module.so...from .c源文件,然后是,我很确定我可以“从那里找出”。
(另一种可能是通过某种分析找到一种方法,证明GetPageSpeed人员在提供他们的包裹。时并没有改变源代码,或者,也许我可以说服包维护人员将rtmp包包含在Fedora可用的标准包中,但最好是等待很长时间。)
发布于 2022-10-04 00:09:43
结果是,源生成跳过了.o和.so文件阶段,只构建了一个可执行文件。
但是,正如前面已经指出的,它不是为在正常的、现代的Fedora环境中运行而设置的。
没有找到另一个答案,我想继续其他的事情,我只是得到了这个来源版本的工作,这并不难。请注意,这假定您已经安装了标准的nginx包,在本例中,这个包与手册页、systemd接口等挂钩,以便您可以像往常一样管理它。在您最喜欢的shell中,作为根:
# First, for my own sanity:
#
cd /etc
mv nginx nginx.from_FC_distro
ln -s /usr/local/nginx
cd /usr/local/nginx/logs
mv error.log error.log.orig
ln -s /var/log/nginx/error.log
#
# Now, get it to run and STAY running:
#
cd /usr/sbin
mv nginx nginx.from_FC_Distro
# Then EITHER this:
cp -p /usr/local/nginx/sbin/nginx /usr/sbin/nginx.from_src
ln -s nginx.from_src nginx
# OR this:
ln -s /usr/local/nginx/sbin/nginx
# Either vi or the echo works:
# vi /etc/nginx/conf/nginx.conf
echo "pid /run/nginx.pid;" >> /etc/nginx/conf/nginx.conf
#
# Finally:
systemctl enable nginx.service
systemctl start nginx.service现在,您可以使用配置文件中设置的配置和nginx服务一起运行rtmp服务器的安装!而且,你可以像往常一样处理它。升级也没那么难,只是不要费心用通常的方式升级nginx包。我相信脚本-孩子们能找到基于这篇文章。的脚本
https://stackoverflow.com/questions/73929443
复制相似问题