fastcgi

Php nginx no input file specile

﹥>﹥吖頭↗ 提交于 2020-02-29 17:02:03
使用apt-get install nginx和php-cgi 配置好nginx和php,如果配置的请看网上教程,很多。 在/var/www/nginx-default中放上一份phpinfo.php,使用 http://localhost/phpinfo.info 访问,结果报错,显示 “No input file specified” 【不良现状】 寻找原因,发现这是一个灰常普遍的问题,处理方法大异其趣! 现存的各种方案,是让你把nginx站点配置文件中的这一句话hardcode起来的(真想骂人): 即把fastcgi_param指令的SCRIPT_FILENAME项 从动态值改为fixed值,如: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 修改为 fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; 另外还有一种是修改php.ini中的什么 cgi.fix_pathinfo=1 doc_root= 请注意!!以上这些都是非常不良的改动! 【问题原因】 导致“No input file specified. ”这个问题的原因,是因为nginx的配置不正确,从而导致CGI获取参数错误。 简单来说

用docker部署nginx+php环境时,访问php文件不执行

本秂侑毒 提交于 2020-02-28 14:16:06
今天用docker部署nginx+php环境时,访问php页面,提示404错误。查看docker日志发现下面错误: [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.248.1, server: 115.182.68.147, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://172.18.0.2:9000", host: "192.168.248.129" 1 问题原因: php默认监听的是本地的9000端口 解决方法: 修改php-fpm所在容器的/etc/php-fpm.d/www.conf文件 把listen = 127.0.0.1:9000修改为 listen = 0.0.0.0:9000 --------------------- 作者:fogfore 来源:CSDN 原文:https://blog.csdn.net/miwumuge/article/details/83660055 版权声明:本文为博主原创文章,转载请附上博文链接! 来源: oschina 链接: https://my.oschina.net/u/588516/blog

Nginx中fastcgi_pass的配置问题

♀尐吖头ヾ 提交于 2020-02-28 05:38:14
在配置nginx的时候,fastcgi_pass的配置问题,如下所示: location ~ \.php$ { root /home/wwwroot; fastcgi_pass 127.0.0.1:9000 ; #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; #fastcgi_pass unix:/tmp/php-cgi.sock; try_files $uri /index.php = 404 ; fastcgi_split_path_info ^(.+\.php)(/.+)$ ; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name ; include fastcgi_params; } 主要是关于fastcgi_pass参数, #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; #fastcgi_pass unix:/tmp/php-cgi.sock; 这两种方式有什么区别,php7该用哪一个? -------------------------------------------------- Nginx和PHP-FPM的进程间通信有两种方式

nginx 解决 connect() failed (111: Connection refused) while connecting to upstream,

雨燕双飞 提交于 2020-02-27 16:03:09
也不知道什么问题,就去看了一下nginx日志 /var/log/nginx/error.log,发现了这个错误 2018/06/03 13:38:23 [error] 21332#21332: *301 connect() failed (111: Connection refused) while connecting to upstream, client: 115.159.183.71, server: 202.182.116.84, request: "GET /phpmyadmin/index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "202.182.116.84" 去搜了一下,这样的错误有两个解决方式 1.php-fpm没有运行 执行如下命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可 netstat -ant | grep 9000 2.php-fpm队列满了 php-fpm.conf(/etc/php/7.0/fpm/php-fpm.conf)配置文件pm.max_children修改大一点,重启php-fpm并观察日志情况 呵呵,但是呢,姐姐岂止是普通人,这两个都看了还是不行,解决完了才发现,没想到啊,自己竟然有一个这么大的错误 来啊从配置文件开始看起吧, 3

Nginx学习-架构

百般思念 提交于 2020-02-27 14:06:38
文章来源: http://blog.seclibs.com/nginx学习-架构/ Nginx程序架构图如下 后面就先按照这个图所展示出来的内容对Nginx的架构进行一次梳理,文中所涉及到的内容,主要都是针对Linux系统的。 最上面的Master进程是管理员直接控制的,也只有Master进行接受管理员信号,一个Master用户可以fork多个Worker进程,一个Worker进程可以响应多个用户请求。 Master进程负责加载配置文件,启动worker进程和平滑升级。 Worker进程处理并响应用户的请求。 每个Worker都是由核心模块core和多个模块modules组成的,比如有http协议的ht_core模块,为了功能完善还有很多其它模块,如实现负载均衡的ht_upstream模块,ht_proxy反代模块,ht_fastcgi模块,memcache模块等。 因为Nginx是高度模块化的,我们在用到哪个模块的时候,便将哪个模块编译或者载入就可以了,比如基于ht_core可以与web通信, 基于ht_fastcgi模块可与php通信,基于memcache模块可与mamcache通信。 这里来解释一下什么是FastCGI,CGI全称”通用网关接口”(Common Gateway Interface),用于HTTP服务器与其它机器上的程序服务通信交流的一种工具

使用Nginx缓存加速WordPress站点

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-27 02:45:20
转载想注明文章出处: 使用Nginx缓存加速WordPress站点 博客开通以来,主要记录学习和使用过程中遇到的问题及解决方案。文章风格偏向自娱自乐,因此访问量较少,一台1核1G的vps足以支撑网站的正常运行。 后来本站引入三个页面,这三个页面应该对有上外网需求的网友很有帮助,也给本站带来了很大的流量。本站用的WordPress程序,尝试过安装各种缓存插件(super cache, w3 total cache等)加速运行,但是低配的vps依然难以支持这么大的访问量。通过日志可以看到随着访问量的增加,php-fpm进程增多,Mysql的连接和线程增多,接着出现OOM,然后系统kill掉占用内存最大的Mysql进程,于是网站进入503宕机模式。 买更好的vps能解决访问量大的问题,但是要花更多的钱。做为一个技术宅,首先想到的当然是如何榨干现有机器来支撑大流量。做过的尝试包括切换到比WordPress性能更好的Ghost,参考: 尝试Ghost 。但是相对于WordPress,Ghost的生态远没有那么成熟,最终放弃了。 左思右想下,终极解决办法是用Nginx缓存,最初的文章可参考: Nginx配置fastcgi cache 。fastcgi_cache的好处是大部分用户的请求不用后端php-fpm打交道,直接发送缓存的静态页面,速度上甩各种WordPress插件好几条街

Nginx配置文件说明

喜你入骨 提交于 2020-02-26 21:42:28
#user nobody; #开启进程数 <=CPU数 worker_processes 1; #错误日志保存位置 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #进程号保存文件 #pid logs/nginx.pid; #每个进程最大连接数(最大连接=连接数x进程数)每个worker允许同时产生多少个链接,默认1024 events { worker_connections 1024; } http { #文件扩展名与文件类型映射表 include mime.types; #默认文件类型 default_type application/octet-stream; #日志文件输出格式 这个位置相于全局设置 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #请求日志保存位置 #access_log logs/access.log main; #打开发送文件 sendfile

PHP在哪里存储错误日志? (php5,apache,fastcgi,cpanel)

你说的曾经没有我的故事 提交于 2020-02-26 14:36:24
我在共享主机上,并由fastcgi运行Cpanel,Apache,PHP。 PHP在哪里存储错误日志? 还有什么其他方法可以在共享主机环境中找到错误日志,而不必遍历整个站点结构来查找error_log文件? 我可以访问 php.ini (我使用的是PHP 5.2.16版)。 #1楼 在php.ini中配置错误日志文件时,可以使用绝对路径或相对路径。 相对路径将根据生成脚本的位置进行解析,并且您将在脚本所在的每个目录中获得一个日志文件。如果希望所有错误消息都移至同一文件,请使用绝对路径文件。 在此处查看更多信息: http : //www.php.net/manual/zh/ref.errorfunc.php#53025 #2楼 在LAMP环境中,php错误默认定向到以下文件。 /var/log/httpd/error_log 所有访问日志位于: /var/log/httpd/access_log #3楼 如果您已从源代码构建Apache和PHP,则默认情况下,错误日志将在 ${Apache install dir}/logs/error_log 即通常为 /usr/local/apache2/logs/error_log 。 否则,如果您是从存储库安装的,则可以在 /var/log/apache2/error_log 找到它。您还可以在 php.ini 设置路径,并通过调用

nginx 虚拟主机 404页面定义 的几种方式

喜你入骨 提交于 2020-02-26 02:27:32
有两个网站一个lnmp环境,一个web工程用nginx反向代理 ***域名做隐藏处理 网站1. 虚拟主机路径所在目录 [root@kangcw nginx]# pwd /www/server/panel/vhost/nginx [root@kangcw nginx]# ls www.xxx.com.conf www.xxx2.com.conf 虚拟主机一lnmp环境 Nginx 访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢? 这种情况下不需要修改任何参数,就能实现这个功能。 如果后端是php解析的,需要加一个变量 在http段中加一个变量 fastcgi_intercept_errors on 就可以了。 [root@kangcw nginx]# cat www.xxx1.com.conf |grep -v "#" server { listen 80; server_name www.xxx1.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/wbn4.cn/; location / { index index.html index.htm index.php; if (!-e

Perl & mod_fcgid- how can I be sure it's working?

纵饮孤独 提交于 2020-02-02 04:23:27
问题 I have a couple Perl scripts I'm taking public soon, and I want to make sure they'll run under mod fcgid in order to keep the server load as low as possible. Previously, I've only ever run scripts that test FastCGI (ie, while ( my $q = new CGI::Fast ) { $count++; echo $count;}) or taken advantage of larger Perl packages (like MovableType) that claim to run as FCGI as long as you set up Apache & FastCGI/mod fcgid properly and change the file suffix to ".fcgi". So, here's my question: do I need