如何在Ubuntu上安装LNMP组件
导读:在 Ubuntu 上安装 LNMP 组件 一 环境准备与版本选择 更新索引并准备基础工具:sudo apt update && sudo apt install -y curl wget gnupg2 ca-certifi...
在 Ubuntu 上安装 LNMP 组件
一 环境准备与版本选择
- 更新索引并准备基础工具:sudo apt update & & sudo apt install -y curl wget gnupg2 ca-certificates lsb-release
- 选择组件版本:
- Nginx:可用系统仓库或官方 mainline 仓库(推荐获取新特性)
- 数据库:二选一,MySQL 8.0 或 MariaDB 10.5+
- PHP:选择与项目兼容的版本(如 PHP 8.1/8.2/8.3),并安装对应的 FPM 与扩展(如 php-fpm、php-mysql、php-curl、php-gd、php-mbstring、php-xml、php-zip)
二 安装与配置步骤
- 安装 Nginx
- 官方 mainline 源方式(推荐):
- curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
- echo “deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list
- sudo apt update & & sudo apt install -y nginx
- 系统仓库方式:sudo apt install -y nginx
- 启动与开机自启:sudo systemctl start nginx & & sudo systemctl enable nginx
- 防火墙放行:sudo ufw allow ‘Nginx Full’(如启用 UFW)
- 官方 mainline 源方式(推荐):
- 安装数据库(二选一)
- MySQL 8.0:
- sudo apt install -y mysql-server
- sudo systemctl start mysql & & sudo systemctl enable mysql
- 安全初始化:sudo mysql_secure_installation
- MariaDB 10.5+:
- sudo apt install -y mariadb-server mariadb-client
- sudo systemctl start mariadb & & sudo systemctl enable mariadb
- 安全初始化:sudo mysql_secure_installation
- MySQL 8.0:
- 安装 PHP 与 FPM
- Ubuntu 22.04+ 常见版本可直接安装(示例为 PHP 8.1):
- sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip
- 旧版本或需要多版本共存时可用 ondrej/php PPA:
- sudo add-apt-repository ppa:ondrej/php
- sudo apt update
- sudo apt install -y php8.1 php8.1-fpm php8.1-mysql …(按需增减扩展)
- 启动与开机自启:sudo systemctl start php8.1-fpm & & sudo systemctl enable php8.1-fpm
- Ubuntu 22.04+ 常见版本可直接安装(示例为 PHP 8.1):
- 配置 Nginx 处理 PHP
- 编辑站点配置(示例):sudo nano /etc/nginx/sites-available/default
- 在 server 块中加入或修改:
- location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 路径随 PHP 版本变化 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
- 检查并重载:sudo nginx -t & & sudo systemctl reload nginx
- 验证安装
- 创建测试文件:echo “” | sudo tee /var/www/html/info.php
- 浏览器访问:http://服务器IP/info.php,看到 PHP 信息页即成功
三 常用管理与排错
- 服务管理
- Nginx:sudo systemctl start|stop|restart|reload|status nginx
- PHP-FPM:sudo systemctl start|stop|restart|reload|status php8.1-fpm
- MySQL/MariaDB:sudo systemctl start|stop|restart|status mysql(或 mariadb)
- 查看与确认版本
- Nginx:nginx -v;PHP:php -v;数据库:mysql -V 或 mariadb -V
- 常见问题
- 403/404:检查 root 目录权限与 index 指令,确认 /var/www/html 可访问
- PHP 不解析:确认 Nginx 的 location ~ .php$ 配置存在且 fastcgi_pass 指向正确的 php-fpm.sock;执行 sudo nginx -t 检查语法
- 端口占用:sudo lsof -i:80 或 ss -tulpen | grep ‘:80’,释放占用进程后再启动 Nginx
四 安全与性能建议
- 数据库安全:完成 mysql_secure_installation,设置强密码,按需禁用远程 root、删除匿名用户与测试库
- 防火墙:仅开放必要端口(HTTP/HTTPS),生产环境建议启用 UFW 或云安全组策略
- PHP 安全与性能:
- 关闭暴露信息的页面:生产环境删除或限制访问 /var/www/html/info.php
- 启用 OPcache:在 php.ini 中设置 opcache.enable=1,并按需调整 opcache.memory_consumption 等参数
- Nginx 优化:开启 Gzip、静态资源缓存、限制请求方法、设置安全响应头(如 X-Frame-Options、X-Content-Type-Options)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上安装LNMP组件
本文地址: https://pptw.com/jishu/772486.html
