2017-09-21 106 views
0

我使用Nginx 1.12.1,MYSQL 5.6,Redis 3.2.4,PHP 7.0,PHP 7.0 FPM与用户设置nginx安装Pimcore 5,并在Amazon Linux上启动127.0.0.1:9000 AMI 我的虚拟主机设置是Pimcore安装页面空白

# 
# A virtual host using mix of IP-, name-, and port-based configuration 
# 

upstream php-pimcore5 { 
    server 127.0.0.1:9000; 
} 

server { 
    listen  80; 
    root /var/www/html/web; 
    server_name pimcoretest.local 
    index index.php index.html; 
    #try_files $uri $uri/ /app.php?$args; 
    access_log /var/log/access.log; 
    error_log /var/log/error.log error; 

    rewrite ^/cache-buster-(?:\d+)/(.*) /$1 last; 

    location ~* /var/assets/*\.php(/|$) { 
     return 404; 
    } 

    location ~* (?:\.(?:bak|conf(ig)?|dist|fla|in[ci]|log|psd|sh|sql|sw[op])|~)$ { 
     deny all; 
    } 

    location ~* .*/(image|video)-thumb__\d+__.* { 
     try_files /var/tmp/$1-thumbnails$request_uri /app.php; 
    # expires 2w; 
     access_log off; 
     add_header Cache-Control "public"; 
    } 

    location ~* (.+?)\.((?:css|js)(?:\.map)?|jpe?g|gif|png|svgz?|eps|exe|gz|zip|mp\d|ogg|ogv|webm|pdf|docx?|xlsx?|pptx?)$ { 
     try_files /var/assets$uri $uri =404; 
    # expires 2w; 
     access_log off; 
     log_not_found off; 
     add_header Cache-Control "public"; 
    } 

    if (-f $document_root/install.php) { 
     rewrite ^/install(/?.*) /install.php$1 last; 
    } 

    location/{ 
     error_page 404 /meta/404; 
     add_header "X-UA-Compatible" "IE=edge"; 
     try_files $uri /app.php$is_args$args; 
     fastcgi_pass php-pimcore5; 
    } 

    location ~ ^/app\.php(/|$) { 
     send_timeout 1800; 
     fastcgi_read_timeout 1800; 
    # regex to split $uri to $fastcgi_script_name and $fastcgi_path 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     # Check that the PHP script exists before passing it 
     try_files $fastcgi_script_name =404; 
     include fastcgi.conf; 
     # Bypass the fact that try_files resets $fastcgi_path_info 
     # see: http://trac.nginx.org/nginx/ticket/321 
     set $path_info $fastcgi_path_info; 
     fastcgi_param PATH_INFO $path_info; 

     # Activate these, if using Symlinks and opcache 
     # fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
     # fastcgi_param DOCUMENT_ROOT $realpath_root; 

     # fastcgi_pass php-pimcore5; 
     # Prevents URIs that include the front controller. This will 404: 
     # http://domain.tld/app.php/some-path 
     # Remove the internal directive to allow URIs like this 
     internal; 
    } 

    # PHP-FPM Status and Ping 
    location /fpm- { 
     access_log off; 
     include fastcgi_params; 
     location /fpm-status { 
      allow 127.0.0.1; 
      # add additional IP's or Ranges 
      deny all; 
     # fastcgi_pass php-pimcore5; 
     } 
     location /fpm-ping { 
     # fastcgi_pass php-pimcore5; 
     } 
    } 

    location /nginx-status { 
     allow 127.0.0.1; 
     deny all; 
     access_log off; 
     stub_status; 
    } 



} 

的.htaccess项目是

# Use the front controller as index file. It serves as a fallback solution when 
# every other rewrite/redirect fails (e.g. in an aliased environment without 
# mod_rewrite). Additionally, this reduces the matching process for the 
# start page (path "/") because otherwise Apache will apply the rewriting rules 
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl). 
DirectoryIndex app.php 

# By default, Apache does not evaluate symbolic links if you did not enable this 
# feature in your server configuration. Uncomment the following line if you 
# install assets as symlinks or if you experience problems related to symlinks 
# when compiling LESS/Sass/CoffeScript assets. 
# Options FollowSymlinks 

# Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve 
# to the front controller "/app.php" but be rewritten to "/app.php/app". 
<IfModule mod_negotiation.c> 
    Options +MultiViews 
</IfModule> 

# mime types 
AddType video/mp4 .mp4 
AddType video/webm .webm 
AddType image/jpeg .pjpeg 

Options +SymLinksIfOwnerMatch 

# Use UTF-8 encoding for anything served text/plain or text/html 
AddDefaultCharset utf-8 

RewriteEngine On 

<IfModule mod_headers.c> 
    <FilesMatch "\.(jpe?g|png)$"> 
     Header always unset X-Content-Type-Options 
    </FilesMatch> 
</IfModule> 

# Determine the RewriteBase automatically and set it as environment variable. 
# If you are using Apache aliases to do mass virtual hosting or installed the 
# project in a subdirectory, the base path will be prepended to allow proper 
# resolution of the app.php file and to redirect to the correct URI. It will 
# work in environments without path prefix as well, providing a safe, one-size 
# fits all solution. But as you do not need it in this case, you can comment 
# the following 2 lines to eliminate the overhead. 
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 
RewriteRule ^(.*) - [E=BASE:%1] 

# Sets the HTTP_AUTHORIZATION header removed by Apache 
RewriteCond %{HTTP:Authorization} . 
RewriteRule^- [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

# Redirect to URI without front controller to prevent duplicate content 
# (with and without `/app.php`). Only do this redirect on the initial 
# rewrite by Apache and not on subsequent cycles. Otherwise we would get an 
# endless redirect loop (request -> rewrite to front controller -> 
# redirect -> request -> ...). 
# So in case you get a "too many redirects" error or you always get redirected 
# to the start page because your Apache does not expose the REDIRECT_STATUS 
# environment variable, you have 2 choices: 
# - disable this feature by commenting the following 2 lines or 
# - use Apache >= 2.3.9 and replace all L flags by END flags and remove the 
# following RewriteCond (best solution) 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] 

<IfModule mod_status.c> 
    RewriteCond %{REQUEST_URI} ^/(fpm|server)-(info|status|ping) 
    RewriteRule . - [L] 
</IfModule> 

# restrict access to dotfiles 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule /\.|^\.(?!well-known/) - [F,L] 

# ASSETS: check if request method is GET (because of WebDAV) and if the requested file (asset) exists on the filesystem, if both match, deliver the asset directly 
RewriteCond %{REQUEST_METHOD} ^(GET|HEAD) 
RewriteCond %{DOCUMENT_ROOT}/var/assets%{REQUEST_URI} -f 
RewriteRule ^(.*)$ /var/assets%{REQUEST_URI} [PT,L] 

# Thumbnails 
RewriteCond %{REQUEST_URI} .*/(image|video)-thumb__[\d]+__.* 
RewriteCond %{DOCUMENT_ROOT}/var/tmp/%1-thumbnails%{REQUEST_URI} -f 
RewriteRule ^(.*)$ /var/tmp/%1-thumbnails%{REQUEST_URI} [PT,L] 

# cache-buster rule for scripts & stylesheets embedded using view helpers 
RewriteRule ^cache-buster\-[\d]+/(.*) $1 [PT,L] 

# rewrite /install to install.php if file exists 
RewriteCond %{DOCUMENT_ROOT}/install.php -f 
RewriteCond %{REQUEST_URI} !^/install\.php 
RewriteRule ^install /install.php [L] 

# If the requested filename exists, simply serve it. 
# We only want to let Apache serve files and not directories. 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

# Rewrite all other queries to the front controller. 
RewriteRule^%{ENV:BASE}/app.php [L] 




########################################## 
### OPTIONAL PERFORMANCE OPTIMIZATIONS ### 
########################################## 

<IfModule mod_deflate.c> 
    # Force compression for mangled headers. 
    # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping 
    <IfModule mod_setenvif.c> 
     <IfModule mod_headers.c> 
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding 
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding 
     </IfModule> 
    </IfModule> 

    # Compress all output labeled with one of the following MIME-types 
    # (for Apache versions below 2.3.7, you don't need to enable `mod_filter` 
    # and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines 
    # as `AddOutputFilterByType` is still in the core directives). 
    <IfModule mod_filter.c> 
     AddOutputFilterByType DEFLATE application/atom+xml application/javascript application/json \ 
      application/vnd.ms-fontobject application/x-font-ttf application/rss+xml \ 
      application/x-web-app-manifest+json application/xhtml+xml \ 
      application/xml font/opentype image/svg+xml image/x-icon \ 
      text/css text/html text/plain text/x-component text/xml text/javascript 
    </IfModule> 
</IfModule> 

<IfModule mod_expires.c> 
    ExpiresActive on 
    ExpiresDefault "access plus 1 week" 

    # specific overrides 
    #ExpiresByType text/css "access plus 1 year" 
</IfModule> 

<IfModule pagespeed_module> 
    # pimcore mod_pagespeed integration 
    # pimcore automatically disables mod_pagespeed in the following situations: debug-mode on, /admin, preview, editmode, ... 
    # if you want to disable pagespeed for specific actions in pimcore you can use $this->disableBrowserCache() in your action 
    RewriteCond %{REQUEST_URI} ^/(mod_)?pagespeed_(statistics|message|console|beacon|admin|global_admin) 
    RewriteRule . - [L] 

    ModPagespeed Off 
    AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html 
    ModPagespeedModifyCachingHeaders off 
    ModPagespeedRewriteLevel PassThrough 
    # low risk filters 
    ModPagespeedEnableFilters remove_comments,recompress_images 
    # low and moderate filters, recommended filters, but can cause problems 
    ModPagespeedEnableFilters lazyload_images,extend_cache_images,inline_preview_images,sprite_images 
    ModPagespeedEnableFilters combine_css,rewrite_css,move_css_to_head,flatten_css_imports,extend_cache_css,prioritize_critical_css 
    ModPagespeedEnableFilters extend_cache_scripts,combine_javascript,canonicalize_javascript_libraries,rewrite_javascript 
    # high risk 
    #ModPagespeedEnableFilters defer_javascript,local_storage_cache 
</IfModule> 

文档根目录为/var/www/html/web

我加入了以下逗号第二在app.php作为

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

,使在PHP中的所有错误。还要在install.php中添加这些命令。 确保项目对用户nginx具有0775权限。 有文件夹存在督促在/ var/www/html等的/ var /缓存

现在,当我打http://pimcoretest.local它得到错误日志重定向到http://pimcoretest.local/install没有错误和完全空白。 当我在浏览器中检查它显示301重定向和200 /安装

我不知道什么是问题,我应该如何解决它。请帮忙。

回答

0

展望PHP-FPM日志应该告诉你什么是错的: /var/log/php7.0-fpm.log(在Ubuntu和Debian至少)