如何在树莓派上安装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地址。你会看到如下字样。

welcome-to-nginx

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

pi@raspberrypi-_009

如果你不想更改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安装的所有工作

为这篇文章评分
[Total: 1 Average: 5]

2 Responses to “如何在树莓派上安装LEMP

  • 我这里网站的根目录是/usr/share/nginx/html 估计系统版本不同 所以不一样

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here