我最近使用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.
所以显然有些事情是不对的。 有人可以帮忙吗?
谢谢
答案 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)
解决了... 原来是用
重新启动apachesudo 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))
);
}
无需重启