PHP 安装 ,NGINX PHP 配置 以及有关 No input file specified.

老菜鸟近日有个项目要弄什么Restful,硬着头皮上啊。Centos 的安装按照网络大师们的文档,顺利完成,但是因为虚拟机的缘故,PHPstorm运行太慢,决定改成windows ,结果,php竟然配置屡屡不成。昨晚战斗至凌晨未果,为延续老命,只好作罢。今晨起来继续挑战。
对了,错误是
No input file specified.

废话不说了,挑战一小时之后决定塌下心来看看php.ini的说明。看到这么一段

; The root of the PHP pages, used only if nonempty.
; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
; if you are running php as a CGI under any web server (other than IIS)
; see documentation for security issues. The alternate is to use the
; cgi.force_redirect configuration below
; http://php.net/doc-root
;doc_root =

仔细研读,发现这个doc_root 设置成 网站(nginx里面的root值)的root 应该管事,就把上面的内容改为

doc_root = “D:\Program Files (x86)\nginx\RestApi”

存盘重启,php-cgi ,再运行,成功!

补充说明:taskkill 有时候杀不干净 nginx 进程,因此导致配置不能生效,其实是因为之前的配置还在生效,因此要彻底将nginx进程杀掉再观察配置结果是否正确。可结合taskmanager 使用。
是记

马拉孙于泛五地区
2021-09-07

补充说明:cgi.force_redirect 的设置没有影响,因此忽略它吧。nginx conf的里面的配置如下

在这里插入图片描述

补充说明:
将 PHP 解析部分中的 fastcgi_parma 换成如下内容应该是正解

   location ~ \.php$ {
        root           I:\PHP;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;***
        include        fastcgi_params;
    }

继续补充:
2021–12-14 yum 在真机上安装,出现File not found… , 奋战一天,未果,心力憔悴.回家虚拟机,仍然不行.

最后不得已采用原码安装,用下面的大侠提供的方案,通过.
http://www.mianshigee.com/note/detail/38587ofd/
谢谢这位大侠.

PHP 安装 全文引用如下:

准备

1、下载所需安装包

wget https://www.php.net/distributions/php-7.4.24.tar.gz

2、安装所需扩展

yum install -y gcc gcc-c++ make cmake bison autoconf wget lrzsz libtool libtool-ltdl-devel freetype-devel libjpeg.x86_64 libjpeg-devel libpng-devel gd-devel python-devel patch sudo openssl* openssl openssl-devel ncurses-devel bzip* bzip2 unzip zlib-devel libevent* libxml* libxml2-devel libcurl* curl-devel readline-devel sqlite-devel libsodium-devel https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/o/oniguruma-5.9.5-3.el7.x86_64.rpm https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/o/oniguruma-devel-5.9.5-3.el7.x86_64.rpm

yum install -y epel-release
yum install -y oniguruma oniguruma-devel
yum -y install re2c

3 安装PHP

1、解压-进入目录-生成编译文件

tar -zxvf php-7.4.24.tar.gz
cd php-7.4.24
./configure --prefix=/usr/local/php \
  --with-config-file-scan-dir=/usr/local/php/etc/ \
  --with-mhash --with-pdo-mysql \
  --with-openssl --with-mysqli \
  --with-iconv --with-zlib \
  --enable-inline-optimization \
  --disable-debug --disable-rpath \
  --enable-shared --enable-xml \
  --enable-bcmath --enable-shmop \
  --enable-sysvsem --enable-sysvshm --enable-mbregex \
  --enable-mbstring --enable-ftp \
  --enable-pcntl --enable-sockets \
  --with-xmlrpc --enable-soap \
  --without-pear --with-gettext \
  --enable-session --with-curl \
  --enable-opcache --enable-fpm \
  --without-gdbm --enable-fast-install \
  --disable-fileinfo --with-sodium

2、编译 并 安装

make && make install
3、配置文件

1.复制配置文件到安装目录

cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

2.修改PHP 配置文件 php.ini

vim /usr/local/php/etc/php.ini

内容修改如下:

;不显示错误,默认
display_errors = Off

;在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置),默认
log_errors = On

;字符集,默认
default_charset = "UTF-8"

;文件上传大小,默认值太小,建议修改10M
upload_max_filesize = 2M

;Maximum size of POST data that PHP will accept. 表单最大值,默认是8M,如果表单含有多图上传,大小可能不够。超过该大小后台收不到 表单数据
post_max_size = 8M

;设置PHP的扩展库路径,默认被注释了,之后一个文件夹 于 你/usr/local/php/lib/php/extensions/ 下的文件夹同名。
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/"

;设置PHP的时区
date.timezone = PRC

;开启opcache,默认是0
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1

3.修改php-fpm 的配置文件 php-fpm.conf

vim /usr/local/php/etc/php-fpm.conf
内容修改如下

; 去掉里分号,方便以后重启。建议修改
;Default Value: none
; 下面的值最终目录是/usr/local/php/var/run/php-fpm.pid
; 开启后可以平滑重启php-fpm
pid = run/php-fpm.pid

; 设置错误日志的路径,可以默认值
; Note: the default prefix is /usr/local/php/var
; Default Value: log/php-fpm.log,/usr/local/php/var/log/php-fpm.log
error_log = /var/log/php-fpm/error.log

; Log等级,可以默认值
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
log_level = notice

; 后台运行,默认yes,可以默认值
; Default Value: yes
;daemonize = yes

; 引入www.conf文件中的配置,可以默认值
include=/usr/local/php/etc/php-fpm.d/*.conf

4.修改 www.conf

vim /usr/local/php/etc/php.ini(原文如此,保留)
正确的命令如下:

vim /usr/local/php/etc/php-fpm.d/www.conf

内容修改如下:

; 设置用户和用户组,默认都是nobody。可以默认值
user = nginx
group = nginx

; 设置PHP监听
; 下面是默认值,不建议使用。可以默认值
listen = 127.0.0.1:9000
; 根据nginx.conf中的配置fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
;listen = /var/run/php-fpm/php-fpm.sock

######开启慢日志。可以默认值
slowlog = /var/log/php-fpm/$pool-slow.log
request_slowlog_timeout = 10s

4、php-fpm 操作

/usr/local/php/sbin/php-fpm -t    # php-fpm检测配置文件是否正确
/usr/local/php/sbin/php-fpm     # php-fpm启动
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`   # php-fpm关闭
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`   #php-fpm平滑重启

说明可能会安装 oniguruma

参看:
https://www.cnblogs.com/lyc94620/p/13201379.html

笔者在centos 7 上, 采用下面的方法二安装成功

方案一:
[hi@hi ~]# yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
[hi@hi ~]# yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

方案二:
[hi@hi ~]# yum -y install http://down.24kplus.com/linux/oniguruma/oniguruma-6.7.0-1.el7.x86_64.rpm
[hi@hi ~]# yum -y install http://down.24kplus.com/linux/oniguruma/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

说明:严格按照本文顺序安装不会出现下面的错误:

configure: error: Package requirements (libsodium >= 1.0.8) were not met

创建可能用到用户,例如www

groupadd www
useradd -g www -s /sbin/nologin www

配置 php 服务
请参考 https://blog.csdn.net/have_a_cat/article/details/115210989

转录如下:

find / -name init.d.php-fpm
#/tools/php-7.4.24/sapi/fpm/init.d.php-fpm
cp /tools/php-7.4.24/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod a+x /etc/init.d/php-fpm
service php-fpm start
service php-fpm restart

MaraSun BJFWDQ
2022-08-11

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "no input file specified"是指在使用php-fpm处理请求时,发现没有指定要处理的PHP文件。常见情况是在使用Nginx作为Web服务器时出现此错误。 解决此问题的方法如下: 1. 检查Nginx配置文件中是否正确指定了PHP文件路径。可以查看`location`块中的`fastcgi_pass`指令,确认PHP-FPM套接字或IP地址及端口是否正确配置。 2. 检查PHP文件路径是否正确。确保请求的PHP文件路径是正确的,是存在的,并且具有可读权限。 3. 确保PHP-FPM已启动。可以通过命令行执行`service php-fpm status`检查PHP-FPM是否正在运行。 4. 检查PHP-FPM配置文件。查看`php-fpm.conf`或`www.conf`文件,确保`listen`指令中配置的套接字或IP地址及端口与Nginx配置文件中的相匹配。 5. 重启NginxPHP-FPM服务。可以通过命令行执行`service nginx restart`和`service php-fpm restart`重启服务,使配置生效。 如果以上方法仍无法解决问题,可以通过检查错误日志文件(通常在/var/log/nginx/或/var/log/php-fpm/中)获取更多详细的错误信息,以便进一步进行排查和调试。 ### 回答2: 当出现"no input file specified"错误时,这通常表示Nginx无法找到要处理的PHP文件。这个错误可能有几个原因。 首先,检查Nginx配置文件。确保正确配置PHP解释器和fastcgi参数。可以通过使用root指令和index指令设置网站的根目录和默认文件。确保fastcgi_pass指令指向正确的PHP解释器的地址和端口。 如果Nginx配置正确,但还是出现错误,那么可能是由于文件或目录权限的问题。PHP文件及其父文件夹应该具有可执行权限,以便Nginx可以读取和执行它们。使用chmod命令设置正确的权限。 另一个可能的原因是PHP文件的路径设置不正确。请检查PHP文件的位置和Nginx配置文件中的路径是否匹配。确保文件实际存在,并且路径被正确指定。 有时,可能是由于PHP-FPM配置出现问题。检查PHP-FPM的配置文件,确保其监听正确的地址和端口,与Nginx配置文件中的指令一致。 最后,还有可能是由于重写规则的问题。检查Nginx的重写规则是否正确,以便正确地路由请求到PHP文件。 总结一下,出现"no input file specified"错误通常意味着Nginx无法找到要处理的PHP文件。检查NginxPHP-FPM的配置文件,确保路径、权限、监听地址和端口等设置正确。此外,还要检查重写规则和路径匹配。 ### 回答3: 当出现"no input file specified"错误时,是因为Nginx没有找到要处理的PHP文件。这个问题通常是由于配置错误所导致的。 首先,确保PHP文件存在于Nginx的根目录中。然后,检查Nginx配置文件是否正确设置了PHP处理的位置。 在Nginx配置文件中,可以添加以下内容: ``` location / { try_files $uri $uri/ /index.php$is_args$args; } ``` 这将使Nginx在找不到对应文件时自动尝试将请求传递给index.php文件。 另外,确保在nginx.conf或sites-available文件中,正确设置了fastcgi相关的配置,例如: ``` location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } ``` 这样Nginx就知道将PHP文件传递给哪个FastCGI处理程序。 在修改配置文件后,重新加载Nginx配置: ``` sudo systemctl reload nginx ``` 如果问题仍然存在,可能是因为PHP-FPM配置错误。可以检查PHP-FPM的配置文件,确保它监听正确的地址和端口: ``` sudo nano /etc/php/7.4/fpm/pool.d/www.conf ``` 找到以下行: ``` listen = /run/php/php7.4-fpm.sock ``` 确保这个路径和Nginx配置文件中的一致。 修改后,重启PHP-FPM和Nginx服务: ``` sudo systemctl restart php7.4-fpm sudo systemctl restart nginx ``` 通过这些步骤,应该能够解决"no input file specified"的问题,使Nginx能正确找到和处理PHP文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值