如何在树莓派上安装LEMP
LEMP是一组用于web服务器的开源软件。LEMP代表Linux、Nginx(发音为Engine X)、MySQL和PHP。Raspbian系统是一个基于Debian的Linux发行版,专门为树莓派而开发和优化。在Raspbian系统安装好 LEMP,我们就能在树莓派上搭建一个本地网站,进行web开发。
建议
LEMP运行时需要较多的硬件资源,在安装LEMP之前,运行sudo raspi-config命令,在raspi-config配置界面禁止开机启动图形界面。这样就能腾出很多内存资源。
安装环境
这篇教程是在本地局域网通过SSH从远程Linux计算机访问树莓派的。用SSH访问树莓派的命令为
ssh [email protected]
如果你不知道树莓派的IP地址,那么在Linux计算机上安装nmap命令行工具
sudo apt-get install nmap 或 sudo dnf install nmap 或 sudo pacman -S nmap
安装完成后,输入下面的命令,列出本地局域网所有设备的IP地址。
sudo nmap -sP 192.168.1.0/24
找到树莓派的地址后,我们就可以用SSH登录树莓派了。
HTTP服务器
Nginx是一个快速高效的http服务器。在Apache和Nginx两者之间,我总是选择使用Nginx。安装Nginx很简单,输入下面的命令即可。
sudo apt-get install nginx
启动Nginx
sudo service nginx start
查看Ngnix运行状态
service nginx status
停止Nginx
sudo service nginx stop
启动Nginx后,在远程计算机的浏览器地址栏输入树莓派的IP地址。你会看到如下字样。
MySQL数据库
MySQL是一个非常强大的数据库管理系统。输入下面的命令安装MySQL。
sudo apt-get install mysql-server
在安装的过程中,MySQL会让你为MySQL数据库的root用户设置一个密码。如果在安装过程中不设置密码,我们也可以在安装完成后用MySQL shell来设置密码。
安装完成后,我们需要对MySQL进行一些配置工作。首先我们需要生成目录结构来存储数据库和其他信息。输入下面的命令。
sudo mysql_install_db
下一步是运行一个MySQL的安全脚本,它将询问当前root用户的密码,也就是在MySQL安装时设置的root密码。
sudo /usr/bin/mysql_secure_installation
如果你不想更改root密码,那么回答N。之后的问题都可以直接按Enter来回答。
安装PHP
安装好Ngnix和MySQL之后,就剩下PHP了。我们将安装php5-fpm软件包,fpm是fastCGI process manager的缩写。另外我们要安装php5-mysql模块,它提供了直接从php脚本连接MySQL的功能。输入下面的命令。
sudo apt-get install php5-fpm php5-mysql
安装好这两个软件包后,我们还需要配置PHP。打开php.ini文件。
sudo nano /etc/php5/fpm/php.ini
使用Ctrl+W键找到cgi.fix_pathinfo=1这一行文字。把1改成0。
cgi.fix_pathinfo=0
另外一个需要编辑的文件是www.conf
sudo nano /etc/php5/fpm/pool.d/www.conf
使用Ctrl+W键来找到 listen=127.0.0.1:9000这一行文字,将它更改成/var/run/php5-fpm.sock。
listen=/var/run/php5-fpm.sock
有时可能在安装好PHP后 listen的值就是/var/run/php5-fpm.sock,这时我们会找不到127.0.0.1:9000,反而会找到/var/run/php5-fpm.sock。
重启PHP
sudo service php5-fpm restart
Nginx配置
这个配置是让Ngnix使用PHP。打开默认的Nginx server block。
sudo nano /etc/nginx/sites-available/default
找到关于server的配置,去掉第一行和第二行前面的#符号。将index.php添加到index命令,去掉error pages前面的#符号。
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name server_domain_name_or_IP; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
修改完后保存文件。重启Nginx
sudo service nginx restart
网站根目录及其权限
注意,网站默认的根目录是/usr/share/nginx/www。我们需要将这个目录的所有者更改为www-data
sudo chown -R www-data:www-data /usr/share/nginx/www
为了能够在这个目录下创建文件,我们需要将pi用户添加到www-data组中。
sudo usermod -a -G www-data pi newgrp www-data
在网站根目录可以创建一个文件测试PHP。例如创建一个phpinfo.php文件。
<?php phpinfo(); ?>
在浏览器中输入ip/phpinfo.php,我们就可以看见php的信息。好了,我们完成了LEMP安装的所有工作
我这里网站的根目录是/usr/share/nginx/html 估计系统版本不同 所以不一样
新版本的Nginx默认的根目录是/usr/share/nginx/html。