【发布时间】:2020-07-03 20:52:15
【问题描述】:
我有一个在 Ubuntu 18.04 下运行的 apache2 服务器
奇怪的是,apache 无法显示图像,事件虽然我的浏览器加载了 200 响应消息。
如果直接触发图片链接,可以下载成功,但是图片打不开(格式错误),好像坏了一样。
这个网站曾经在另一个配置大致相同的 apache2 上工作。
我尝试将图像文件放入默认文件夹(var/www)并使用简单的 src 显示它,它可以工作!
我拒绝显示图片的网站在 apache2.conf 中有这样的配置:
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
虚拟主机看起来像这样:
<VirtualHost *:80>
ServerName nasticot.lan
DocumentRoot /var/www/nasticot.lan
ServerAlias www.nasticot.lan
</VirtualHost>
/var/www 是从远程容器挂载的 SMB 共享。 服务器对该共享中的每个文件都拥有完全权限 (777)
网站根目录下还有一个.htaccess文件
# Rewrite URL like xxx/yyy/zzz in index.php?controleur=xxx&action=yyy&id=zzz
RewriteEngine on
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controleur=$1&action=$2&id=$3 [NC,L]
[编辑]
奇怪的是,apache2 在加载时将内容添加到我的图像中。
我再次验证了我的图像可以直接显示在我的 apache2 服务器读取的文件夹中,并且可以正常工作。
如果我从浏览器本地下载图片,图片会多添加几行。
[编辑-01]: 我的 /var/www 是一个挂载的共享,位于我的文件服务器中。 我发现这是问题所在。如果我在本地复制我的一个网站的内容,则会显示图像。
虽然我对已安装的共享具有完全访问权限,但事件:
root@coruscant:/var/www/nasticot.lan/Content/img/icon# ls -la /var/www
total 4
drwxrwxrwx 2 root www-data 0 Mar 20 15:54 .
drwxr-xr-x 14 root root 4096 Mar 20 19:31 ..
drwxrwxrwx 2 root www-data 0 Mar 24 11:08 nasticot.lan
这是文件服务器中的共享配置:
[WWW]
path = /media/share/www
browseable = yes
writeable = yes
read only = no
force create mode = 0770
force directory mode = 2770
valid users = @sambashare
最后,网络服务器上的 fstab 文件:
//192.168.0.53/WWW /var/www cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777,gid=www-data 0 0
图像文件已加载(200 OK)但损坏..
[EDIT-02]
仍在寻找解决方案,我很确定这不是权限问题,即使使用 777 也会出现问题...
我想知道php是否会在加载时破坏图像,我尝试设置
php.ini
error_reporting = E_ALL
error_log = /var/log/php_errors.log
但是我没有写入这个日志文件所以..真的不知道在哪里搜索..
任何帮助将不胜感激
有什么想法吗?
谢谢!
【问题讨论】:
标签: image apache2 ubuntu-18.04