在最新版本的 Debian 10(Buster)中安装 LNMP

理论能在 Debian/Ubuntu 任意版本安装最新 lnmp(

删库塔是什么

# 准备工作

# 更新系统并安装依赖

apt update && apt upgrade -y
apt install -y build-essential curl vim wget unzip apt-transport-https lsb-release ca-certificates git

# 加入 Backports 源

h
cat >> /etc/apt/sources.list.d/backports.list << EOF
deb http://deb.debian.org/debian $(lsb_release -sc)-backports main 
deb-src http://deb.debian.org/debian $(lsb_release -sc)-backports main 
EOF
#国内可考虑使用中科大的源
cat >> /etc/apt/sources.list.d/backports.list << EOF
deb https://mirrors.ustc.edu.cn/debian $(lsb_release -sc)-backports main 
deb-src https://mirrors.ustc.edu.cn/debian $(lsb_release -sc)-backports main 
EOF

# 执行升级

h
apt -t $(lsb_release -sc)-backports update && apt -y -t $(lsb_release -sc)-backports upgrade

# 安装 Nginx

这里使用 Ondřej Surý 大神打包好的 Nginx 源

# 添加 GPG

wget -O /etc/apt/trusted.gpg.d/nginx-mainline.gpg https://packages.sury.org/nginx-mainline/apt.gpg

# 添加 sury 源

h
cat >> /etc/apt/sources.list.d/nginx.list << EOF
deb https://packages.sury.org/nginx-mainline/ $(lsb_release -sc) main 
EOF
#国内同样可考虑使用香港源
cat >> /etc/apt/sources.list.d/nginx.list << EOF
deb https://mirror.xtom.com.hk/sury/nginx-mainline/ $(lsb_release -sc) main 
EOF

# 安装

apt update && apt install -y nginx-extras

安装前最好屏蔽 Backports 仓库下的 Nginx

h
cat >> /etc/apt/preferences << EOF
Package: nginx*
Pin: release a=buster-backports 
Pin-Priority: 499
EOF

安装完毕后,可以使用 nginx -v 查看当前安装版本了

# 开机启动 Nginx

systemctl enable nginx

# 安装 PHP

这里同样使用 Ondřej Surý 大神的 PHP 源,同时他也是 Ubuntu/Debian PHP 软件源的官方维护者之一。

# 添加 GPG

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

# 添加 sury 源

h
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
#国内机器同样可以采用香港源
sh -c 'echo "deb https://mirror.xtom.com.hk/sury/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

# 安装

这里以 php7.3 与使用 opcache 缓存为例

apt update && apt install -y php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-opcache php7.3-zip php7.3 php7.3-bz2

# 设置 php

修改 /etc/php7.3/fpm/php.ini , 防止跨目录攻击

sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.3/fpm/php.ini

# 安装 MySQL

考虑之下,这里以安装 Percona Server 8.0 为例

Percona Server 是 MySQl 其中分支,同 MariaDB 一样,拥有完全兼容 MySQL 协议,性能优化等特点。
注意:最好使用 2G 以上运存服务器!若为 1G 左右更推荐安装 MySQL (或 Percona Server) 5.6 及以下版本

# 添加并启动 Percona Server 源

h
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
#清华源
wget https://mirrors.tuna.tsinghua.edu.cn/percona/apt/percona-release_latest.$(lsb_release -sc)_all.deb
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
#国内可替换成清华源
sed -i 's/repo.percona.com/mirrors.tuna.tsinghua.edu.cn\/percona/g' /etc/apt/sources.list.d/percona-release.list 即可
apt update
percona-release setup ps80

# 安装 Percona Server

apt install -y percona-server-server

安装时会弹出设置密码界面,自行设置即可
设置密码

中间会弹出一大堆的文档,OK 即可

然后会弹出加密方法选择页面,推荐选第二个,兼容
传统版本

h
………………………………………
 * Percona Server is distributed with several useful UDF (User Defined Function) from Percona Toolkit.
 * Run the following commands to create these functions:
        mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
        mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
        mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
 * See http://www.percona.com/doc/percona-server/8.0/management/udf_percona_toolkit.html for more details
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.

至此已完成安装,执行 mysql -V 即可查看当前版本

h
root@Martis:~# mysql -V
mysql  Ver 8.0.15-6 for debian-linux-gnu on x86_64 (Percona Server (GPL), Release '6', Revision '63abd08')

# 常用管理命令

Nginx 启动 / 停止 / 重启 systemctl start/stop/restart nginx

php7.3 启动 / 停止 / 重启 systemctl start/stop/restart php7.3-fpm

MySQL 启动 / 停止 / 重启 systemctl start/stop/restart mysql

Nginx 配置路径 /etc/nginx/sites-enabled/*.conf

Nginx 通用配置

x
server { 
             listen 80;
             listen [::]:80;
             root /var/www/example.com;
             index index.php index.html index.htm;
             server_name example.com;
}

开启 php7.3 只需在相应配置中添加伪静态

x
location ~ \.php$ {
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

注:php 版本均以 7.3 为例

更新于 阅读次数