为什么wordpress无法在我的nginx上运行?

时间:2015-09-16 10:10:05

标签: wordpress nginx

cat /etc/nginx/nginx.conf

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
        worker_connections 768;
}

http {
server {
    listen 8080;
    server_name localhost;
    index index.html index.htm index.php;
    root /var/www/html;
}

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
        gzip on;
        gzip_disable "msie6";
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

cat /etc/apache2/sites-enabled/000-default.conf

server {
    listen 8080;
    server_name localhost;

    root /var/www/html;
    index index.html;

    location / {
            try_files $uri $uri/ =404;
    }
}

何时在浏览器中输入127.0.0.1:8080。

enter image description here

何时输入127.0.0.1:8080/wp我的wordpress是在浏览器中构建的。 文件自动下载,文件内容如下:     

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

为什么我的wordpress无法正确显示在nginx上?

1 个答案:

答案 0 :(得分:0)

让我们逐一处理这些问题:

1 - 403禁止回复

您获得此响应的原因很可能是由于 / var / www 目录的权限不足。 像这样更改这些权限:

$ sudo chmod 0755 -R /var/www

2 - 代替WP,提供包含PHP代码的文本文件(带有BIN扩展名)

这是因为您要么缺少正确的软件包( php5-fpm ),要么您的conf文件中存在一些配置错误。

首先,确保 / var / www / html 目录中的任何内容都归用户 www-data 所有,如下所示:

$ sudo chown -R www-data /var/www/html/*

现在,如果您还没有,请在发行版的软件包管理器中安装 php5-fpm 软件包。对于Ubuntu:

$ sudo apt-get install php5-fpm

接下来,您必须在3个配置文件中进行一些小的更改:

/etc/php5/fpm/pool.d/www.conf

中的

A)

确保以下行存在,如果不添加

  

listen = /var/run/php5-fpm.sock

/etc/php5/fpm/php.ini 中的

B) 找到以下内容(可能默认注释)line

  

; cgi.fix_pathinfo = 1

取消注释并将其值设置为0

/etc/nginx/nginx.conf

中的

C)

进行以下更改:

在服务器规则中添加以下规则块(位于 root / var / www / html; 行下方):

location / {
        try_files $uri $uri/ /index.html;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

最后,重启php5-fpm和nginx服务。 在Ubuntu中(没有systemd):

$ sudo service php5-fpm restart
$ sudo service nginx restart

这应该有助于解决这些问题。

您可以在 nginx Wordpress here上找到(有些高级)文档。