/ 博客相关 / 19浏览

手动安装LNMP环境踩坑一览

文章目录
  • 前言 :
  • 一、环境准备
  • 二、修改 Nginx 配置文件以支持 PHP
  • 三、配置测试
  • 前言 :

    为什么要手动安装而不是不用脚本或者面板?
    了解到 LNMP 一键脚本有投毒事件,且宝塔面板存在后门情况,博主希望自己足够隐私,不希望收到老大哥监管,因此自力更生从零开始。

    一、环境准备

    OS:Debian 10

    Nginx:nginx-1.14.2

    MySQL:mysql-5.7.36

    PHP:php-7.3.31

    1. 安装 Nginx

    运行以下命令即可安装,查看版本。

    apt install nginx
    nginx -v

    返回结果为

    nginx version: nginx/1.14.2

    安装路径为

    /etc/nginx

    2. 安装 Mysql

    运行以下命令即可安装,查看版本。

    apt install mysql-server
    mysql -V
    mysql Ver 14.14 Distrib 5.7.36, for Linux (x86_64) using EditLine wrapper

    返回结果为

    安装路径为

    /etc/mysql

    3. 安装 PHP

    运行以下命令即可安装,查看版本。

    apt install php
    apt install php-fpm
    php -v

    返回结果为

    PHP 7.3.31-1~deb10u5 (cli) (built: Sep 4 2023 21:49:25) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.31, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.31-1~deb10u5, Copyright (c) 1999-2018, by Zend Technologies

    安装路径为

    /etc/php/7.3/

    二、修改 Nginx 配置文件以支持 PHP

    1. 检查 nginx 和 php 的运行用户

    运行一下指令查看两者的运行用户

    ps aux | grep nginx
    ps aux | grep php

    博主检查时候发现 nginx 默认为 nobody 用户运行,php 为 www-data 用户运行,用户不一致就不能正确指向,所以需要修改为一致,博主选择修改 nginx 的配置文件。

    ps aux | grep nginx 
    root 4205 0.0 0.0 8428 760 ? Ss 16:44 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; nobody 4206 0.0 0.3 8828 3280 ? S 16:44 0:00 nginx: worker process root 5915 0.0 0.0 4832 828 pts/0 R+ 17:04 0:00 grep nginx
    ps aux | grep php 
    root 1125 0.0 1.5 193612 15188 ? Ss 16:21 0:00 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf) 
    www-data 1127 0.0 0.6 193612 6684 ? S 16:21 0:00 php-fpm: pool www 
    www-data 1128 0.0 0.6 193612 6684 ? S 16:21 0:00 php-fpm: pool www 
    root 5911 0.0 0.0 4832 884 pts/0 S+ 17:04 0:00 grep php

    2. 确保 nginx 和 PHP 的端口一致

    切换 PHP 安装目录进入配置文件:

    cd /etc/php/7.3/fpm/pool.d/
    vim www.conf

    在里面可以看到监听的端口为:

    user = www-data
    gurop = www-data
    ...#中间没用到的信息省略
    listen = /run/php/php7.3-fpm.sock

    如果是这样情况,就要把 Nginx 配置里面 location ~ \.php 中的  fastcgi_pass  对应的值改成  unix:/run/php/php 7.3-fpm.sock

    3. 编译 nginx 配置文件

    上述已经总结了两点问题,用户和端口,除此之外还需加上 php 的支持。
    切换 nginx 安装目录进入配置文件:

    cd /etc/nginx/
    vim nginx.conf

    按 i 进入编辑模式,在 server 大括号内添加 index.php 到 location / 配置:

    location / { index index.php index.html index.htm; }

    添加端口内容,地址内容到 location ~ \.Php

    location ~* \.php$ { fastcgi_index index.php; fastcgi_pass unix:/run/php/php 7.3-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_param SCRIPT_NAME $fastcgi_script_name; }

    注意这里$document_root的用法,它是一个变量,代表当前配置文件中的root,所以root要在$ document_root外层定义,通常写在 server 头部。如果root只写在 location /内容块中,PHP-FPM是读不到root路径里面的文件,会报错 File not found。如果不想用$document_root,也可将其替换为根目录绝对路径/usr/share/nginx/html$ fastcgi_script_name 

    root 路径为/usr/share/nginx/html 替换为您的网站根目录,本文使用/usr/share/nginx/html 作为网站根目录。

    在文件最上方,添加内容

    user www-data; 
    work_processes 1;

    以下为博主的 nginx 配置改动文件

    user www-data; work_processes 1; ...#省略未改动信息 http{ server{ listen 80; server_host localhost; root /usr/share/nginx/html; ... location \{ # root html; index index.php index.html index.htm; } ... error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } ... location ~* \.php$ { fastcgi_index index.php; fastcgi_pass unix:/run/php/php 7.3-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_param SCRIPT_NAME $fastcgi_script_name; } } }

    按 Esc 键,输入 :wq,按 Enter 键关闭并保存配置文件。
    运行以下命令,启动 Nginx 服务。

    sudo systemctl start nginx 

    运行以下命令,设置Nginx服务开机自启动。

    sudo systemctl enable nginx

    三、配置测试

    新建并编辑 phpinfo.php 文件,用于展示 PHP 信息。
    运行以下命令,新建 phpinfo.php 文件。“`

    sudo vim <网站根目录>/phpinfo.php

    <网站根目录>_是在nginx.conf配置文件中location ~ .php$大括号内,配置的root参数值,本文配置的网站根目录为/usr/share/nginx/html,因此需要运行以下命令新建phpinfo.php文件:

    sudo vim /usr/share/nginx/html/phpinfo.php

    按 i 进入编辑模式,输入下列内容,函数 phpinfo() ​会展示 PHP 的所有配置信息。

    <?php echo phpinfo(); ?>

    Esc键后,输入:wq并回车,保存关闭配置文件。
    运行以下命令,启动 PHP-FPM。

    sudo systemctl start php7.3-fpm

    运行以下命令,设置 PHP-FPM 开机自启动。

    sudo systemctl enable php7.3-fpm

    在浏览器的地址栏输入http://IP地址/phpinfo.php进行访问。

    更新于

    0

    1. 感谢阅读

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注