centos lnmp如何配置虚拟主机
导读:CentOS LNMP配置虚拟主机步骤 1. 前提条件:安装LNMP基础环境 在配置虚拟主机前,需确保已安装Nginx、MySQL/MariaDB、PHP及PHP-FPM。若未安装,可通过以下命令快速部署(以CentOS 7/8为例): #...
CentOS LNMP配置虚拟主机步骤
1. 前提条件:安装LNMP基础环境
在配置虚拟主机前,需确保已安装Nginx、MySQL/MariaDB、PHP及PHP-FPM。若未安装,可通过以下命令快速部署(以CentOS 7/8为例):
# 安装EPEL仓库(可选,用于扩展软件包)
sudo yum install epel-release -y
# 安装Nginx
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
# 安装MariaDB(或MySQL)
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation # 运行安全脚本,设置root密码
# 安装PHP及常用扩展
sudo yum install php php-fpm php-mysqlnd php-gd php-xml -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
2. 创建虚拟主机配置文件
LNMP一键安装包(若使用)会默认将虚拟主机配置存放在/usr/local/nginx/conf/vhost/
目录下;手动安装则通常在/etc/nginx/conf.d/
目录下创建配置文件。
以example.com
为例,执行以下命令创建配置文件:
sudo vi /etc/nginx/conf.d/example.com.conf
写入以下内容(按需修改域名、目录):
server {
listen 80;
server_name example.com www.example.com;
# 替换为你的域名
root /var/www/example.com/html;
# 网站根目录(需提前创建)
index index.php index.html index.htm;
# 前端路由处理
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP处理
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
# PHP-FPM监听socket(默认路径)
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# 禁止访问.htaccess文件
location ~ /\.ht {
deny all;
}
}
3. 创建网站目录并设置权限
# 创建网站根目录
sudo mkdir -p /var/www/example.com/html
# 设置目录所有者(Nginx默认用户为nginx,若使用其他用户需调整)
sudo chown -R nginx:nginx /var/www/example.com
# 设置目录权限
sudo chmod -R 755 /var/www/example.com
# 创建测试页面
echo "<
?php phpinfo();
?>
" | sudo tee /var/www/example.com/html/index.php
4. 测试Nginx配置并重载
# 测试配置文件语法
sudo nginx -t
# 若输出“syntax is ok”则表示配置正确
# 重载Nginx使配置生效
sudo systemctl reload nginx
5. 配置DNS解析
将域名example.com
和www.example.com
的A记录指向服务器IP(需在域名注册商或DNS管理平台操作)。
测试访问:在浏览器输入http://example.com
,应显示PHP信息页面。
6. 可选:配置SSL证书(启用HTTPS)
使用Let’s Encrypt免费证书,执行以下命令:
# 安装Certbot工具
sudo yum install certbot python2-certbot-nginx -y
# 获取并安装证书
sudo certbot --nginx -d example.com -d www.example.com
# 按提示完成验证,证书会自动配置到Nginx中
# 设置证书自动续期(Let's Encrypt有效期90天)
sudo systemctl enable certbot.timer
注意事项
- 若使用LNMP一键安装包,也可通过
./vhost.sh
脚本快速添加虚拟主机(按提示输入域名、目录等信息)。 - 确保PHP-FPM的
listen
参数与Nginx配置中的fastcgi_pass
一致(默认均为/run/php-fpm/www.sock
)。 - 防火墙需开放HTTP(80)和HTTPS(443)端口:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos lnmp如何配置虚拟主机
本文地址: https://pptw.com/jishu/727395.html