主机部署LNMP
- 2025-06-15 15:55:00
- 丁国栋
- 原创 49
在开始之前我们精确了解几个相关的概念。
- 部署(deployment)将软件系统(代码、配置、资源等)发布到目标环境(如服务器、云平台或设备)并使其可运行的过程,这个过程可以是人工手动完成的也可以是程序自动完成的。
- 制备 (Provisioning) 是为系统准备基础设施资源(硬件、网络、存储等)或软件环境的过程。制备是准备环境,部署是发布软件到已准备好的环境。
- 主机 (Host)是能提供服务或运行应用程序的具有完整操作系统的计算机,它可能是物理机也可以是虚拟机还可以是云主机,因此有物理主机、虚拟主机和云主机几种。
- 节点 (Node)是分布式系统或集群中的单个成员单元,可能是物理或虚拟的。
- 环境 (Environment)是软件运行所需的配置和资源的集合。
- 运行时 (Runtime)是软件执行期间所需的底层支持环境,包括库、虚拟机等,例如语言运行时、容器运行时、框架运行时等等。
一般在开始之前我们需要收集一下服务器的基础配置,包括CPU、内存、磁盘空间、带宽等等。
其他因素也值得思考:
- 是否匹配服务或者系统架构(整体层面、全局层面),服务器是独立使用还是混合使用;
- 服务器的快照、异地备份等;
- 是否考虑容器化部署;
指导性原则:
- 高可维护性,必须易于维护;
- 标准化原则,尽量不破坏已有的系统设计,例如尽量使用包管理器安装,规范使用目录名称和目录结构等;
- 尽可能可以通过脚本、自动化部署工具完成,自定义的内容需要提前规划和设定;
- 充分长远考虑,例如考虑数据增长可能对磁盘空间产生较多的消耗需要考虑空间可扩容;
安装数据库
apt install mariadb-server || apt install mysql-server
创建帐号和配置权限
最佳实践:一般来说可以一个数据库对应一个或多个帐号,每个应用的帐号需要单独设置,不要多个应用混用同一个帐号,避免权限逃逸。
CREATE USER app@localhost IDENTIFIED BY 'myplainpassword'; GRANT ALL PRIVILEGES ON mydb.* TO app@localhost; FLUSH PRIVILEGES;
安装PHP
apt install php-fpm php-curl php-xml php-mbstring php-common php-mysql php-bcmath php-zip php-redis php-pear php-gd
安装完成后调整php.ini配置并重新加载配置
安装 Nginx
apt install nginx
创建站点配置文件
server { listen 443 ssl; server_name example.thed.cc; root /var/www/html/example.thedf.cc/public; index index.php index.html; ssl_certificate /root/.acme.sh/thedf.cc_ecc/fullchain.cer; ssl_certificate_key /root/.acme.sh/thedf.cc_ecc/thedf.cc.key; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php(.*)$ { fastcgi_pass unix:/run/php/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $request_uri; include /etc/nginx/fastcgi.conf; } access_log /var/log/nginx/example.thed.cc.access.log; error_log /var/log/nginx/example.thed.cc.error.log; }
验证安装
发表评论