Debian/树莓派安装LNMP

hik
@Ta 2020-04-06发布,2020-04-06修改 9520点击

安装PHP7.3

万事先更新

sudo apt-get update

安装php7.3

sudo apt install -y -t buster php7.3-fpm php7.3-curl php7.3-gd php7.3-intl php7.3-mbstring php7.3-mysql php7.3-imap php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-xmlrpc php7.3-zip

查看版本号确定是否成功

php -v

显示如下就成功了

pi@raspberrypi:~ $ php -v
PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

查看php.ini配置文件位置

pi@raspberrypi:~ $ php -i|grep "Loaded Configuration File"
Loaded Configuration File => /etc/php/7.3/cli/php.ini

输出显示配置文件在/etc/php/7.3/cli/php.ini。注意,实际上配置文件有两个,另外一个在/etc/php/7.3/fpm/php.ini。通过命令行调用php时,会使用第一个配置文件;通过fpm调用php(例如nginx)会使用第二个配置文件。

php-fpm常用管理命令:
开启php-fpm: sudo systemctl start php7.3-fpm
关闭php-fpm: sudo systemctl stop php7.3-fpm
重启php-fpm: sudo systemctl restart php7.3-fpm
编辑php-fpm配置文件: vi /etc/php/7.3/fpm/php-fpm.ini

安装Nginx

安装nginx:

sudo apt-get install nginx

安装完成后,会自动开启nginx。在浏览器输入树莓派的IP地址,可以看到“Welcome to nginx!”。
或者使用命令行(输出HTML就ok了):

curl 127.0.0.1

默认的网站根目录:/var/www/html
nginx配置文件目录:/etc/nginx/
nginx主配置文件位置:/etc/nginx/nginx.conf

nginx常用管理命令:
启动nginx: sudo systemctl start nginx
关闭nginx:sudo systemctl stop nginx
设置nginx开机启动:sudo systemctl enable nginx

配置nginx解析php

编辑配置nginx文件(此文件为ln的链接文件,也可直接编辑原始文件):

sudo nano /etc/nginx/sites-enabled/default

找到index指令,添加index.php。修改后:

index index.php index.html index.htm index.nginx-debian.html;

找到# pass PHP scripts to FastCGI server后面的location,删除注释。修改后如下:

location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# # With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
}

保存后重启nginx:

sudo systemctl restart nginx

测试Nginx+PHP

新建index.php文件

sudo nano /var/www/html/index.php

编辑输入

<?php
phpinfo();

访问树莓派IP地址显示phpInfo页面就ok了

Nginx启动问题

启动nginx服务时如果遇到这个错误 Job for nginx.service failed because the control process exited with error code. See “systemctl stat 可能原因如下:
1.nginx配置文件有错误

运行下面命令查看修改

nginx -t

之前配置解析php时始终不能成功,只因为default文件最后一行缺少一个“}”

2.已经启动nginx或者配置文件中的端口号被占用,检查端口是否被占用

netstat -tnlp

如果端口已经被占用,自己权衡一下是换个端口还是把占用端口的进程杀掉,检查nginx是否已经启动

ps -aux | grep nginx

如果已经启动使用下面命令干掉即可

pkill -9 nginx

安装MySQL

这里使用的是MySql分支mariadb:

sudo apt-get install mariadb-server mariadb-client

执行数据库初始化安装

sudo mysql_secure_installation

根据提示设置数据库root用户密码、是否允许外网访问等。

尝试登录数据库:

mysql -u root -p

输入上一步设置的密码,发现无法登录,错误提示如下:

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

原因: 数据库默认使用系统用户登录,需要修改为使用密码登录。
解决方案: sudo mysql -u root ,登入数据库后,依次执行以下SQL:

use mysql #切换到mysql数据库
update user set plugin='mysql_native_password'; #修改plugin字段
flush privileges; #刷新权限
exit; #退出数据库

再次使用mysql -u root -p即可通过密码登录数据库,无需root权限执行。

mariadb配置文件保存在多个位置:
/etc/mysql/mariadb.cnf
/etc/mysql/mariadb.conf.d/
/etc/mysql/conf.d/

mariadb常用命令:
启动mariadb: sudo systemctl start mariadb
关闭mariadb:systemctl stop mariadb
设置mariadb开机启动:sudo systemctl enable mariadb

操作MySQL

sudo /etc/init.d/mysql restart
# mysql的其他操作    status、start、stop、restart

开启远程访问

允许远程访问

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# 将bind-address这行注释掉
# 或者将127.0.0.1 这个值改为  0.0.0.0
# 然后重启
$ sudo /etc/init.d/mysql restart

设置账户权限(注意下边root密码改为你自己设置的密码)

$ mysql -u root -p
$ 输入密码
MariaDB [(none)]> use mysql;
MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root的密码' WITH GRANT OPTION;
MariaDB [mysql]> flush privileges;

然后用Navicat或DBeaver新建MariaDB或MySQL连接即可

参考:

https://blog.csdn.net/jdyanghang/article/details/102782780

https://www.jianshu.com/p/b258c5e2335b
https://cway.top

回复列表(17|隐藏机器人聊天)
  • @Ta / 2020-04-06 / /
    @hik,谢谢教程
  • @Ta / 2020-04-06 / /
    @hik,树莓派还有什么好玩的好用的东西通通都拿来呗
  • @Ta / 2020-04-06 / /

    是宝塔面板无法安装吗?我的是armbian 64位的,宝塔面板成功安装,但是nginx安装出现问题,研究了一天终于搞定了
    红米 Note4X 标配版(黑色)

  • @Ta / 2020-04-06 / /
    @NowTime,办法交出来啊
  • hik
    @Ta / 2020-04-06 / /

    @5258,刚刚发现装完后远程连不上MySQL,又找了点教程补上了 @NowTime,是啊,树莓派官方系统全是32位的,除非装其他系统,我试过在这系统上装旧版本宝塔效果不理想,你可以分享下你怎么搞定nginx的
    https://cway.top

  • @Ta / 2020-04-06 / /

    我记得之前树莓派3b安装centos7完美适配宝塔5.9
    360N7Pro(黑)

  • @Ta / 2020-04-06 / /


    360N7Pro(黑)

  • @Ta / 2020-04-06 / /

    @hik@5258
    我是参照 https://www.flasky.cn/raspberry-pi/install-bt-panel.html 做的
    红米 Note4X 标配版(黑色)

  • @Ta / 2020-04-06 / /
    @NowTime,你们都是哪里找来的
  • @Ta / 2020-04-07 / /
    额,军哥的lnmp有写支持raspbian,就是安装慢
  • @Ta / 2020-04-07 / /

    @5258,Google 尝试了无数关键字,才找到的
    红米 Note4X 标配版(黑色)

  • hik
    @Ta / 2020-04-07 / /

    @NowTime,我没及时找到,现在安装好了就懒得折腾了,要是早点看到就好了,
    https://cway.top

  • @Ta / 2020-04-07 / /

    @NowTime,宝塔不太兼容
    红米Note4超高配版(银色)

  • @Ta / 2020-04-07 / /

    @水木易安,宝塔针对 arm版 优化下就可以的,也不需要很麻烦。看那个网站步骤,只需要针对 arm架构的去安装 LuaJIT(OpenResty版本)、Lua Cjson(OpenResty版本),然后再安装 lua-resty-core 和 lua-resty-lrucache 模块,完全就不复杂

    但是这个问题从去年四月份就有人反馈,到现在也没去跟进
    红米 Note4X 标配版(黑色)

  • @Ta / 2020-04-07 / /

    @hik,是啊,树莓派这种cpu性能有限,安装比较慢。(但是我发现通过宝塔自带的脚本安装 nginx php mysql...在命令行执行,安装也不会觉得慢
    红米 Note4X 标配版(黑色)

  • @Ta / 2020-04-07 / /
    用普通电脑装debian的路过
  • @Ta / 2020-04-08 / /
    占个位
    -rainss.cn-雨落凋殇
添加新回复
回复需要登录