From:https://u.sb/debian-install-nginx-php-mysql/

本文将介绍使用官方源和第三方源在 Debian 12 和 Ubuntu 22.04 安装最新版 Nginx + PHP + MySQL 的教程,并且可以自行选择 PHP 版本。

PS:本文同时适用于 Debian 11 Bullseye,Debian 10 Buster,Ubuntu 20.04 Focal 以及 Ubuntu 22.04 Jammy

以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。

1、更新系统并安装部分必要软件

如果您通过 iso 方式安装 Debian 12 并且设置了 root 密码,则默认不带 sudo 包,使用 apt install sudo 安装即可

2、增加烧饼博客打包的 Nginx 源并安装

这里我们推荐烧饼博客团队打包的 Nginx 源,这货是会官方 Nginx 打包组的基础上,保持更新最新版本的 Nginx 以及 OpenSSL。

2.1 首先增加 Key

2.2 然后增加 Nginx 源

国内机器可以用清华 TUNA 的国内源:

2.3 接着更新并安装 Nginx

安装完毕后,我们可以使用 nginx -V 命令看到 Nginx 已经是最新的 1.25.2 主线版了:

3、增加 Ondřej Surý 大神打包的 PHP 源并安装 PHP 8.x

Ondřej Surý 大佬打包的 PHP 源更好用,Ubuntu 的 PPA for PHP 就是这位大佬做的,当然少不了 Debian 的源了,下面一步一步来。

3.1 Debian 和 Ubuntu 安装 LEMP 区别

唯一区别就是 PHP 的安装添加源方法不一样,其他的步骤都一毛一样。

3.2 加入大神做好的源

Debian
Ubuntu

3.3 更新系统

3.4 安装自己需要的 PHP 版本

这个源目前默认的 PHP 是 8.2.x,如果您需要 8.1.x 或 8.0.x 或 7.x 或 5.6.x 那么请修改对应的 PHP 版本号 (注意配置文件哦)。

这里举例 WordPress 需要的部分 PHP 包:

安装 PHP 8.2.x:

安装 PHP 8.1.x:

安装 PHP 8.0.x:

以下版本 PHP 已经 EOL,PHP 官方不再提供支持,请尽快更新您的程序兼容最新的 PHP,如果您的程序还未兼容,建议鞭策开发者

安装 PHP 7.4.x:

安装 PHP 7.3.x:

安装 PHP 7.2.x (PHP 7.2 开始已经不支持 mcrypt 组件):

安装 PHP 7.1.x:

安装 PHP 7.0.x:

安装 PHP 5.6.x:

如果希望安装其他组件,可以通过搜索看看有没有对应的包:

修改 php.ini 防止跨目录攻击,如果安装的 PHP 8.2.x 请修改 /etc/php/8.2/fpm/php.ini PHP 7.4.x 请对应修改 /etc/php/7.4/fpm/php.ini

修改 php.ini 增加上传大小限制,比如我们设置 10MB:

您也可以同时安装多个 PHP 版本,然后使用以下命令选择系统默认的 PHP 版本:

3.5 重启 PHP 和 Nginx

对应 PHP 7.4.x 命令如下:

Nginx 参考配置文件如下,新建立个 /etc/nginx/sites-available/example.com.conf

然后把这个配置文件软链接到 /etc/nginx/sites-enabled 目录使其生效:

到这里基本没有问题,可以直接重新加载 Nginx:

或者暴力点直接重启 Nginx:

我们的目录在 /var/www/example.com,我们先创建这个目录:

然后创建一个 phpinfo.php 并输入 phpinfo() 函数:

好了,此时在浏览器输入 http://example.com/phpinfo.php,如果看到经典的 phpinfo 页面则说明安装成功,如果不成功,请仔细对比步骤查找哪里出错。

效果如下:

Debian Install LEMP PHPINFO

4、安装 MariaDB

自从 Debian 9.x Stretch 开始,Debian 已经默认使用 Mariadb,所以我们不做对于 MySQL 和 MariaDB 的争论,直接跟着开源社区走即可。

4.1 首先,添加并导入 Mariadb 的官方源

下载 GPG Key:

然后添加 MariaDB 的源:

Debian
Ubuntu

国内可以用清华 TUNA 的源:

Debian
Ubuntu

您也可以在这儿找到更多的 MariaDB 源。

4.2 接着更新一下系统

4.3 然后直接安装最新稳定版 MariaDB

安装完毕后强烈推荐使用 mysql_secure_installation 命令做一次安全设置。

4.4 创建数据库并测试

开启数据库之前,您可以使用 pwgen 这个小工具或者随机密码生成器生成一个强大的随机密码,比如 32 位,然后随意挑选一个使用

使用 MySQL root 用户登陆,因为默认使用 Unix domain socket 模式,所以本机不需要 MySQL root 密码即可登录:

创建数据库 example_database

创建用户名 example_user 并赋予权限:

刷新 MySQL 权限:

没问题以后就可以退出了:

新建立一个 /var/www/example.com/mysql-test.php 文件并测试:

创建完毕后访问 http://example.com/mysql-test.php 如果出现 MySQL is working fine. There are no tables. 则说明 MariaDB 工作正常。

5、安装 MySQL 8.0 (可选)

如果您必须使用某些 MySQL 8.0 才有的功能,那么可以按照 MySQL 官网的教程安装 MySQL 8.0。

*注意:*除非您知道您在做什么,否则不要同时安装 MySQL 和 MariaDB。

5.1 添加 apt 源

国内的机器可以在添加完成后修改为清华 TUNA 源,您可以修改 /etc/apt/sources.list.d/mysql-community.list 文件,替换成如下内容:

5.2 安装 MySQL 8.0

默认 MySQL 会安装最新的 8.0 版本,如果您需要更低的版本,比如 5.6 或 5.7,可以使用如下命令:

您可能需要设置一个强大的 root 密码,接下来的步骤和 MariaDB 相同,不再赘述。

好了,以上就是基本的 Debian 12.x “bookworm” 安装最新版 LEMP 的教程,如有问题可以随时发评论留言讨论。