一、LNMP环境准备与组件安装
LNMP(Linux+Nginx+MySQL+PHP)是动态网站开发的核心环境,需先完成各组件的安装与基础配置。
sudo apt update && sudo apt upgrade -y 或 sudo yum update -y);关闭防火墙(测试阶段,生产环境需配置放行规则)和SELinux(仅CentOS需执行setenforce 0)。sudo apt install nginx -y;CentOS: sudo yum install nginx -y),启动服务并设置开机自启(sudo systemctl start nginx、sudo systemctl enable nginx)。访问服务器IP,若看到Nginx欢迎页面则安装成功。sudo apt install mysql-server -y,CentOS使用sudo yum install mariadb-server -y;启动服务并设置开机自启;运行安全脚本(sudo mysql_secure_installation),设置root密码、删除匿名用户、禁止root远程登录等,提升数据库安全性。sudo apt install php-fpm php-mysql -y;CentOS: sudo yum install php php-fpm php-mysqlnd -y);启动PHP-FPM并设置开机自启。二、配置Nginx支持PHP
Nginx默认不处理PHP文件,需修改配置文件将PHP请求转发给PHP-FPM。
/etc/nginx/sites-available/default,CentOS位于/etc/nginx/conf.d/default.conf;用文本编辑器(如sudo nano)打开文件。server块中,确保index指令包含index.php(index index.php index.html index.htm);添加location ~ \.php$块,内容如下(根据PHP版本调整fastcgi_pass路径,如Ubuntu 22.04使用unix:/run/php/php8.1-fpm.sock,CentOS 8使用unix:/run/php-fpm/www.sock):location ~ \.php$ {
include snippets/fastcgi-php.conf; # Ubuntu(包含FastCGI参数)
# 或 include fastcgi_params; # CentOS(需手动指定SCRIPT_FILENAME)
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # PHP-FPM socket路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 指定脚本路径
}
sudo nginx -t检查配置语法(无错误则继续);重启Nginx使配置生效(sudo systemctl restart nginx)。三、验证PHP与数据库连接
/var/www/html)创建info.php文件(sudo nano /var/www/html/info.php),内容为<?php phpinfo(); ?>;保存后访问http://服务器IP/info.php,若看到PHP信息页面则说明PHP解析正常。sudo mysql -u root -p),执行以下命令创建数据库(如mywebsite)和用户(如webuser),并授权:CREATE DATABASE mywebsite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mywebsite.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
四、部署动态网站应用
以常见动态网站系统(如WordPress、Discuz!)为例,说明部署流程:
/var/www/html/mywebsite);若为压缩包,需解压(unzip wordpress.zip -d /var/www/html/mywebsite)。www-data,Ubuntu)或nginx(CentOS),并设置适当权限(sudo chown -R www-data:www-data /var/www/html/mywebsite、sudo chmod -R 755 /var/www/html/mywebsite)。wp-config.php、Discuz!的config/config_global.php),填入数据库信息(数据库名、用户名、密码、主机,通常为localhost)。http://yourdomain.com),按照安装向导完成后续步骤(如设置管理员账号、选择网站标题)。五、优化与安全配置(可选但重要)
sudo ufw allow 'Nginx Full');CentOS使用firewall-cmd --permanent --add-service=http和firewall-cmd --permanent --add-service=https,然后firewall-cmd --reload。sudo apt install certbot python3-certbot-nginx -y),执行sudo certbot --nginx -d yourdomain.com,按提示完成证书安装;自动配置HTTPS重定向(可选)。/etc/php/8.1/fpm/pool.d/www.conf,CentOS: /etc/php-fpm.d/www.conf),调整pm.max_children(并发处理数)、pm.start_servers(启动时的进程数)等参数,提升性能。通过以上步骤,即可通过LNMP环境实现动态网站开发与部署。后续可根据业务需求安装插件(如WordPress插件)、优化数据库(如索引)或扩展功能(如缓存、CDN)。