Apache 在所有页面上发送“找不到文件”

kod*_*ire 5 php apache laravel

我正在使用 Laravel,当我将项目上传到服务器时,它返回 500、503 和其他类型的错误。因为我正在使用,Virtualmin所以我检查了 error_log /var/log/virtualmin,发现它php-fpm没有启用。所以我启用了它,现在所有页面上都出现File not found错误!

所以我添加ProxyErrorOverride on到文件中/etc/httpd/conf/httpd.conf,但后来Not Found The requested URL /index.php was not found on this server.我对其进行了评论并添加<FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>,但它再次返回File not found

然后我进入/etc/php-fpm.d/www.conf并编辑了这部分从;chroot =chroot = /home/mysite/public_html/public。但没有结果:(

更新

我的根文件夹中没有任何.htaccess文件,但在公共文件夹中,并且在其中我有:

<IfModule mod_rewrite.c>
    Options +SymLinksIfOwnerMatch

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

更新2

错误截图

更新3

我修改了/etc/php-fpm.d/www.conf

由此:

user = apache
group = apache
Run Code Online (Sandbox Code Playgroud)

对此:

user = php-fpm
group = php-fpm
Run Code Online (Sandbox Code Playgroud)

由此:

listen = 127.0.0.1:9000
;listen = /run/php-fpm/www.sock
Run Code Online (Sandbox Code Playgroud)

对此:

;listen = 127.0.0.1:9000
listen = /run/php-fpm/www.sock
Run Code Online (Sandbox Code Playgroud)

反之亦然。

由此:

listen.owner = apache
listen.group = apache
Run Code Online (Sandbox Code Playgroud)

对此:

listen.owner = php-fpm
listen.group = php-fpm
Run Code Online (Sandbox Code Playgroud)

由此:

;listen.acl_users = apache,nginx
Run Code Online (Sandbox Code Playgroud)

对此:

listen.acl_users = apache,nginx
Run Code Online (Sandbox Code Playgroud)

由此:

;listen.allowed_clients = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

对此:

listen.allowed_clients = any
Run Code Online (Sandbox Code Playgroud)

由此:

;chroot = /
Run Code Online (Sandbox Code Playgroud)

对此:

chroot = /home/mysite/public_html
Run Code Online (Sandbox Code Playgroud)

由此:

;chdir = /
Run Code Online (Sandbox Code Playgroud)

对此:

chdir = /public
Run Code Online (Sandbox Code Playgroud)

抱歉,我分别说了每一项,因为我做了各种更改,每一项都可能因每次更改值而有所不同。

现在错误是:

Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Run Code Online (Sandbox Code Playgroud)

和我的错误日志:

[Thu Feb 21 02:58:13.318048 2019] [proxy:error] [pid 4170] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (127.0.0.1) failed
[Thu Feb 21 02:58:13.318146 2019] [proxy:error] [pid 4170] AH00959: ap_proxy_connect_backend disabling worker for (127.0.0.1) for 60s
[Thu Feb 21 02:58:13.318155 2019] [proxy_fcgi:error] [pid 4170] [client 69.689.30.21:64560] AH01079: failed to make connection to backend: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

请帮我

kum*_* DK 0

我也遇到了同样的错误,经过几乎一整天的努力才找出原因。

就我而言,问题是在我的 vps 中启用了 IP v6,而我的接口中分配了 npo 真实 IP6 地址。

我刚刚禁用了 IPV6,一切又开始正常工作。(如果 virtualmin 中未使用 IPv6/IPv4,请禁用它)

步骤 1 - 在 shell 中使用以下命令编辑 sysctl.conf 文件

vi /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

步骤 2 - 添加以下两行以禁用 IPv6

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Run Code Online (Sandbox Code Playgroud)

步骤 3 - 保存并关闭文件 (Esc -> :wq)

步骤 4 - 为了立即生效,在 shell 中运行以下代码

sysctl -p
Run Code Online (Sandbox Code Playgroud)