树莓派研究笔记(2)-- 安装Nginx 服务器,PHP 和 SQLite
1. 安装nginx web 服务器
sudo apt-get install nginx
2. 启动nginx,nginx的www目录默认在/usr/share/nginx/html中
sudo /etc/init.d/nginx start
3. 修改nginx的配置文件,发现没有权限。先激活root账号
pi@raspberrypi:~$ sudo passwd root
Enter new UNIX password: #输入第一遍密码
Retype new UNIX password: #输入第二遍密码
// 启用 root 账号登录
pi@raspberrypi:~$ sudo passwd --unlock root passwd: password expiry information changed.
输入上面第一行代码 第二行是提示错误的代码
原因是 新版本ssh默认关闭root登陆 你可以修改一下ssh的配置文件
pi@raspberrypi:~$ sudo nano /etc/ssh/sshd_config
搜索 PermitRootLogin without-password
修改 PermitRootLogin without-password 为 PermitRootLogin yes
Ctrl + O 快捷键 保存。
使用屏幕下方的快捷键提示,可以退出编辑。
执行完之后,用 sudo reboot 命令重启,这样就可以解锁root账户。
重启后,注销当前PI用户登录,并使用root账号登录。
4.用root账号登陆后,用文件管理器找到并修改nginx的配置文件。/etc/nginx/sites-available/default
下面五行,去掉注释# 符号
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php; #如果没有这一行,就不用管
include fastcgi_params; #如果没有这一样就不用管
}
注意这里有个大坑。一定要注意server标记结尾括号要把上面的代码包含进来。我开始没有注意到,重启服务就报错。
"fastcgi_pass" directive is not allowed here in/etc/nginx/sites-enabled/default~:68.
大概是下面的这个样子: server的结尾括号,还有 Location ~\.php 前面的#号。这都是坑啊。
server { location / { root /usr/share/nginx/www; #路径地址可能不一样,比如/var/www/html index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
5. 安装 PHP 和 SQL
sudo apt-get install php5-fpm php5-sqlite php5
6.重新加载nginx的配置
sudo /etc/init.d/nginx reload
测试php
在树莓派中生成一php文件
sudo vi /usr/share/nginx/www/index.php
<?php
echo “welcome to php”
?>
存盘退出
浏览器中访问这一页,说明php也是OK的, 如果测试失败,就停掉nginx,重新开启
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx start