PHP的imagecreatefromstring函数无法在Amazon Linux Server上运行

时间:2011-02-23 12:13:15

标签: php amazon-ec2

我已经创建了一个脚本,其中ai必须在运行时使用64位编码的字符串.im使用PHP的imagecreatefromstring函数创建一个图像但是它可以在基于我的Windows XAMPP的PHP中工作,但不能在我部署的我的云端应用程序上运行亚马逊云运行Linux的SUSE版本。

你可以给我任何克服这个问题的建议。 或者是否有任何其他功能能够从传递给它的编码字符串创建图像。

先谢谢

我正在使用以下代码

<?php
         require ('../dbconfig/dbConfig.php');

    $gameId = $_POST["gameId"];
    $username = $_POST['email'];
    $imagedata =  $_POST['imagedata'];

    $uploaddir = './../blogdata/i/'; 

    $countSql =  mysql_query("select  max(_id) as fileName  from blog_data ");

    while($rowCommentData = mysql_fetch_assoc($countSql))
    {
        $num = $rowCommentData["fileName"];
        $file = ++$num.".png";
        $filedb = $uploaddir .$file;
    }


   /* $imagedata= 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
               . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
               . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
               . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';*/

    $imagedata= base64_decode($imagedata);

    if(($img = @imagecreatefromstring($imagedata)) !== FALSE) 
    {

            if(imagepng($img,$filedb))
            {       
                    imagedestroy($img);

                    $sql="Insert into blog_data (game_id,text,type,username)".
                                   "Values('$gameId','$file','i','$username')";

                    $result=mysql_query($sql);

                    if($result == 1)
                    {
                        echo $file; 
                    }
                    else
                    {
                        echo "error2";
                    }
            } 
            else {
                echo "error1";
            }               
                   }
    else
    { 
         echo "error0";
    }

&GT;

通过运行PHP信息,我得到了这些信息 enter image description here

3 个答案:

答案 0 :(得分:4)

PHP需要安装和加载libgd扩展。检查phpinfo()是否存在。你可能可以通过yum安装它。该软件包应该被称为php5-gd

答案 1 :(得分:1)

从您的代码中,您似乎没有安装GD扩展程序。请检查phpinfo输出并查找GD扩展

答案 2 :(得分:0)

您将需要对服务器的root访问权限,我认为您无法使用Amazon的云服务。您需要使用--with-gd标志重新编译php。

http://www.php.net/manual/en/image.installation.php