Cubietruck Plus开发板027Nginx服务器问题解决
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 查看是否正常。
显示 (源代码):
<?php
phpinfo();
?>
虽然显示的是源代码,但起码说明网站位置没错,之前的Not Found只是缺少执行文件。

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

9、 在终端执行命令:sudo vi /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;
}