nginx vhost 位置参数

nginx vhost 位置参数

我刚刚将一个网站转移到一个新的服务器;这是我的 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

相关内容