我刚刚将一个网站转移到一个新的服务器;这是我的 nginx 中的网站配置(vhost)和 error.log 中的最后 2 个条目。
当 index.php 加载时,图像不会显示。
尊敬的,
服务器 {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name maissane;
access_log /var/log/nginx/localhost.access.log;
root /var/www/alex.site.com;
location / {
index index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9090;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
____________日志错误:
2013/03/02 16:01:51 [错误] 16637#0:*35 open()“/var/www/alex.site.com/images/right_<”失败(2:没有此文件或目录),客户端:65.94.70.3,服务器:alex,请求:“GET /images/right_%3C?=%20$theme;%20?%3E.jpg HTTP/1.1”,主机:“alex.site.com”,引荐来源:“http://alex.site.com/index.php?p=bio“
2013/03/02 16:01:51 [错误] 16637#0:*35 open()“/var/www/alex.site.com/favicon.ico”失败(2:没有此文件或目录),客户端:65.94.70.3,服务器:alex,请求:“GET /favicon.ico HTTP/1.1”,主机:“alex.site.com”
答案1
日志条目使这一点变得非常明显。
您实际上没有文件/images/right<?= $theme; =?>.jpg
。
尝试提供一个存在的文件名。
答案2
问题似乎出在 PHP 配置上,而不是 nginx。检查您的php.ini配置short_open_tag
指令 - 应该是在, 喜欢
short_open_tag=On
或将代码更改为/images/right_<?php echo $theme; ?>.jpg
。
编辑
正如人们指出的那样,php 短标签的用法是不建议由于各种原因,其中一个就是您现在遇到的情况(新服务器默认不支持它们)。请参阅这个 SO 线程了解更多信息..
因此,您的解决方案是找到所有相关的<?
和,并分别用和<?=
替换它们。<?php
<?php echo