Termux手动配置lnmp环境

此篇文章同时适用于其他的Linux发行版本,不止是Termux,您也可以在树莓派上进行操作,前提要求是,把命令替换为您系统对应的命令,包括但不限于软件安装命令,系统文件路径

1.前言

lnmp是简写,全称为linux+Nginx+mysql或MariaDB+php

  • L指linux,就是操作系统
  • N是指Nginx,是高性能的 HTTP 和反向代理的web服务器,简单来说就是前端用他运行,前端就是页面,你访问网站看到的页面
  • M是指MySQL或MariaDB,是一个关系型数据库管理系统,这里的关系型,我们就不做解释了,感兴趣的可以看这里,mysql简单来说就是数据库,用来存储数据,MariaDB也是数据库,他是mysql的一个分支,具体差异和这其中的故事请查看
  • P是指PHP,PHP: Hypertext Preprocessor 即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。简单来说就是网页编程语言
    温馨提示:外国人把这一套叫做lemp,搜英文资料需要搜lemp
    lnmp工作原理
    我们将把这一套服务,手动配置在Termux上

2.安装所需软件

我们要先把Termux换成国内源,以便更快速的下载软件(已换源的可以忽略这一步)

1
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.bfsu.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list && apt update && apt upgrade

然后我们安装Nginx mariadb php-fpm

1
apt install nginx mariadb php-fpm

注:如果您是其他linux用户的话,请不要直接执行上述命令,请百度查看您系统的对应命令

3.配置环境

3.1 MariaDB

首先 我们启动mariadb

1
nohup mysqld &

nohup 英文全称no hang up(不挂起),用于在系统后台不挂断地运行命令,如果你直接运行mysqld命令的话,他则会占用你一个终端,不能执行其他命令,所以把他放到后台运行。

Termux安装Maridb的话默认是包含两个用户的,一个是当前用户也就是whoami,另一个则是root,但是我们不能直接登录root,所以我们要以当前用户登录,然后配置一下root用户。

执行以下命令登录

1
mysql -u $(whoami)

如果您如下图所示,那么是就登录成功了
登录成功
然后我们执行

1
2
3
4
5
6
7
8
9
10
11
# 使用当前数据库
use mysql;

# 设置root账户的密码
set password for 'root'@'localhost' = password('root账号的密码');

# 刷新maridb的系统权限相关表
flush privileges;

# 退出
quit;

一条一条的执行,执行完毕后
我们就可以使用如下命令登录root账号了

1
mysql -u root -p

3.2 Nginx

首先,使用编辑器打开以下路径

1
$PREFIX/etc/nginx/nginx.conf

找到第45行
是这个样子的
图片
我们把index.php添加到index.htm的后面,就像这样
图片
这一步是为了把index.php添加成默认首页
然后往下翻,找到第69行,把SCRIPT_FILENAME后面的字全部删了,改成

1
/data/data/com.termux/files/usr/share/nginx/html$fastcgi_script_name;

图片
然后再把65行到71行的**#**全部删掉
删完后的样子

3.3 php-fpm

PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,注意,他只是管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。

Nginx只是一个web服务器,他不能处理php的请求,所以当Nginx收到关于php的请求时,则需要发给php-fpm处理,php-fpm则在发给php-fastcgi处理

注:php-fastcgi 只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。

更多关于php-fpm请查看博客园 by walkingSun知乎php架构师更多内容请百度

使用编辑软件编辑以下文件

1
$PREFIX/etc/php-fpm.d/www.conf

往下翻,找到在第36行listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock把他改为

1
listen = 127.0.0.1:9000

4.测试

4.1 测试Nginx

1
nginx -t

4.2 测试php解析

执行

1
echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/1.php

然后启动Nginx和php-fpm

1
nginx && php-fpm

然后访问http://127.0.0.1:8080/1.php如果和下面的图一样那么就是可以正常解析了
图片

5.温馨提示

Termux默认网站根目录路径为/data/data/com.termux/files/usr/share/nginx/html
当您关闭过termux,发现访问不了了,请依次启动Nginx,php-fpm,MariaDB
Nginx启动命令

1
nginx

停止命令

1
nginx -s stop 或 nginx -s quit

Quit is a graceful shutdown. Nginx finishes serving the open connections before shutdown
Quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求。
Stop is a quick shutdown where is terminates in between serving the connection
Stop 是快速关闭,不管有没有正在处理的请求。
http://wiki.nginx.org/CommandLine
php-fpm启动/关闭命令

1
2
3
4
# 启动
php-fpm
# 停止
pkill php-fpm

MariaDB启动/停止命令

1
2
3
4
# 启动
nohup mysqld & 或 mysqld &
# 停止
pkill mysqld
作者

KCBPMBF

发布于

2022-08-18

更新于

2022-08-22

许可协议

CC BY-NC-SA 4.0


评论