首页 > 代码库 > Nginx的一次no input file specified事记

Nginx的一次no input file specified事记

Nginx的一次no input file specified事记

学习linux蛮打满算有三个月了

今天线上有个机会,有个全新的机器给我,

要求是lnmp环境,考虑到自己的源码编译对系统还不是很熟,决定用网上的脚本安装

 

Ezhttp lnmp环境部署:

 

路径都默认到/usr/local/ nginx mysql  php(三个路径)

msyqldata路径为/data/mysqldata/

 

wKioL1R3MfPQeHTpAAJbe5z2oVE355.jpg

wKiom1R3MXCibWdIAADqegCdGhM263.jpg













以上两个是环境的安装路径和mysql的数据路径,部署完成,现在开始测试,我准备用nginx作为web容器,建立一个www.a.com的域名进行测试


#mkdir /data/newweb/www.a.com/wwwroot/ -p(创建网站目录)

#echo I am www.a.com>>/data/newweb/www.a.com/wwwroot/index.hmtl

(创建一个index.html文件并且给它增加内容方便看测试效果)


接下来搭建nginxvhost主机,

#cd /usr/local/nginx/conf/vhsot/

#vi www.a.com

 server {

       server_name www.a.com;

       listen 80;

       index index.php index.html index.htm;

       root /data/newweb/www.a.com/wwwroot;(指向我的测试目录)

       include rewrite/DEDECMS.conf;   

       location ~ \.php($|/){

           fastcgi_pass   127.0.0.1:9000;

           fastcgi_index  index.php;

           include        fastcgi_params;

           set $path_info "";

           set $real_script_name $fastcgi_script_name;

           if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {

                set $real_script_name $1;

                set $path_info $2;

           }

           fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

           fastcgi_param SCRIPT_NAME $real_script_name;

           fastcgi_param PATH_INFO $path_info;

           fastcgi_param  PHP_VALUE        open_basedir=$document_root:/tmp/:/proc/;

    }

       location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

                        expires      30d;

       }

 

       location ~ .*\.(js|css)?$ {

                        expires      12h;

       }

 

       #access_log /home/wwwlog/www.a.com/access.log access;

       #error_log /home/wwwlog/www.a.com/error.log error;

日志文件这里测试就不创建,大家需要的可以自行创建

 

}

 

 

:wq

#ll查看

wKiom1R3Mb3Tw2edAAD21Bf6ZVw500.jpg

Host主机完成

 

 

现在我们进入到nginxsbin目录先测试nginx的配置

#./nginx –t(测试的习惯要养成,这是一个婶儿给我的经验,得益量多)

#./nginx –s  reload

接下来就要在你的本地建立一个host指向你的生产环境,大家用虚拟机的话就是你的虚拟机ip

 


 


wKiom1R3MeSTINr8AAHvFJaSs68728.jpg

 

接下来就可以在本地测试你的www.a.com域名

wKioL1R3Mnuwa1-aAABmisYXnEk618.jpg

问题出现

回去查找vhost的配置问题

wKiom1R3MgWz_XcrAADIoljBV3k489.jpg

发现这里插入了一个DEDECMS.  Conf的重定向

include是把其它的配置文件包含到本配置文件中。

就相当于你把其它的配置文件内容写在include这里一样

 

于是我查找到

#cd /usr/local/nginx/conf/rewrite/里面有一个

 

wKioL1R3MrfxlBV-AADbWlqaC8Y799.jpg

然后我查看内容

 

wKiom1R3MkLAh6AqAAD96dQxn4A839.jpg

这个文件应该是ezhttp的脚本创建安装的时候自动生成的一个vhost触发

,于是我尝试去更改www.a.com host

 

 

 

 

 

#vi www.a.com.conf

wKioL1R3MtzQhMvKAAEZAw1CK1c912.jpg

进入到nginxsbin

#./nginx –t

#./nginx –s reload

在我本地打开再测试

 

wKiom1R3Mn2RtcNdAABgRE066Pw332.jpg

妥妥的,其实知识点不难,重点是大家细心去找这个错误,就能找到,

总结为,include这个rewrite其实是挺好的东西,我这里只是测试错误,将他取消,如果是有.php的站,那就可以成功,我这里我将这个rewrite备份到我自己的本地做研究,然后线上将它mv **.bak  留着给程序使用


 

 


Nginx的一次no input file specified事记