温馨提示×

如何在Ubuntu上使用LNMP开发应用

小樊
51
2025-10-18 08:11:08
栏目: 智能运维

在Ubuntu上使用LNMP开发应用的完整流程

1. 准备工作

  • 更新系统:确保Ubuntu系统为最新状态,避免依赖冲突。
    sudo apt update && sudo apt upgrade -y
    
  • 安装基础工具:安装curlgitunzip等常用工具,方便后续操作。
    sudo apt install -y curl git unzip
    

2. 安装Nginx(Web服务器)

  • 安装Nginx:通过Ubuntu官方源安装稳定版Nginx。
    sudo apt install -y nginx
    
  • 启动并设置开机自启
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  • 验证安装:浏览器访问服务器IP,若看到Nginx默认欢迎页面(如“Welcome to nginx!”),则说明安装成功。

3. 安装MySQL(关系型数据库)

  • 安装MySQL Server:选择最新稳定版(如MySQL 8.0),通过apt快速安装。
    sudo apt install -y mysql-server
    
  • 安全配置:运行mysql_secure_installation脚本,设置root密码、删除匿名用户、禁止远程root登录等。
    sudo mysql_secure_installation
    
  • 登录MySQL
    mysql -u root -p
    
    输入密码后进入MySQL命令行,可创建数据库、用户等(后续开发需用到)。

4. 安装PHP(后端脚本语言)

  • 安装PHP及常用扩展:LNMP环境下需PHP处理动态内容,安装PHP核心、FPM(FastCGI进程管理器)及常用扩展(如mysqlcurlgd)。
    sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
    
  • 配置PHP-FPM:编辑PHP-FPM池配置文件(/etc/php/8.2/fpm/pool.d/www.conf,版本号随PHP版本调整),确保listen路径与Nginx配置一致(如/run/php/php8.2-fpm.sock)。
    sudo nano /etc/php/8.2/fpm/pool.d/www.conf
    
    找到listen = /run/php/php8.2-fpm.sock,取消注释并确认路径正确。
  • 重启PHP-FPM:使配置生效。
    sudo systemctl restart php8.2-fpm
    
  • 验证PHP:创建测试文件/var/www/html/info.php,内容为<?php phpinfo(); ?>,浏览器访问http://服务器IP/info.php,若显示PHP信息页面,则说明安装成功。

5. 配置Nginx支持PHP

  • 编辑Nginx站点配置:修改默认站点配置(/etc/nginx/sites-available/default),添加PHP处理规则。
    sudo nano /etc/nginx/sites-available/default
    
    server块中添加以下location段:
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;  # 路径需与PHP-FPM配置一致
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
  • 测试Nginx配置:避免语法错误导致服务无法启动。
    sudo nginx -t
    
    若输出“syntax is ok”和“test is successful”,则继续下一步。
  • 重启Nginx:使配置生效。
    sudo systemctl restart nginx
    

6. 开发应用的具体步骤

  • 创建项目目录:在/var/www/html下创建应用目录(如myapp),并设置权限。
    sudo mkdir -p /var/www/html/myapp
    sudo chown -R $USER:$USER /var/www/html/myapp  # 将所有者设为当前用户,方便操作
    sudo chmod -R 755 /var/www/html/myapp         # 设置合理权限
    
  • 上传应用代码:通过FTP、Git或SFTP将应用代码(如WordPress、Laravel、自定义PHP项目)上传至/var/www/html/myapp
  • 配置数据库:登录MySQL,创建应用所需的数据库和用户。
    CREATE DATABASE myapp_db;  -- 创建数据库
    CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong_password';  -- 创建用户
    GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';  -- 授权
    FLUSH PRIVILEGES;  -- 刷新权限
    
  • 修改应用配置:编辑应用的配置文件(如WordPress的wp-config.php、Laravel的.env),填入数据库信息(数据库名、用户名、密码)。
  • 访问应用:浏览器访问http://服务器IP/myapp,若配置正确,应用将正常加载。

7. 常见问题排查

  • Nginx无法启动:检查端口80是否被占用(sudo netstat -tuln | grep 80),或Nginx配置文件语法错误(sudo nginx -t)。
  • PHP文件无法解析:确认PHP-FPM服务运行(sudo systemctl status php8.2-fpm),且Nginx配置中的fastcgi_pass路径正确。
  • MySQL连接失败:检查MySQL服务状态(sudo systemctl status mysql),确认用户权限(mysql -u root -p -e "SHOW GRANTS FOR 'myapp_user'@'localhost';")。

通过以上步骤,你已在Ubuntu上成功搭建LNMP环境,可开始开发或部署PHP应用。根据应用需求,还可进一步配置HTTPS(Let’s Encrypt)、伪静态规则(如WordPress的rewrite)、缓存优化等。

0