yanhy的学习记录匣 - 2022年5月
https://yanhy.top/index.php/2022/05/
探索知识的宝箱,记录成长的脚步。欢迎来访Yanhy的博客站,在这里,每一页都是对知识无尽好奇的见证,每个故事都是学习旅程中的珍贵篇章,一起激发灵感,分享进步
-
Debian10系统下LNMP三件套安装与配置——MySQL篇
https://yanhy.top/index.php/archives/241/
2022-05-22T05:39:00+08:00
近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用PHP函数、安装模块、资源性能分配等),环视了一圈服务器面板也没有找到中意的,不是限制太多就是自身占用过大,因此决定自己搭建配置LNMP三件套来部署网站程序,以达到最佳性能与最小损耗...上期文章: Debian10系统下LNMP三件套安装与配置——Nginx与初始环境篇LNMP环境包之‘M’——MySQL本文将使用手动安装MySQL的方式来介绍流程。下载软件包MySQL社区版官网下载地址: MySQL Community Downloads进入网站,选择系统版本(以本文Debian 10.2为例):接下来直接点击第一行的 DEB Bundle 右侧下载按钮进入下载页面,无需注册登录账户,直接点击最下方"No thanks, just start my download."即可获取到下载链接,也可以右键复制该超链接,进入SSH使用wegt下载该链接安装软件包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手动安装软件包是需要顺序的,否则会报错提醒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 -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 即可以下为测试环境下的配置流程图:有关数据库的操作与用户的增删,本文不再详细描述。
-
Debian10系统下LNMP三件套安装与配置——Nginx与初始环境篇
https://yanhy.top/index.php/archives/231/
2022-05-22T04:37:00+08:00
近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用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镜像,无预装其他环境进入系统后先更新软件包:apt update
apt upgrade由于腾讯云的服务器都是预置好软件源的,因此购买大厂的机器后一般无需手动换源即可开箱即用LNMP环境包之‘N’——Nginx本文使用的Nginx版本官网下载链接(适用于Debian buster系统): nginx_1.20.2-1~buster_amd64.debCentOS 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项内的路径可指定好也可保持默认,后面配置网页时可再修改。如图所示:找到"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;。修改完成后如下图所示:按Ctrl+O写入文件,Ctrl+X退出编辑最后将Nginx配置为开机启动即可:systemctl start nginx
systemctl enable nginx验证配置本文修改后的配置文件如图:由于测试所用的为一个静态页面,因此只需要指定根目录与域名即可。另存为test.conf,重启Nginx,检查无报错后所用浏览器访问域名,网页加载正常,说明Nginx配置验证成功。拓展:多网站配置如果要配置多个网站,只需要在域名服务商多解析几个到服务器IP的域名,然后将/etc/nginx/conf.d/default.conf文件重复拷贝作为模板使用,每次修改完配置文件,需要重新启动Nginx服务使其生效,同时要确保Nginx没有报错。在配置文件时,只需要使location项内的root所指定的网站根目录不相同、server_name所指定的域名不相同,即可通过不同域名访问到不同站点根目录的index文件。反代、伪静态本文暂且不提及。