簡體   English   中英

無法使用 apache MPM 運行 PHP-FPM

[英]Can't run PHP-FPM using apache MPM

很長一段時間以來,我一直在嘗試在 ubuntu 上設置 apache 服務器,其中包含多個主機,但它只是不想為我工作。

我的總體目標:使用 apache 托管多個網站,並使用 chrooted php 和 ftp。 對於 ftp 使用 vsftpd 不是問題,但 PHP 似乎是一個問題。 在沒有 chroot 的當前配置中,php 可以使用 scandir 訪問文件,從而訪問其他虛擬主機。 如果有更好的方法來解決這個問題,您也可以提出建議。 現在嘗試 2 或 3 天以使其正常工作。

我已經設置了一個用於測試目的的虛擬機,並希望顯示我當前的配置並希望能找到一些幫助。

我在 /etc/hosts 上添加了兩個主機:web1 和 web2,因此我使用 http://web1 和 http://web2 進行測試。

我的虛擬主機 web1 的 apache 配置:

<VirtualHost *:80>
    ServerAdmin admin@yadbo.com
    ServerName web1
    DocumentRoot /var/www/web1/html
    ErrorLog /var/www/web1/logs/error.log
    CustomLog /var/www/web1/logs/logaccess.log combined
    AssignUserId web1 www-data
    DirectoryIndex index.php

<Directory "/usr/lib/cgi-bin">
        Require all granted
    </Directory>

    AddHandler php7-fcgi-web1 .php
    Action php7-fcgi-web1 /php7-fcgi-web1
    Alias /php7-fcgi-web1 /usr/lib/cgi-bin/php7-fcgi-web1
    FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-web1 -socket /run/php/php7.4-fpm.web1.sock -pass-header Authorization
    <FilesMatch \.php$ >
        SetHandler  php7-fcgi-web1
    </FilesMatch>

</VirtualHost>

我還在 /etc/php/7.4/fpm/pool.d/web1 中為我的用戶 web1 添加了新池:

[web1]
listen = /run/php/php7.4-fpm.web1.sock
access.log = /var/www/web1/logs/$pool.access.log

prefix = /var/www/web1/

chroot = $prefix

chdir = /

user = web1
group = www-data

listen.owner = web1
listen.group = www-data 
listen.mode = 0660

php_value[session.save_path] = /sessions

pm=dynamic
pm.max_children=5
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3

這幾乎就是我得到的所有配置。 我還嘗試在 /var/www/html 中添加一些軟鏈接,以使 sockets 可訪問並調整鏈接,但它仍然不起作用......

在我使用的當前配置中,我為每個 php 文件得到 404,因此它聲稱它找不到例如 /index.php 404。

我知道由於 chroot 我錯過了一些東西。 但我是這個話題的新手,在建立這個結構時真的很難。

我真的希望我能在這里找到幫助。 提前感謝您的寶貴時間!

FPM 運行自己的進程,而不是作為 apache 進程 (mod_fcgid) 的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM