linux

LNMP环境下如何部署网站

小樊
36
2025-09-22 17:24:25
栏目: 云计算

一、LNMP环境准备
在部署网站前,需确保服务器已安装Linux操作系统(推荐Ubuntu/CentOS)、具备远程连接工具(如XShell、SecureCRT),并更新系统至最新版本:sudo apt update && sudo apt upgrade -y(Ubuntu)或sudo yum update -y(CentOS)。

二、安装Nginx(Web服务器)

  1. 安装Nginx:执行sudo apt install nginx -y(Ubuntu)或sudo yum install nginx -y(CentOS)。
  2. 启动与自启:启动Nginx服务sudo systemctl start nginx,并设置开机自启sudo systemctl enable nginx
  3. 验证安装:浏览器访问服务器IP地址,若看到Nginx默认欢迎页面,则说明安装成功。

三、安装MySQL/MariaDB(数据库)

  1. 安装数据库:执行sudo apt install mysql-server -y(Ubuntu)或sudo yum install mariadb-server -y(CentOS)。
  2. 安全配置:运行sudo mysql_secure_installation,按提示设置root密码、移除匿名用户、禁止root远程登录等,增强数据库安全性。
  3. 启动与自启:启动数据库服务sudo systemctl start mysql(Ubuntu)或sudo systemctl start mariadb(CentOS),并设置开机自启sudo systemctl enable mysql

四、安装PHP及扩展(后端语言)

  1. 安装PHP及扩展:执行sudo apt install php-fpm php-mysql php-xml php-curl php-gd -y(Ubuntu)或sudo yum install php-fpm php-mysqlnd php-xml php-curl php-gd -y(CentOS),安装PHP核心及常用扩展(如MySQL连接、XML解析等)。
  2. 配置PHP-FPM:编辑PHP-FPM配置文件(路径:/etc/php/版本/fpm/pool.d/www.conf,如/etc/php/8.1/fpm/pool.d/www.conf),找到listen行,确保其值为unix:/run/php/php版本-fpm.sock(如unix:/run/php/php8.1-fpm.sock),以匹配Nginx的FastCGI设置。
  3. 启动与自启:启动PHP-FPM服务sudo systemctl start php版本-fpm(如sudo systemctl start php8.1-fpm),并设置开机自启sudo systemctl enable php版本-fpm

五、配置Nginx支持PHP

  1. 编辑站点配置文件:打开Nginx默认站点配置文件sudo nano /etc/nginx/sites-available/default(或自定义配置文件,如/etc/nginx/sites-available/yourdomain.conf)。
  2. 修改PHP处理块:在server块内找到location ~ \.php$部分,替换为以下内容(确保fastcgi_pass路径与PHP-FPM的listen值一致):
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php版本-fpm.sock;  # 如php8.1-fpm.sock
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
  3. 测试与重载Nginx:执行sudo nginx -t检查配置语法,若无错误,执行sudo systemctl reload nginx使配置生效。

六、创建网站目录与上传文件

  1. 创建网站目录:为网站创建专用目录(如/var/www/html/yourdomain.com),并设置正确权限:
    sudo mkdir -p /var/www/html/yourdomain.com
    sudo chown -R www-data:www-data /var/www/html/yourdomain.com  # www-data为Nginx默认用户
    sudo chmod -R 755 /var/www/html/yourdomain.com
    
  2. 上传网站文件:通过FTP(如FileZilla)、SCP(scp -r local_folder user@server_ip:/var/www/html/yourdomain.com)或SFTP将网站文件(如WordPress、HTML静态页面)上传至上述目录。

七、配置数据库(动态网站必需)

  1. 登录MySQL:执行sudo mysql -u root -p,输入root密码登录。
  2. 创建数据库与用户
    CREATE DATABASE your_database_name;  -- 创建数据库(如wordpress)
    CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'strong_password';  -- 创建用户(如wp_user)
    GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';  -- 授权用户对数据库的所有权限
    FLUSH PRIVILEGES;  -- 刷新权限
    EXIT;  -- 退出MySQL
    
  3. 配置网站数据库连接:编辑网站的配置文件(如WordPress的wp-config.php),填入数据库信息:
    define('DB_NAME', 'your_database_name');
    define('DB_USER', 'your_username');
    define('DB_PASSWORD', 'strong_password');
    define('DB_HOST', 'localhost');
    

八、测试网站访问

  1. 验证PHP解析:在网站根目录创建info.php文件(sudo nano /var/www/html/yourdomain.com/info.php),内容为<?php phpinfo(); ?>,保存后访问http://your_server_ip/info.php,若看到PHP信息页面,则说明PHP解析正常。
  2. 访问网站:直接访问http://your_server_ip(或域名,若已绑定),若看到网站首页或预期内容,则部署成功。

九、配置防火墙(可选但推荐)

  1. 允许HTTP/HTTPS流量:使用UFW(Uncomplicated Firewall)设置规则:sudo ufw allow 'Nginx Full'(允许HTTP端口80和HTTPS端口443),然后启用防火墙:sudo ufw enable
  2. 验证防火墙状态:执行sudo ufw status,确认规则已生效。

十、配置SSL证书(可选但强烈推荐)
为提升网站安全性,建议使用Let’s Encrypt免费获取SSL证书,实现HTTPS加密:

  1. 安装Certbot:执行sudo apt install certbot python3-certbot-nginx -y(Ubuntu)或sudo yum install certbot python3-certbot-nginx -y(CentOS)。
  2. 获取证书:执行sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com(替换为你的域名),按提示完成证书安装。
  3. 自动续期:Certbot会自动配置cron任务续期证书,也可手动执行sudo certbot renew --dry-run测试续期流程。

0
看了该问题的人还看了