我正在使用带有 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