在CentOS上设置LNMP(Linux, Nginx, MySQL/MariaDB, PHP)虚拟主机的步骤如下:
首先,确保你已经安装了Nginx。如果没有安装,可以使用以下命令进行安装:
sudo yum install epel-release
sudo yum install nginx
启动Nginx并设置开机自启动:
sudo systemctl start nginx
sudo systemctl enable nginx
接下来,安装MySQL或MariaDB。这里以MariaDB为例:
sudo yum install mariadb-server mariadb
启动MariaDB并设置开机自启动:
sudo systemctl start mariadb
sudo systemctl enable mariadb
运行安全脚本以设置root密码和其他安全选项:
sudo mysql_secure_installation
安装PHP及其相关模块:
sudo yum install php php-fpm php-mysqlnd
启动PHP-FPM并设置开机自启动:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
编辑Nginx配置文件以添加虚拟主机。假设你要为域名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;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
保存并退出编辑器。
创建网站根目录并添加一些示例文件:
sudo mkdir -p /var/www/example.com/html
sudo chown -R nginx:nginx /var/www/example.com
sudo chmod -R 755 /var/www/example.com
echo "Hello, World!" | sudo tee /var/www/example.com/html/index.php
测试Nginx配置文件是否有语法错误:
sudo nginx -t
如果没有错误,重新加载Nginx以应用更改:
sudo systemctl reload nginx
确保你的域名example.com
指向你的服务器IP地址。你可以在你的域名注册商的管理面板中进行设置。
确保防火墙允许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
如果你需要HTTPS支持,可以使用Let’s Encrypt安装SSL证书:
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
按照提示完成证书的安装和配置。
完成以上步骤后,你的CentOS服务器上应该已经成功设置了LNMP虚拟主机。你可以通过浏览器访问http://example.com
来查看效果。