在magento根的子文件夹中的一个WordPress博客的Nginxconfiguration

我已经安装了一个Magento扩展,有一个与Magento集成的WordPress博客。 基本上,WP是在Magento根目录的子目录下。 我想用子目录创build多个站点,但由于nginxconfiguration,我无法使其工作。

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-site:

 # 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 } 

谢谢你的帮助。

那么最后呢,它将所有的请求都传递给了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一起工作,我期待着他的回答:)

想要传递一个完整的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 conf文件:

 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; } 

为什么要运行Apache? 运行2个Web服务器没有意义。 尝试添加到您的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; } }