Nginx“auto .dev”设置无法正确加载 WordPress

Posted

技术标签:

【中文标题】Nginx“auto .dev”设置无法正确加载 WordPress【英文标题】:Nginx "auto .dev" setup won't load WordPress properly 【发布时间】:2014-05-13 15:58:23 【问题描述】:

按照本指南 (http://blog.evan.pro/how-to-set-up-dynamic-virtual-hosts-for-web-development),我正在尝试设置一个 localhost / nginx 配置,它允许我轻松运行环境,而无需为每个环境添加单独的条目(在 dnsmasq 的帮助下)。 当我运行 nginx 并通过 sitename.dev 访问任一站点时,使用 WordPress 的站点似乎没有运行。我想我在 nginx 配置中缺少一些东西,

worker_processes  1;

error_log  /usr/local/etc/nginx/logs/error.log debug;

events 
    worker_connections  1024;


http 
    include             mime.types;
    default_type        application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /usr/local/etc/nginx/logs/access.log  main;

    sendfile            on;

    keepalive_timeout   65;

    index index.html index.php;

    server 
        listen 80;
        server_name .dev;

        # dynamic vhosts for development
        set $basepath "/var/www";

        set $domain $host;
        if ($domain ~ "^(.*)\.dev$") 
            set $domain $1;
        
        set $rootpath "$domain";
        if (-d $basepath/$domain/public) 
            set $rootpath "$domain/public";
        
        if (-d $basepath/$domain/httpdocs) 
            set $rootpath "$domain/httpdocs";
        
        if (-d $basepath/$domain/web) 
            set $rootpath "$domain/web";
        
        if (-f $basepath/$domain/index.php) 
            set $rootpath $domain;
        
        if (-f $basepath/$domain/index.html) 
            set $rootpath $domain;
        

        root $basepath/$rootpath;

        # enable PHP
        index index.php app.php index.html;
        location / 
            index index.php;
            error_page 404 = @indexphp;
            include   /usr/local/etc/nginx/conf.d/php-fpm;
            try_files $uri $uri/ /index.php?$args;
        
        location @indexphp 
            rewrite ^(.*)$ /index.php$1;
        
        location ~ ^(.+\.php)(?:/.+)?$ 
            expires off;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            include fastcgi_params;
        

        # block .ht* access
        location ~ /\.ht 
            deny all;
        
    

例如,访问 mynewproject.dev 给我一个 200 OK 但没有加载任何内容。访问不使用 WordPress(但使用 PHP 等服务器语言)的 someotherproject.dev,我看到该站点正确显示。

【问题讨论】:

您使用的是 Ubuntu 吗?哪个版本 哦,对不起。 OSX(特立独行) 我刚刚在我的 CentOS 上对其进行了测试,它在 WordPress 安装中按预期工作 - 我只删除了 include /usr/local/etc/nginx/conf.d/php-fpm; 行和与日志记录相关的行。我还在fastcgi_pass 中使用套接字而不是 tcp。 【参考方案1】:

检查以下内容

1) 如果您在文件夹中使用过 wordpress,则必须将其附加到您的设置 $basepath "/var/www";

2) 发布您的错误日志。

【讨论】:

以上是关于Nginx“auto .dev”设置无法正确加载 WordPress的主要内容,如果未能解决你的问题,请参考以下文章

nginx设置反向代理后端jenklins,页面上的js css文件无法加载

Nginx的加载失败的SSL证书问题,怎么解决

更改单元格中的数据后,UITableView 中的自定义单元格将无法正确重新加载

django+nginx 部署未正确加载静态文件

Docker + Django + Vue.js + Webpack 如何正确配置 nginx?

如何修复“此页面无法正确加载谷歌地图”错误