【问题标题】:imagepng works on xampp but not on serverimagepng 适用于 xampp 但不适用于服务器
【发布时间】:2018-03-19 09:05:57
【问题描述】:

我有这个小代码来生成具有随机背景颜色和名称的第一个字母作为文本的个人资料图像。我多年来一直在使用此代码,它在 xampp 和许多其他网站上仍然可以正常工作,但在一个实际情况下,它无法在服务器上工作。

图像未保存。我检查了所有目录都有 755 权限。 GD 已安装,apache 日志中没有错误。

<?php
$name = 'Vipul Kapoor';
$id = 905;
$location = '';

$words = explode(" ", $name);
$countWords = count($words);
if($countWords >= 2){
    $firstChars =  $words[0][0].$words[$countWords-1][0];
}else{
    $firstChars = "";
    foreach ($words as $w)
    {
        $firstChars .= $w[0];
    }
}
$alphaCount = strlen($firstChars);
$font = 'fonts/roboto/Roboto-Regular.ttf';
$imgName = $id.'-default.png';
$im = imagecreate(215, 215);
$background_color = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 200), mt_rand(0, 200));
$text_color = imagecolorallocate($im, 255, 255, 255);
if($alphaCount == 1)  { imagettftext($im, 60, 0, 80, 132, $text_color, $font, $firstChars); }
if($alphaCount == 2)  { imagettftext($im, 50, 0, 65, 132, $text_color, $font, $firstChars); }
if($location == ''){
    imagepng($im, 'images/profile/'.$imgName);
}else{
    imagepng($im, 'admin/img/avatar/'.$imgName);
}
imagedestroy($im);

我见过类似的问题,但他们的解决方案没有帮助。如何诊断问题?

编辑:它不仅是图像文件,而且 php 根本无法创建任何文件。生成 csv 文件的其他代码也失败了。似乎 php 无法在此服务器上写入文件。我确定它没有权限问题,所以存在一些配置问题。我应该如何找到问题的根源?

【问题讨论】:

  • 这是 Windows 还是 Linux 网络服务器?
  • 您需要在您想在其中执行任何操作的文件夹中授予对 Web 服务器进程的写入权限。
  • 我使用的是 Ubuntu 16.04。您能否分享一个链接或详细描述如何授予写入权限?
  • 尝试 777 而不是 755。这不是它的最佳用途,但至少可以验证它是“可能的”。然后回去看看权限被撤销的地方
  • 您是否尝试使用更高级别的错误报告和日志记录来查看您的脚本停止执行的确切位置?

标签: php ubuntu-16.04 folder-permissions


【解决方案1】:

选项1:您可以通过获取文件夹的访问权限。然后用户名将获得该文件夹的所有权。

sudo chown -R <username> /var/www

选项2:您可以通过以下方式取消文件夹权限

sudo chmod -R a+rwX /var/www

选项 3:或者您可以授予对文件夹的组访问权限

sudo groupadd www
sudo useradd -g <username> www
sudo chown -R :www /var/www
sudo chmod -R g+rwX /var/www
sudo chmod g+s /var/www

文档:您可以在他们的服务器指南中阅读更多相关信息:

https://help.ubuntu.com/lts/serverguide/serverguide.pdf

【讨论】:

  • 即使使用sudo,我也会收到“不允许操作”错误。我使用的用户名是“www-data”
  • 你是用su登录的吗?
  • 我以root用户登录
猜你喜欢
  • 2014-03-07
  • 1970-01-01
  • 2019-08-26
  • 2020-09-03
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多