在Magento的根的子文件夹的WordPress博客Nginx的配置(Nginx configur

2019-10-20 21:09发布

我已经安装了Magento的扩展与Magento的集成WordPress的博客。 基本上,WP处于Magento的根目录的子目录。 我想创建多个站点子目录,但我不能让它由于nginx的配置工作。

WordPress是在他/ WP子目录( http://example.com/wp/wp-admin/ )和其他网站从访问http://example.com/wp/ca/wp-admin/和HTTP:/ /example.com/wp/en/wp-admin/

这里是什么我走到这一步:

server
{
    server_name dev.example.com;
    access_log /var/log/nginx/example.access.log;-
    error_log /var/log/nginx/example.error.log;
    root /var/www/example;

    location ^~ /wp {
        index index.php index.html index.htm;
        try_files $uri $uri/ /wp/index.php?q=$uri&$args;

        # Multisite
        if (!-e $request_filename) {
            rewrite /wp-admin$ $scheme://$host$uri/ permanent;         
            rewrite ^/wp(/[^/]+)?(/wp-.*) /wp$2 last;      
            rewrite ^/wp(/[^/]+)?(/.*\.php)$ /wp$2 last;
        }

        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass 127.0.0.1:9000;
        }   
    }  

    set             $mage_developer true;
    set             $mage_code es; 
    set             $mage_type store;
    include         snippets.d/magento-site;-
}

在snippets.d / Magento的现场:

# Serve static pages directly,
# otherwise pass the URI to Magento's front handler
location / {
    index       index.php;
    try_files   $uri $uri/ @handler;
    expires     30d;-
}

# Disable .htaccess and other hidden files
location  /. {
    return 404;
}

# Allow admins only to view export folder
location /var/export/ {
    auth_basic               "Restricted";
    auth_basic_user_file     htpasswd;
    autoindex                on; 
}

# These locations would be hidden by .htaccess normally
location /app/                { deny all; }
location /includes/           { deny all; }
location /lib/                { deny all; }
location /media/downloadable/ { deny all; }
location /pkginfo/            { deny all; }
location /report/config.xml   { deny all; }
location /var/                { deny all; }

# Magento uses a common front handler
location @handler {
    rewrite / /index.php;
}

# Forward paths like /js/index.php/x.js to relevant handler
location ~ .php/ {
    rewrite ^(.*.php)/ $1 last;
}

# Execute PHP scripts
location ~ .php$ {

    # Catch 404s that try_files miss
    if (!-e $request_filename) { rewrite / /index.php last; }

    expires        off;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
    fastcgi_param  MAGE_RUN_CODE $mage_code;
    fastcgi_param  MAGE_RUN_TYPE $mage_type;
    fastcgi_ignore_client_abort on;
    fastcgi_read_timeout 900s; # 15 minutes
}

谢谢你的帮助。

Answer 1:

好了,到最后,它的工作原理传递所有请求,博客到Apache并创建相应的虚拟主机站点。

location ~ ^/blog {
 proxy_pass          http://apache:80;
 proxy_set_header    X-Real-IP  $remote_addr;
 proxy_set_header    Host $host;
 proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_read_timeout  6000s;
}

如果有人成功,使其只Nginx的工作,我很期待他的回答:)



Answer 2:

本想沿着任何一个完整的conf文件谁需要配置此通过。 请记住,许多文件路径是唯一的服务器配置。

请注意,你需要根据你的服务器上的文件路径,调整以下参数:

server_name domain.com www.domain.com;
ssl_certificate       /sslpath/domain.com.crt;
ssl_certificate_key  /sslpath/domain.com.key;
root      /webrootpath/domain.com;
rewrite ^/blogpath(.*) /blogpath/index.php?q=$1;
location ^~ /blogpath {
error_log /data/log/nginx/domain.com_error.log;
access_log /data/log/nginx/domain.com_access.log;

下面是完整的nginx的的c​​onf文件:

server {
   listen      80;
   server_name domain.com www.domain.com;
   rewrite     ^   https://$server_name$request_uri? permanent;
}

server {
   listen 443;
   server_name domain.com www.domain.com;

   ssl on;
   ssl_certificate       /sslpath/domain.com.crt;
   ssl_certificate_key  /sslpath/domain.com.key;
   ssl_session_timeout 30m;

root      /webrootpath/domain.com;
index     index.php;
location / {
   index index.html index.php;
   try_files $uri $uri/ @handler;
   expires 30d;
}

location @wp {
   rewrite ^/blogpath(.*) /blogpath/index.php?q=$1;
}

location ^~ /blogpath {
   root /webrootpath/domain.com;
   index index.php index.html index.htm;
   try_files $uri $uri/ @wp;

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_pass 127.0.0.1:9000;
}
} 

location ~    ^/(app|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ { internal; }
location /var/export/ { internal; }
location /. { return 404; }
location @handler { rewrite / /index.php; }
location ~* .php/ { rewrite ^(.*.php)/ $1 last; }
location ~* .php$ {
   if (!-e $request_filename) { rewrite / /index.php last; }
   expires off;
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param MAGE_RUN_CODE default;
   fastcgi_param MAGE_RUN_TYPE store;
   include fastcgi_params;
}

error_log /data/log/nginx/domain.com_error.log;
access_log /data/log/nginx/domain.com_access.log;

}


Answer 3:

为什么要运行Apache? 无厘头运行Web服务器2。 尝试添加这对您的nginx的conf。

location @wp {
rewrite ^/wp(.*) /wp/index.php?q=$1;
}

location ^~ /wp {
root /var/www/example;
index index.php index.html index.htm;
try_files $uri $uri/ @wp;

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_pass 127.0.0.1:9000;
}
} 


文章来源: Nginx configuration for a wordpress blog in a subfolder of magento root