Debian 12 上手动apt安装 LNMP

服务器技术 2 个月前 回复

, , , , , ,

Linux

LNMP 是 Linux + Nginx + MySQL + PHP 的缩写,第一步就从 Linux 开始

最小化安装 Debian 12 系统,配置好 SSH 和 APT 源之后就算完成了

Nginx

Nginx 提供了 APT 源,可以通过 APT 直接安装和更新,非常方便,并且官方源里的 Nginx 也是 Stable version,不存在落后问题

以下命令都是以 root 执行的,Nginx 会自动创建 nginx 用户

1、先安装依赖包

apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring

2、配置 Nginx 源的密钥

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

3、校验密钥,这步可有可无

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

官网提供的指纹为 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62

4、添加 Nginx 源

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | tee /etc/apt/sources.list.d/nginx.list

5、如果要使用 mainline 的包,可有可无

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | tee /etc/apt/sources.list.d/nginx.list

6、设置优先使用 Nginx 官网源

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | tee /etc/apt/preferences.d/99nginx

7、最后,安装 Nginx

apt update && apt install nginx

安装过程中会自动创建 Nginx 用户和服务,后续启停直接通过 service nginx 命令,或者 nginx 命令就可以操作了

默认配置文件路径:/etc/nginx
默认日志文件路径:/var/log/nginx

TIPS:如果在输入nginx,显示未找到命令,那是因为需要设置环境。

export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

上面这条命令只是临时设置环境,重启之后就会失效了。如果需要一直保持,可以编辑/root/.bashrc文件,把上面这条命令加进去,然后重启即可。

MySQL

1、MySQL 也提供 APT 源

MySQL 官网 下载 APT 源配置器

2、安装源配置器,安装过程中会询问要使用的 MySQL 的版本,默认最新版即可

dpkg -i mysql-apt-config_0.8.29-1_all.deb

后续如果要再使用这个配置器

dpkg-reconfigure mysql-apt-config

3、更新软件源

apt update

4、安装 MySQL

apt install mysql-server

安装过程中会要求配置 root 账户密码,并创建 MySQL 服务

5、最后登录 MySQL 验证是否安装成功

mysql -uroot -p

PHP

PHP 也可以通过 APT 安装,但是默认会和 Apache HTTP Server 一起安装,我想要使用 Nginx,就以 FPM 形式安装

1、安装 php-fpm

apt install php-fpm

2、安装 PHP 扩展

查看 PHP 版本

root@dabian:~# php -v
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies

安装对应版本的 PHP 扩展

apt install php8.2-{fpm,cli,common,mysql,curl,dom,exif,fileinfo,imagick,gd,mbstring,xml,zip,memcached,opcache,bcmath,iconv,intl,simplexml,xmlreader}

3、配置 FPM Sock 权限。PHP 默认用户名是 www-data,而 Nginx 默认用户名是 nginx

nano /etc/php/8.2/fpm/pool.d/www.conf

也可以通过把 nginx 添加到 www-data 组解决权限问题

usermod -a -G www-data nginx

初始化数据库

使用 root 用户登录 MySQL,初始化 wp 使用的数据库

1、创建 wp 用户

CREATE USER 'wp'@'%' IDENTIFIED BY '123456!';

2、创建 wp 数据库

CREATE DATABASE `wp` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3、授予权限

GRANT ALL ON typecho.* TO 'typecho'@'%';

4、刷新权限

FLUSH PRIVILEGES;

或者安装phpmyadmin,到官网下载,解压到网站里即可使用。

配置 Nginx 站点

1、进入 Nginx 配置文件路径

cd /etc/nginx/conf.d/

2、Nginx 默认会解析这个路径下的所有配置文件

创建 wp 站点

nano wp.conf
server {
    listen          80;
    server_name     1.1.1.1; # 先设置为服务器 IP 地址,后续配置 SSL 的时候会添加域名
    root            /www/typecho; # 修改为 Typecho 源码所在路径
    index           index.html index.htm index.php;

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last; # Typecho 重写
    }

    location ~ .*\.php(\/.*)*$ {
        include fastcgi.conf;
        include fastcgi_params;
        fastcgi_pass  unix:/run/php/php8.2-fpm.sock; # 按照实际路径配置,不知道版本的可以 ls 一下
        set $path_info "";
        set $real_script_name $fastcgi_script_name;
        if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
            set $real_script_name $1;
            set $path_info $2;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
        fastcgi_param SCRIPT_NAME $real_script_name;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_index index.php;
    }

    access_log logs/typecho.log combined; # 访问日志路径
    error_log logs/typecho.log.error; # 错误日志路径
}

3、测试配置是否有误

nginx -t

Nginx 会检查配置文件是否有语法错误

MySQL 性能调优

mysqld 进程占用内存比较多,不过没有关系,当前环境都是默认配置,没有对 MySQL 优化过,添加一些优化配置简单优化,占用就下来了

nano /etc/mysql/mysql.conf.d/mysqld.cnf
key_buffer_size = 8M
table_open_cache = 32
sort_buffer_size = 256K
net_buffer_length = 4K
read_buffer_size = 128K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 4M
thread_cache_size = 4
lower_case_table_names=0
character-set-server = UTF8MB4

max_connections = 500
max_connect_errors = 100
open_files_limit = 2560
max_allowed_packet = 128M

启动网站

所有配置都已完成,现在可以启动网站了

1、重启 PHP

service php8.2-fpm restart

2、重载 Nginx 配置

nginx -s reload

如果没有报错,则表示网站启动成功,按照上方 Nginx 配置中的 server_name 访问即可。

原文参考:https://roadtothe.top/67.html

支付宝打赏微信打赏

如果此文对你有帮助,欢迎打赏作者。

发表评论

欢迎回来 (打开)

(必填)