无法使多个 PHP 版本运行(PHP7.4-FPM 和 PHP8.2-FPM)

无法使多个 PHP 版本运行(PHP7.4-FPM 和 PHP8.2-FPM)

我正在使用带有 Apache2 的 Ubuntu 22.04。我无法让两个 PHP 版本都运行。当我访问已配置 PHP 7.4 的网站时,只显示 8.2。我搜索并尝试了各种方法,但还是无法让它工作。

我有 php7.4-fpm 和 php8.2-fpm 服务在运行。

在 teste.conf 中我已经启用了它sudo a2ensite teste

teste.conf

<VirtualHost *:9090>
     ServerAdmin admin@teste
     ServerName teste.local
     DocumentRoot /var/www/teste

     <Directory /var/www/teste>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
     </Directory>

<FilesMatch \.php$>
   <If "-f %{REQUEST_FILENAME}">
    SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
   </If>
</FilesMatch>

     ErrorLog ${APACHE_LOG_DIR}/teste_error.log
     CustomLog ${APACHE_LOG_DIR}/teste_access.log combined
</VirtualHost>

以及webtransito.conf

<VirtualHost *:9090>
     ServerAdmin admin@webtransito
     ServerName webtransito.local
     DocumentRoot /var/www/webtransito
     DirectoryIndex info.php

     <Directory /var/www/webtransito>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>

<FilesMatch \.php$>
   <If "-f %{REQUEST_FILENAME}">
    SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
   </If>
</FilesMatch>

     ErrorLog ${APACHE_LOG_DIR}/webtransito_error.log
     CustomLog ${APACHE_LOG_DIR}/webtransito_access.log combined
</VirtualHost>

apache2ctl -M

Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 fcgid_module (shared)
 filter_module (shared)
 mime_module (shared)
 mpm_event_module (shared)
 negotiation_module (shared)
 proxy_module (shared)
 proxy_fcgi_module (shared)
 reqtimeout_module (shared)
 setenvif_module (shared)
 status_module (shared)

ps -A | grep php

  91080 ?        00:00:00 php-fpm7.4
  97203 ?        00:00:01 php-fpm7.4
  98903 ?        00:00:00 php-fpm7.4
  98904 ?        00:00:00 php-fpm7.4
 112019 ?        00:00:00 php-fpm8.2
 112020 ?        00:00:00 php-fpm8.2
 112021 ?        00:00:00 php-fpm8.2

提前致谢。如果需要更多文件,我可以分享。

答案1

从你告诉我的情况来看,你的配置完全符合要求。你的问题在于你不了解虚拟主机的工作原理。

  • 当 您 打开 时http://teste.local:9090/info.php, 它 使用 您的teste.conf

  • 当您打开时http://localhost:9090/teste/info.php,它会使用您的默认 Apache 配置,可能000-default.conf

您可以php8.2通过执行以下操作来禁用并替换 Apache 服务器的默认 PHP 版本php7.4-fpm

sudo a2dismod php8.2
sudo a2dismod mpm_prefork

sudo a2enmod mpm_event
sudo a2enconf php7.4-fpm

sudo service apache2 restart

相关内容