我是 Moodle 用户,最近发现每次我尝试下载 ODS 文件(导出成绩)时,它都会显示异常 - 未找到“ZipArchive”类”
原来我的php(版本8.0)没有安装zip扩展
我尝试在cyberpanel上安装zip扩展(我的moodle托管在cyberpanel CentOS 7上),但我似乎没有安装,当我单击安装时,我收到此消息:
Loaded plugins: copr, fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: atl.mirrors.clouvider.net
* epel: mirrors.coreix.net
* extras: mirror.dal.nexril.net
* updates: atl.mirrors.clouvider.net
10 packages excluded due to repository priority protections
Package lsphp80-common-8.0.15-1.el7.x86_64 already installed and latest version
Nothing to do
PHP Extension Installed.
但是当我返回扩展页面时,它说扩展未安装,并且我仍然无法生成 ODS 文件,我尝试搜索它,人们说我需要在终端上执行此操作,我尝试使用cyberpanel 终端以 root 用户身份使用这些命令:
yum install php-pear
yum install php-devel
pecl install zip
然后我转到 php.ini(我尝试在网络面板界面和终端上打开它)并插入代码:
extension=zip.so;
在文件的“模块设置”部分之前,它仍然不起作用(似乎我在网络面板上安装了多个版本的php,我尝试在我的php 8.0目录和其他可用版本上编辑php.ini)
这很奇怪,因为在 7.3 版本的 php 上它安装并正常工作(甚至安装在界面上),当我将我的 Moodle 上的 php 版本更改为 7.3(我不想使用这个版本)时,错误完全消失了,我该如何解决?
对于在
Server > PHP > Install Extensions
部分或 LiteSpeed 存储库中找不到所需扩展的用户,请按照以下说明在 CyberPanel 中安装 PHP 扩展。
在这种情况下,您可以使用 PEAR 包管理器来管理 PECL 17 扩展。首先,将“lsphp80”更改为您的默认 PHP 版本并运行以下命令:
cd /usr/local/lsws/lsphp80/bin
wget http://pear.php.net/go-pear.phar
./lsphp go-pear.phar
安装 PEAR 后,您可以安装所需的扩展。例如,要安装最新版本的 zip 扩展,请使用以下命令:
/usr/local/lsws/lsphp80/bin/pecl install zip
如果您需要特定版本的 zip 扩展名,可以使用以下命令安装它:
/usr/local/lsws/lsphp80/bin/pecl install zip-1.21.1
注意:请确保将
extension=zip.so
添加到您的 .php 配置中
请记住将“lsphp80”替换为您默认安装的 PHP 版本。这应该可以帮助您在 CyberPanel 中安装所需的 PHP 扩展。