一、LNMP环境准备
在部署网站前,需确保服务器已安装Linux操作系统(推荐Ubuntu/CentOS)、具备远程连接工具(如XShell、SecureCRT),并更新系统至最新版本:sudo apt update && sudo apt upgrade -y
(Ubuntu)或sudo yum update -y
(CentOS)。
二、安装Nginx(Web服务器)
sudo apt install nginx -y
(Ubuntu)或sudo yum install nginx -y
(CentOS)。sudo systemctl start nginx
,并设置开机自启sudo systemctl enable nginx
。三、安装MySQL/MariaDB(数据库)
sudo apt install mysql-server -y
(Ubuntu)或sudo yum install mariadb-server -y
(CentOS)。sudo mysql_secure_installation
,按提示设置root密码、移除匿名用户、禁止root远程登录等,增强数据库安全性。sudo systemctl start mysql
(Ubuntu)或sudo systemctl start mariadb
(CentOS),并设置开机自启sudo systemctl enable mysql
。四、安装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解析等)。/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设置。sudo systemctl start php版本-fpm
(如sudo systemctl start php8.1-fpm
),并设置开机自启sudo systemctl enable php版本-fpm
。五、配置Nginx支持PHP
sudo nano /etc/nginx/sites-available/default
(或自定义配置文件,如/etc/nginx/sites-available/yourdomain.conf
)。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;
}
sudo nginx -t
检查配置语法,若无错误,执行sudo systemctl reload nginx
使配置生效。六、创建网站目录与上传文件
/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
scp -r local_folder user@server_ip:/var/www/html/yourdomain.com
)或SFTP将网站文件(如WordPress、HTML静态页面)上传至上述目录。七、配置数据库(动态网站必需)
sudo mysql -u root -p
,输入root密码登录。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
wp-config.php
),填入数据库信息:define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_username');
define('DB_PASSWORD', 'strong_password');
define('DB_HOST', 'localhost');
八、测试网站访问
info.php
文件(sudo nano /var/www/html/yourdomain.com/info.php
),内容为<?php phpinfo(); ?>
,保存后访问http://your_server_ip/info.php
,若看到PHP信息页面,则说明PHP解析正常。http://your_server_ip
(或域名,若已绑定),若看到网站首页或预期内容,则部署成功。九、配置防火墙(可选但推荐)
sudo ufw allow 'Nginx Full'
(允许HTTP端口80和HTTPS端口443),然后启用防火墙:sudo ufw enable
。sudo ufw status
,确认规则已生效。十、配置SSL证书(可选但强烈推荐)
为提升网站安全性,建议使用Let’s Encrypt免费获取SSL证书,实现HTTPS加密:
sudo apt install certbot python3-certbot-nginx -y
(Ubuntu)或sudo yum install certbot python3-certbot-nginx -y
(CentOS)。sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
(替换为你的域名),按提示完成证书安装。sudo certbot renew --dry-run
测试续期流程。