yanhy的学习记录匣 - 2022年5月 探索知识的宝箱,记录成长的脚步。欢迎来访Yanhy的博客站,在这里,每一页都是对知识无尽好奇的见证,每个故事都是学习旅程中的珍贵篇章,一起激发灵感,分享进步 2022-05-22T05:39:00+08:00 Typecho https://yanhy.top/index.php/feed/atom/2022/05/ <![CDATA[Debian10系统下LNMP三件套安装与配置——MySQL篇]]> https://yanhy.top/index.php/archives/241/ 2022-05-22T05:39:00+08:00 2022-05-22T05:39:00+08:00 yanhy2000 https://yanhy.top

近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用PHP函数、安装模块、资源性能分配等),环视了一圈服务器面板也没有找到中意的,不是限制太多就是自身占用过大,因此决定自己搭建配置LNMP三件套来部署网站程序,以达到最佳性能与最小损耗...

上期文章: Debian10系统下LNMP三件套安装与配置——Nginx与初始环境篇

LNMP环境包之‘M’——MySQL

本文将使用手动安装MySQL的方式来介绍流程。

下载软件包

MySQL社区版官网下载地址: MySQL Community Downloads

进入网站,选择系统版本(以本文Debian 10.2为例):

mysql下载1.png

接下来直接点击第一行的 DEB Bundle 右侧下载按钮进入下载页面,无需注册登录账户,直接点击最下方"No thanks, just start my download."即可获取到下载链接,也可以右键复制该超链接,进入SSH使用wegt下载该链接
mysql下载2.png

安装软件包

MySQL 8.9.29下载直链:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar

新建文件夹并将下载的tar包移动进去,因为解压会解压出大量依赖与组件包:

mkdir mysql && cd mysql
tar -xvf mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar
rm mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar

之后可以在目录里面看到一堆MySQL相关的软件包:

mysql安装1.png

注意:MySQL手动安装软件包是需要顺序的,否则会报错提醒MySQL-xxx未安装(顺序不一定完全一致,此处为个人经验)

dpkg -i mysql-common_8.0.29-1debian10_amd64.deb
apt install libmecab2 libnuma1
dpkg -i mysql-community-server-core_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client-plugins_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client-core_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client_8.0.29-1debian10_amd64.deb
dpkg -i mysql-client_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-server_8.0.29-1debian10_amd64.deb

安装完最后一个软件包后,会自动弹出配置窗口,一般情况下第一个页面是需要设置root密码,输入后回车;第二个页面为确认密码,重新输入一次;第三页选择Use Strong Password Encryption (RECOMMENDED)

mysql安装2.png

最后查看版本号,如果输出正常即为安装成功

mysql -V

类似输出:mysql Ver 8.0.29 for Linux on x86_64 (MySQL Community Server - GPL)

设置开机自启

在一些平台上,MySQL进程名一般为mysqld,但是在Debian 10系统环境下,暂不知道是版本问题还是环境问题,这里使用的进程名字是mysql

设置开机启动,并手动启动mysql,最后查看运行状态,如无报错即为运行正常

systemctl enable mysql
systemctl start mysql
systemctl status mysql

配置MySQL

执行以下命令,执行 MySQL 安全性操作并设置密码(如果前面有设置的话,这步里面设置密码环节可以跳过)

mysql_secure_installation

输入指令后,根据下面流程进行配置:

  • 输入root密码启动配置流程
  • 输入 y 并按 Enter 开始相关配置
  • 选择密码验证策略强度,建议选择高强度的密码验证策略。输入 2 并回车

    • 0:表示低
    • 1:表示中
    • 2:表示高
  • 设置root的密码,如上面配置界面有设置的话,可直接回车忽略进行下一步
  • 设置是否移除匿名用户,为了安全性,输入 y 移除匿名用户
  • 设置是否禁止使用root用户远程登录,输入 y 禁止root远程登录
  • 设置是否删除test数据库以及权限,正式环境下不需要这个数据库,输入 y 删除即可
  • 重新加载授权表,输入 y 即可

以下为测试环境下的配置流程图:
mysql配置流程图.png

有关数据库的操作与用户的增删,本文不再详细描述。

]]>
<![CDATA[Debian10系统下LNMP三件套安装与配置——Nginx与初始环境篇]]> https://yanhy.top/index.php/archives/231/ 2022-05-22T04:37:00+08:00 2022-05-22T04:37:00+08:00 yanhy2000 https://yanhy.top

近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用PHP函数、安装模块、资源性能分配等),环视了一圈服务器面板也没有找到中意的,不是限制太多就是自身占用过大,因此决定自己搭建配置LNMP三件套来部署网站程序,以达到最佳性能与最小损耗...

预备

LNMP是一种用于配置网站前端程序的运行环境组合。‘L’指Linux系统环境,‘N’指Nginx,‘M’指MySQL或者MariaDB数据库,‘P’指PHP程序。类似的环境组合还有LAMP,该包使用Apache作为网页服务器驱动程序,与Nginx相比占用较大但是相对稳定,但是近年来搭建小型网站项目依然是Nginx更加流行。

此处我预备的环境版本为:

Linux = Debian 10.2 64bit
Nginx = 稳定版1.20.2
MySQL = 8.0.29
PHP = 8.1/7.4

服务器使用腾讯云的香港区域服务器,配置为2C2G,搭建小型网站性能足够使用

LNMP环境包之‘L’——Linux

服务器使用腾讯云提供的纯净Debian 10.2镜像,无预装其他环境

安装linux系统.png

进入系统后先更新软件包:

apt update
apt upgrade

由于腾讯云的服务器都是预置好软件源的,因此购买大厂的机器后一般无需手动换源即可开箱即用

LNMP环境包之‘N’——Nginx

本文使用的Nginx版本官网下载链接(适用于Debian buster系统): nginx_1.20.2-1~buster_amd64.deb

CentOS 8系统Nginx下载链接: nginx-1.20.2-1.el8.ngx.x86_64.rpm

其他系统或者版本下载链接可见列表: http://nginx.org/packages/

安装步骤

通过SSH连接至服务器,并获取root权限:

su

下载Nginx 1.20.2软件安装包(下载链接可根据自己的系统环境从上方列表查找),本文以Debian 10.2为例:

wget http://nginx.org/packages/debian/pool/nginx/n/nginx/nginx_1.20.2-1~buster_amd64.deb

安装Nginx软件包:

dpkg -i nginx_1.20.2-1~buster_amd64.deb

安装完成后查看版本:

nginx -v

如果显示为nginx version: nginx/1.20.2即为安装成功,删除软件包即可

初始化配置

Nginx的配置文件一般存放于/etc/nginx/conf.d/文件夹内,编辑里面的文件即可

默认网站配置文件名为default.conf,使用nano编辑器进行初始配置:

nano /etc/nginx/conf.d/default.conf

文件内容有这几处需要修改:

在"location"项的index内需要添加 index.php ,root项内的路径可指定好也可保持默认,后面配置网页时可再修改。如图所示:

nginx配置文件修改1.png

找到"location ~ .php$"项,将其与大括号内的内容注释取消掉,并修改:

  • root项指定好网站根目录
  • 修改 fastcgi_pass 项为 unix:/run/php-fpm/www.sock;,Nginx 通过 UNIX 套接字与 PHP-FPM 建立联系,该配置与 /etc/php-fpm.d/www.conf 文件内的 listen 配置一致。
  • fastcgi_param SCRIPT_FILENAME 后的 /scripts$fastcgi_script_name; 替换为 $document_root$fastcgi_script_name;

修改完成后如下图所示:

nginx配置文件修改2.png

按Ctrl+O写入文件,Ctrl+X退出编辑

最后将Nginx配置为开机启动即可:

systemctl start nginx
systemctl enable nginx

验证配置

本文修改后的配置文件如图:

nginx安装验证.png

由于测试所用的为一个静态页面,因此只需要指定根目录与域名即可。另存为test.conf,重启Nginx,检查无报错后所用浏览器访问域名,网页加载正常,说明Nginx配置验证成功。

拓展:多网站配置

如果要配置多个网站,只需要在域名服务商多解析几个到服务器IP的域名,然后将/etc/nginx/conf.d/default.conf文件重复拷贝作为模板使用,每次修改完配置文件,需要重新启动Nginx服务使其生效,同时要确保Nginx没有报错。

在配置文件时,只需要使location项内的root所指定的网站根目录不相同、server_name所指定的域名不相同,即可通过不同域名访问到不同站点根目录的index文件。

反代、伪静态本文暂且不提及。

]]>