程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了apache httpd 在 root 用户下运行良好,但在非 root 用户下运行失败大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决apache httpd 在 root 用户下运行良好,但在非 root 用户下运行失败?

开发过程中遇到apache httpd 在 root 用户下运行良好,但在非 root 用户下运行失败的问题如何解决?下面主要结合日常开发的经验,给出你关于apache httpd 在 root 用户下运行良好,但在非 root 用户下运行失败的解决方法建议,希望对你解决apache httpd 在 root 用户下运行良好,但在非 root 用户下运行失败有所启发或帮助;

Apache httpd 在 root 用户下运行良好。当我使用 oracle 用户运行 apache 时,它​​无法运行并出现以下错误:

$ ID
uID=600000014(oracle) gID=63855(oinstall)
oracle@myhost:...ache/2.4.43/https-API11/bin$ ls -ltr apachectl
-rwxr-xr-x   1 oracle   oinstall    3509 Nov 10 05:09 apachectl

./apachectl -k start
(13)Permission denIEd: AH00072: make_sock: Could not bind to address 10.23.52.219:443
no Listening sockets available,shutting down
AH00015: Unable to open logs

$ telnet 10.23.52.219 443
Trying 10.23.52.219...
telnet: Unable to connect to remote host: Connection refused
oracle@myhost:...ache/2.4.43/https-vwsAPI11/bin$ nslookup 10.23.52.219
216.51.23.10.in-addr.arpa       name = myhost.myshop.com.

oracle@myhost:...ache/2.4.43/https-API11/bin$ telnet myhost.myshop.com 443
Trying 10.23.52.219...
telnet: Unable to connect to remote host: Connection refused

下面是 httpd.conf 中的一些条目

Listen 8080
User oracle
Group oinstall
Serveradmin weblogic@myshop.com
Servername myhost.myshop.com

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

最后在 extra/httpd-ssl.com

SSLSessionCache        "shmcb:/u/home/apache/2.4.43/https-API11/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost myhost.myshop.com:443>
documentRoot "/u/home/apache/2.4.43/https-API11/htdocs"
Servername myhost.myshop.com
SSLEngine on

<Directory "/u/home/apache/2.4.43/https-API11/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

CustomLog "/u/home/apache/2.4.43/https-API11/logs/ssl_request_log" \
          "%t %h %{SSL_PROTOCol}x %{SSL_CIPHER}x \"%r\" %b"

ProxyPass /manager/ http://myhost.myshop.com:8443/manager/
ProxyPassReverse /manager/ http://myhost.myshop.com:8443/manager/

ProxyPass /API/ http://myhost.myshop.com:8443/API/ timeout=600
ProxyPassReverse /API/ http://myhost.myshop.com:8443/API/ timeout=600

SetEnv nokeepalive ssl-unclean-shutdown
</VirtualHost>

如果以上信息不够,我会分享整个配置。

请建议我如何让 apache httpd 与 oracle 用户一起运行,该用户是用于复制(安装)它的用户。

解决方法

Apache 首先需要以 root 身份运行才能将自己绑定到端口 80 和 443(或任何端口

User oracle
Group oinstall

在 apache 启动后工作正常,需要产生子进程来处理请求(这些进程将作为 oracle:oinstall 运行)。

Listen 8080

表示 apache 正在侦听端口 8080 而不是端口 80 或 443,并且如果 apache 不是以 root 身份运行,则它可以工作。

您还在运行 mod_ssl,其中应该包括

Listen 443

默认情况下,除非您或其他人已经更改了配置,因此出于我上面写的原因,您需要将此值更改为其他值 (>1024)。

(13)Permission denied: AH00072: make_sock: could not bind to address 10.23.52.219:443
no listening sockets available,shutting down

表示虚拟主机试图将自己绑定到端口 443 上,该端口不起作用,因为 apache 未以 root 身份运行。

恕我直言,您应该使用官方软件包安装 apache,让它以 root 身份运行并按照您发布的内容进行配置,以便处理请求的子进程按照您喜欢的用途运行(首选本地用户)。

大佬总结

以上是大佬教程为你收集整理的apache httpd 在 root 用户下运行良好,但在非 root 用户下运行失败全部内容,希望文章能够帮你解决apache httpd 在 root 用户下运行良好,但在非 root 用户下运行失败所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: