【问题标题】:Manual Installation of php extension (copy from one server to another)手动安装 php 扩展(从一台服务器复制到另一台服务器)
【发布时间】:2020-12-12 08:44:58
【问题描述】:

我正在尝试在我的备份服务器中使用以下 imagick 代码:

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

$image->thumbnailImage(100, 0);

echo $image;

?>

但是,这是一个没有安装 imagick.so 的备份服务器。我们的办公室有一台带有 imagick.so 的主服务器(相同的操作系统版本,相同的 linux 发行版)。我可以手动将 imagickso 复制到备份服务器并使其正常工作吗?

【问题讨论】:

  • 通常你可以通过包管理系统安装它,然后它会确保所有的依赖,配置等也被创建。我真的不知道您为什么要手动执行此操作
  • 是的,但是服务器是一个非常旧的服务器(Fedora 1x),我们已经尝试下载和安装适合这个版本的包,但它不再可用。
  • 如果您的操作系统太旧以至于他们拿走了软件包存储库,那么这意味着您已经过了很长时间升级。除非您有非常特殊的原因(例如仅适用于该确切操作系统版本的硬件),否则不升级会使您面临安全问题的风险,当然您在功能和更新方面落后了。我猜你的 PHP 版本也不支持了。如果服务器被除您以外的任何人使用,那么不使其保持最新和安全是非常不负责任的
  • 是的,我同意@ADyson。如果可能,请将您的系统升级到新系统。

标签: php linux


【解决方案1】:

通常您应该通过包管理(yum install 或 apt-get)在您的服务器中构建 PHP 扩展。但如果不可能,那么您可以尝试以下步骤。

如果您在完全相同的 linux 发行版和版本的服务器中拥有功能齐全(且无病毒)的 so 文件(在您的情况下为 imagick.so)。您可以尝试将文件复制到目标服务器路径:

/usr/lib64/php/modules/imagick.so

或者,如果服务器是 32 位的

/usr/lib32/php/modules/imagick.so

然后打开您的 php.ini(主要是 /etc/php.ini)并在文件末尾添加以下内容:

extension=imagick.so

之后,重新启动你的 apache,它应该没问题。但是,请确保您可以访问此服务器以进行进一步的故障排除,因为如果出现任何问题,您可以恢复所做的更改。

【讨论】:

  • 谢谢。您建议的步骤非常有效。
猜你喜欢
  • 2011-02-06
  • 2014-04-20
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 2021-06-22
  • 2014-05-17
相关资源
最近更新 更多