我想在 Ubuntu 服务器上使用 php 8.1 目前它适用于 php 7.4.30
lsb_release -a
返回
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic
我按照教程执行了这些命令
sudo apt update
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.1
sudo apt-get install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath
sudo systemctl restart apache2
现在当我这样做时php -v
我看到:
PHP 8.1.18 (cli) (built: Apr 14 2023 04:39:07) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.18, Copyright (c) Zend Technologies
with Zend OPcache v8.1.18, Copyright (c), by Zend Technologies
当我做
sudo update-alternatives --config php
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.1 81 auto mode
1 /usr/bin/php7.3 73 manual mode
2 /usr/bin/php7.4 74 manual mode
3 /usr/bin/php8.1 81 manual mode
sudo update-alternatives --config phar
对于和 来说相同sudo update-alternatives --config phar.phar
,选择 php 8.1。
但是,我的应用程序(CMS)仍然使用 php 7.4,我还用一个简单的 php 文件进行了测试phpinfo();
我还可以检查什么?
答案1
PHP CLI 与 PHP Apache 模块不同。
请参阅此答案了解更多信息
因此解决方案是通过以下命令禁用旧的 PHP 模块并启用新的 PHP 模块来告诉 Apache 使用已安装的 PHP 8.1 版本。
sudo a2dismod php7.4
sudo a2enmod php8.1
sudo service apache2 restart
答案2
可能您需要检查 php.ini。
在 phpinfo() 页面中,您将看到您的 Web 服务器正在使用哪个 php.ini。如果您看到的是 7.4,您的 php.ini 路径可能类似于:
.../7.4/apache2/php.ini
只需找到您的 php v8.1 安装的 php.ini 文件并更改 Web 服务器中的设置以使其指向它。