Cubietruck Plus开发板027Nginx服务器问题解决
今天来解决Nginx服务器还存在的问题,上篇小编在测试Nginx搭建web服务器时遇到404 Not Found......... 此次小编综合Cubietruck Plus设备性能及个人需求选择Nginx服务器加PHP、Mysql来搭建的web服务器。 今天就来排查下将这个问题解决,


工具/原料
Cubietruck Plus
Nginx
PHP
Mysql
Linaro
排查法一步步检查
1、 首先我们先来确认下前面的操作是否成功,前面我们总共安装了Nginx、spwan-fcgi、php5-cli php5-cgi mysql-server php5-mysql几个应用,他们分别是: Nginx 是一款轻量级的Web服务器。 spwan-fcgi 用来实现Nginx对PHP模块的支持。 php5-cli是一种功能强大,并且简便易用的脚本语言。 php5-cgi是PHP自带的FastCGI管理器 mysql-server数据库服务 php5-mysql 是php5的mysql数据库扩展,提供php访问mysql的接口
2、 应用不算多,小编直接用排查法试试,先重新启动下相关服务看下是否哪个位置出错了。 首先是Nginx服务,执行命令sudo/etc/init.d/nginx restart ,结果显示启动OK,测试下网页,在浏览器输入:192.168.31.222,结果显示正常! Welcome to nginx!


3、 spwan-fcgi是为了实现Nginx对PHP模块的支持,在终端执行以下命令启动FastCGI:spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi,结果显示启动OK:spawn-fcgi: child spawned successfully: PID: 3034

4、 看来问题就出在PHP服务这块了,在浏览器打开 http://192.168.31.222/phpinfo.php 是否正常。 404 Not Found..........,提示没有找到phpinfo.php文件,我们先来查看下Nginx网站存放的位置,前面小编说道nginx配置文件都在/etc/nginx目录,nginx的配置文件分成三部分: sites_available和sites_enabled 用来配置站点相关信息 nginx.conf 用来配置服务相关信息(主要配置文件)和sites_enabled 用来配置站点相关信息 nginx.conf 用来配置服务相关信息(主要配置文件) 所以我们来查看下sites_available下的default默认配置,在终端执行命令: cat /etc/nginx/sites-available/default 从这里我们看以看到Nginx默认的网站位置在 /usr/share/nginx/html;


5、 切换到/usr/share/nginx/html目录,执行命令:cd/usr/share/nginx/html/ 通过ls命令可以查看当前目录中的文件:ls 好吧,的确没有phpinfo.php文件,怪不得显示:404 Not Found..........

6、 这里我们来测试下是否猜测正确,在/usr/share/nginx/html/目录创建phpinfo.php文件,执行命令:sudo vi phpinfo.php 在文件中添加如下内容: <?php phpinfo(); ?> 这个函数是用来查看php信息的。

7、 再在浏览器打开 http://192.168.31.222/phpinfo.php 查看是否正常。 显示 (源代码):<?phpphpinfo();?> 虽然显示的是源代码,但起码说明网站位置没错,之前的Not Found只是缺少执行文件。

8、 现在只是显示错误,说明配置还需调整,我们来查看下sites_available下的default默认配置,在终端执行命令: cat /etc/nginx/sites-available/default 我们可以看到,Ngnix默认没有开启PHP脚本的支持,phpinfo.php文件没有经过FastCGI处理解析。

9、 在终端执行命令:sudovi /etc/nginx/sites-available/default 修改默认配置, 找到这段: # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; #}将#注释取消即可执行脚本,:wq保存退出。在终端执行命令重启Nginx即可:sudo/etc/init.d/nginx restart


10、 以下是小编的配置,仅供参考:root /usr/share/nginx/html;index index.php index.html index.htm; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: fastcgi_pass 127.0.0.1:9000; # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }