我有这个小代码来生成具有随机背景颜色的配置文件图像和名称的第一个字母作为文本。我已经使用这段代码多年了,它仍然可以在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就是无法在这台服务器上写文件。它没有许可问题,我确信它有一些配置问题。我应该如何找到问题的根源?
答案 0 :(得分: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
文档:您可以在他们的服务器指南中阅读更多相关信息: