Amazon Linux 2上的GD映像扩展存在问题

时间:2018-09-06 11:02:32

标签: php amazon-web-services gd

我最近使用Amazon Linux AMI在EC2实例上创建了LAMP服务器。

使用

sudo yum install -y php70-gd

我安装了GD扩展程序。 这一切都很好,我可以使用PHP上传和操作图像。

现在,我已使用此处的教程使用Amazon Linux 2创建了LAMP服务器:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html

我的问题是我无法使用GD扩展程序。 我尝试使用

sudo yum install -y gd

,这似乎安装了GD的旧版本。 我尝试过

sudo yum install php-gd

这似乎安装了该扩展程序的最新版本。

但是gd扩展名似乎仍然不起作用。 当我进入 百胜资讯 在控制台中,它显示:

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Installed Packages
Name        : php-gd
Arch        : x86_64
Version     : 7.2.5
Release     : 3.amzn2.0.2
Size        : 769 k
Repo        : installed
From repo   : amzn2extra-lamp-mariadb10.2-php7.2
Summary     : A module for PHP applications for using the gd graphics library
URL         : http://www.php.net/
License     : PHP and BSD
Description : The php-gd package contains a dynamic shared object that will add
            : support for using the gd graphics library to PHP.

当我尝试调整图像大小的脚本时,出现错误。 我已经尝试过这个测试脚本:

$testGD = get_extension_funcs("gd"); // Grab function list 
if (!$testGD){ echo "GD not installed."; exit; }
echo"<pre>".print_r($testGD,true)."</pre>";

这给了我结果

GD not installed.

所以显然有些事情是不对的。 有人可以帮忙吗?

谢谢

7 个答案:

答案 0 :(得分:6)

Amazon Linux 2使用Apache和PHP-FPM代替mod_php。因此,您需要重新启动php-fpm进程,以使用新扩展名重新加载PHP。

sudo systemctl restart php-fpm

答案 1 :(得分:5)

我正在Amazon Linux 2上运行php 7.2.14,这对我有用:

$ sudo yum update -y
$ sudo yum install -y php-gd
$ sudo reboot

答案 2 :(得分:1)

解决了... 原来是用

重新启动apache
sudo systemctl restart httpd

不足以加载新安装的组件...

我需要做的是

sudo reboot

一切正常...

为什么我24小时前没有尝试过!

答案 3 :(得分:0)

我遇到错误必需的扩展GD在AWS上的Php 7.0上的项目中使用Claviska Simple Image Library时未加载

所以我需要更新GD php库:

sudo yum install -y php70-gd

,然后重新启动httpd服务以加载更新的php。

sudo /etc/init.d/httpd restart

为我工作!

答案 4 :(得分:0)

您可能没有做错任何事情,也可能不需要重新启动。有时,这些扩展名未直接映射到php.ini文件中。因此,您可能需要在php.ini文件中映射新添加的扩展名(或尚未映射的扩展名)。根据您的情况,添加

extension=gd.so

通常

extension=<my_extension_name>.so

答案 5 :(得分:0)

我的PHP版本是-PHP 7.2.18 $ php -v

我必须安装-y php72-gd

$ sudo yum update -y $ sudo yum install -y php72-gd $ sudo reboot

答案 6 :(得分:0)

public post(
  uri: string, 
  body: object, 
  showLoading: boolean = true,
  params: object = {}
): Observable<any> {
  if (showLoading) {
    this.toggleModal('open');
  }

  return this.http.post(
    this.createUrl(uri),
    body,
    this.createOptionsWrapper(params)
  ).pipe(
    finalize(() => {
      if (showLoading) {
        this.toggleModal('close');
      }
    }),
    catchError(err => this.handleError(err))
  );
}

无需重启