我在我的NGINX服务器上遇到了一个奇怪的问题。 正如在Codex中所解释的,我把wordpress从我的根目录移到了一个子目录/ blog /。 它显示博客索引成功,但如果我想显示其他任何东西,如特定的职位或档案页面,它服务的根index.php 即使不存在的URL也作为根index.php 如果我删除根index.php它会返回一个404错误。 也许是由于我的nginx和fastcgi设置,但我真的没有任何线索: server { listen 80; listen [::]:80; root /var/www/html; index index.php index.html index.htm; client_max_body_size 10M; # Make site accessible from http://localhost/ server_name set $no_cache 0; if ($request_method = POST){set $no_cache 1;} if ($query_string != ""){set $no_cache 1;} if ($http_cookie = "PHPSESSID"){set $no_cache 1;} if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {set […]
我想工作像http://host/test.php简单的url,请注意有没有尾/尾。 我从nginx站点的标准configuration开始+ serverfault: location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^((?U).+\.php)(.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; } 结束http://host/test.php/工作,但http://host/test.php无尾/不工作。 我尝试改变到这样的configuration: location ~ \.php$ { fastcgi_split_path_info ^/(.+\.php)(.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $fastcgi_path_info; […]
我正在从ownCloud转换到Nextcloud。 一切似乎工作,只有上传不起作用,但。 每次我通过Web Interface上传,我都会收到“Bad Request”消息。 通过桌面客户端,我还收到了一些额外的信息“坏请求”。 server replied: Bad Request (expected filesize 86622 got 8192) 我为每个上传的文件都得到了这个,除了当然第一个文件大小是不同的,“got”部分总是8192.这看起来似乎有某种8192字节的限制,但是我找不到它。 我最初是在Apache的Docker容器中运行ownCloud,由NGinx通过proxy_pass 。 现在我安装了php5-fpm ,并将其设置为在我的用户帐户下运行(以便Nextcloud将创build具有正确所有权的文件)。 /home/niklas/ nextcloud/ data/ (Nextcloud data directory) nextcloud/ (Nextcloud source code) php-fpm/ (php5-fpm configuration and runtime files) conf www.conf pid sock 我已经从/etc/php5/fpm/php-fpm.conf和pool.d/www.conf分别复制了php5-fpmconfiguration并更新了它们。 您可以在下面findconfiguration。 NGinx的configuration也大多是从这里复制的。 这个错误从哪里来? 不幸的是我不能粘贴这个configuration,因为这个问题的内容太长了。 /家庭/尼古拉斯/ nextcloud / PHP-FPM / conf目录 /home/niklas/nextcloud/php-fpm/www.conf /etc/nginx/sites-enabled/nextcloud.conf 显然这与我运行php5-fpm的方式有关。 当我使用系统configuration的php5-fpm守护程序时,它工作。 […]
我试图configurationnginx,所以它会加载没有扩展名的PHP文件,但仍然将缺less文件的请求传递给前端控制器。 我开始了一个大部分的工作configuration,如下所示,从webroot / about.php正确加载“about.php”之类的URL,并正确地将缺less文件的所有请求发送到webroot / index.php: server { listen 80; listen 443 ssl http2; server_name *.example.com; root /srv/example/$host; client_max_body_size 8M; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; large_client_header_buffers 8 32k; ssl_certificate /etc/ssl/certs/example+ca.pem; ssl_certificate_key /etc/ssl/private/example.key; ssl_ciphers '…'; location / { try_files $uri /index.php$is_args$args; } location /blog { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto […]
PHP FPM与Apache和mod_fastcgi相结合,我有一个非常奇怪的问题。 每当请求PHP文件时,Apache都会将Content-Language: de到响应头文件中。 对于我的生活,我无法弄清楚为什么会发生这种事情! 我使用Ubuntu 16.04,我的Apache版本是2.4.18。 我的PHP FPM是一个自定义的版本。 我正在使用下面的configuration来处理PHP文件: <FilesMatch ".+\.php$"> SetHandler php-fcgi </FilesMatch> Action php-fcgi /php-fcgi Alias /php-fcgi /foo.fcgi FastCgiExternalServer /foo.fcgi -socket /bar.sock -pass-header Authorization 启用了以下Apache模块:actions,alias,autoindex,dir,env,fastcgi,filter,headers,mime,negotiation和setenvif。 模块configuration保持不变。 据我所知,没有DefaultLanguage集合。 任何想法的标题来自哪里,我可以如何删除它? 编辑 当请求一个普通的.html文件时,会发送以下标题:Date,Server,Connection,Keep-Alive,ETag。 当请求<?php exit('Hello World');的PHP文件时<?php exit('Hello World'); ,将发送以下标题:date,服务器,Vary,内容编码,保持活动,连接,传输编码,内容types,内容语言。 我不明白为什么PHP会添加Content-Language: de ,特别是因为这个服务器上的所有软件都是英文的。
我在Centos 7上安装了LAMP堆栈。我还有三个CMS在httpd虚拟主机上运行:WordPress,Joomla和OpenCart。 问题:如何为每个虚拟主机configuration不同的PHP模式,CGI和FCGI? 我有每个CMS单独的.conf文件。 PHP版本7。
我有一个虚拟机只有256MB的内存运行nginx和PHP 5.3。 由于我受资源限制(无法更改VM中的RAM数量),我正在研究设置FastCGI for PHP的各种方法。 也许我的Google-fu很弱,但是在设置FastCGI或任何最佳实践方面的build议时,我似乎找不到有关我的select的信息。 我有兴趣直接获取以下信息: 有哪些FastCGI服务器选项? 这些中的任何一个明显比其他的更好还是更差? 考虑到我的设置(256MB内存,nginx)是否有任何明确的资源或技术博客,我应该遵循的意见?
nginx中的fastcgi权限是否像Apache中那样运行,它在脚本所有者的权限下运行? 从我看到它运行的Web用户的权限。 是否可以更改为仅使用脚本所有者权限运行?
我的客户的网站最近遭到了破坏,他们正在寻求缓解这一风险。 他们有专门的服务器运行Apache和mod_php。 该网站由三个独立的php应用程序安装在不同的文件夹(客户门户脚本,wordpress和自定义的数据库驱动的脚本)。 他们的安全审计build议将每个脚本隔离开来,这样如果其中任何一个被黑掉了,另外两个脚本就不会被污损等等。他们还build议使用fast-cgi而不是mod_php。 Suexec也被提到,虽然不清楚为什么这被推荐。 有人可以确认,如果这是有道理的,实际上是可行的/可行的。 如果是这样,那么实现所提议的安全解决scheme的最佳方式是什么?
页面加载进行快速初始连接,然后在页面呈现之前挂起大约10秒钟。 当服务器负载增加时,我开始看顶部,我发现两个CPU在4-8个php-cgi进程之间有时被挂钩到100%。 我的理论是,因为我从来没有看到内存使用量永远不会超过50%,所以Apache能够处理请求进来,但排队他们的PHP进行处理。 我的mod_fcgid / phpconfiguration有什么问题? RHEL 5.4 2 Xeon E5420s @ 2.50 Ghz 4 Gb RAM Apache 2.2.3 超时30 保持活跃 MaxKeepAliveRequests 0 KeepAliveTimeout 5 <IfModule worker.c> StartServers 2 MaxClients 300 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> mod_fcgid 2.2.10 LoadModule fcgid_module modules / mod_fcgid.so <IfModule !mod_fastcgi.c> AddHandler fcgid-script fcg fcgi fpl php […]