我从Apache 2 + Varnish的设置单独移动到Nginx,我有点卡住我应该如何安装/使用ESI以及在这个设置fastcgi_cache。 首先,ESI的思想是我们在服务器前面设置一个反向代理层来caching一个页面的caching部分,然后用esi来检索dynamic部分。 在我之前的设置中,Varnish是作为反向代理的,Apache只在必要时处理esi请求。 我的问题是,现在Nginx作为唯一的服务器在这里,我如何使它工作? 我是否需要安装另一个作为反向代理服务器运行的Nginx实例? 我找不到任何文件。 第二个问题是关于fastcgi_cache。 我已经设置了如下所述,但caching似乎没有为我工作,没有caching文件填充,我总是得到“MISS”。 我想知道是不是因为我需要在每个控制器中设置max-age / shared-max-age来使其工作? fastcgi_cache_path /run levels=1:2 keys_zone=www_mysite_com:100m inactive=60m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_cache_use_stale error timeout invalid_header http_500; server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 root /var/www/mysite.com/w/w/w/www/web; index index.php index.html index.htm; # […]
RuntimeException in ClassCollectionLoader.php line 239: Failed to write cache file "/var/www/fareast/app/cache/dev/classes.php". 当我在symfony2中运行我的项目时,我有这个错误。 我有nginx作为我的networking服务器和centOS 7作为我的操作系统。 我试着手动删除caching文件夹 php app/console cache:clear 那么我做了一个不好的做法,以应用程序/caching和应用程序/日志 chmod -R 777 但我有同样的错误。 /var/log/nginx/error.log也是空的。 你推荐其他解决scheme吗? 或者我必须安装一些php5库caching?
我正在尝试使用DockerconfigurationSymfony3。 我的项目文件夹中有两个文件和一个目录: 文件: – docker-compose.yml – site.conf 目录: – 代码 泊坞窗,compose.yml: web: image: nginx:latest ports: – "80:80" volumes: – ./site.conf:/etc/nginx/conf.d/site.conf links: – php php: image: php:7-fpm volumes: – ./test_api:/test_api/web site.conf: 我从官方nginx网站这里得到这个文件,我的server_name是在hosts文件中声明的。 server { server_name test-api.local; root /var/www/project/web; location / { # try to serve file directly, fallback to app.php try_files $uri /app.php$is_args$args; } # DEV […]
我在我的Symfony2 2.1.10安装中安装了LiipImagineBundle,并且遇到了我的nginx服务器的一些小configuration问题。 在networking上,我发现这个很好的代码片断是Symfony2应用程序的一个非常简单的nginxconfiguration。 我添加了一些代码行。 最重要的是,我想能够禁用access.log像静态文件的图像。 以下规则集完美地工作: location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { expires 30d; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; access_log off; } 但今天我发现LiipImagineBundle生成的图像需要通过app.php或app_dev.php来访问。 否则,它们不会生成,nginx会logging以下错误消息: [error] 28988#0: *733 open() "/[…].jpeg" failed (2: No such file or directory) 这基本上是一个404.该文件不会生成,因为它不是通过Symfony2应用程序访问,而是直接访问。 我需要一个configuration,允许我禁用访问日志logging,并添加一些caching标头到静态文件,但仍然通过与以前一样的路线服务于他们。 有没有可能的解决scheme?
我正在为安全性configuration一个新的symfony安装,但我的login表单将不会performance。 无论何时我被redirect到login页面,symfonyredirect到https,并将80添加到域。 这是我的security.yml # app/config/security.yml security: firewalls: login: pattern: ^/login anonymous: true main: pattern: ^/ anonymous: false form_login: login_path: /login check_path: /login_check logout: path: /logout target: /home access_control: – { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http } – { path: ^/secure, roles: IS_AUTHENTICATED_FULLY } – { path: ^/secure/max, roles: ROLE_ADMIN } providers: in_memory: memory: users: […]
我想在Nginxconfiguration文件中使用这个规则: location @rewriteapp { # rewrite all to app.php rewrite ^(.*)$ /app.php/$1 last; } (这个规则用于Symfony框架)。 我用puphpet网站来生成vagrant文件,我修改了default.pp来改变Nginx Vhost的configuration我添加类似的东西来创build这个重写规则: nginx::resource::location { "${server_name}-rewrite": location => '@rewriteapp', www_root => $www_root, proxy => undef, rewrite => '^(.*)$ /app.php/$1 last;' } 但是我得到以下错误: Invalid parameter rewrite at /tmp/vagrant-puppet-1/manifests/default.pp:267 on node packer-virtualbox.vagrantup.com 有没有办法将重写规则添加到Nginx的虚拟主机configuration与Puppet?
我有memcached安装和工作经testing: nc -U /var/run/memcached/memcached.sock stats STAT pid 16360 STAT uptime 2246 STAT time 1412217254 STAT version 1.4.14 (Ubuntu) STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 0.032563 //and so on… 我遇到的问题是,当symfony加载并调用session_start()时,会引发一个错误: 致命错误:初始化存储模块失败:/ var / www / project / vendor / symfony / symfony / src / Symfony / Component / HttpFoundation / Session / Storage中的用户(path:/var/run/memcached/memcached.sock)第147行的NativeSessionStorage.php […]
server { listen 80; server_name myapp.local root /home/jack/Documents/projects/php/myapp/web; location / { #try_files $uri $uri/ /app_dev.php?$query_string; #try_files $uri /app_dev.php$is_args$args; try_files $uri @rewriteapp; } location @rewriteapp { rewrite ^(.*)$ /app_dev.php/$1 last; } location ~ ^/(app|app_dev|config)\.php(/|$) { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS off; } access_log /var/log/nginx/myapp-access.log; error_log /var/log/nginx/myapp-error.log; } 我一直在努力使这项工作,但我不能,当我去myapp.local我No input file […]
我有一个关于PHP的问题,但我们需要限制PHP脚本安全地运行。 理想情况下,应该是这样的: Core代码将位于public_html之外,如/ etc / app / 所有网站将使用相同的核心。 每个站点的“用户”只能在公用文件夹中进行限制,但是核心中的代码应该是可读可执行的,但不可编辑 我想我们可以添加这个打开基本目录,或者可以将其链接到每个站点,并将其设置在与所有站点用户相同的组(并因此具有读取/执行权限) 我对这种设置真的很陌生,所以我想知道我是否忽略了这种情绪? —编辑 更多信息: 我正在使用php5-fpm 我正在关注这个问题 ,以确保脚本在特定的用户/组下运行 通过安全运行,我的意思是,即使允许用户上传他们自己的脚本,他们也不应该有权做任何可能影响其他帐户的事情(比如将恶意文件放在别人的帐户上,编辑核心文件等等…)
我正在使用nginx来生产和开发环境。 我已经正确地configuration了虚拟主机,每个虚拟主机将日志写入单独的文件。 但在我的情况下,我在生产日志中看到几行显示开发环境错误数据。 我重新检查configuration,一切看起来不错。 这是一个来自nginx的已知错误。 编辑 root @ web01:/ var / www / production#tail -n -20 /var/log/nginx/production-mobile-error.log [06-Jan-2014 10:42:37 UTC] PHP Notice: Undefined variable: duplicateProductId in /var/www/production-srikanth-dev/Controller.php on line 619 root @ web01:/ etc / nginx / sites-enabled#grep -ri'production-mobile-error'* default.production-mobile: error_log /var/log/nginx/production-mobile-error.log error; default.production-mobile: error_log /var/log/nginx/production-mobile-error.log error;