首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

lnmp虚拟主机添加域名

基础概念

LNMP 是一个集成了 Nginx、MySQL/MariaDB、PHP 的服务器环境。虚拟主机(Virtual Host)允许你在同一台物理服务器上托管多个域名。

相关优势

  1. 资源共享:通过虚拟主机,可以更有效地利用服务器资源。
  2. 管理便捷:可以独立管理每个域名的配置和文件。
  3. 安全性:每个虚拟主机可以独立设置安全策略,降低风险。

类型

  • 基于域名的虚拟主机:根据不同的域名来区分不同的网站。
  • 基于IP的虚拟主机:根据不同的IP地址来区分不同的网站。
  • 基于端口的虚拟主机:根据不同的端口来区分不同的网站。

应用场景

适用于需要托管多个网站的企业或个人,每个网站可以有不同的域名和配置。

添加域名的步骤

  1. 购买域名:首先需要在域名注册商处购买一个域名。
  2. 配置DNS:将域名解析到你的服务器IP地址。
  3. 配置Nginx虚拟主机:在Nginx配置文件中添加虚拟主机配置。

示例代码

假设你已经有一个域名 example.com,并且服务器IP地址为 192.168.1.1

  1. 编辑Nginx配置文件
代码语言:txt
复制
sudo nano /etc/nginx/sites-available/example.com
  1. 添加以下内容
代码语言:txt
复制
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:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
  1. 创建网站目录
代码语言:txt
复制
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com
  1. 启用虚拟主机
代码语言:txt
复制
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  1. 测试Nginx配置
代码语言:txt
复制
sudo nginx -t
  1. 重启Nginx
代码语言:txt
复制
sudo systemctl restart nginx

可能遇到的问题及解决方法

  1. 域名解析问题
    • 问题:域名无法解析到服务器IP。
    • 原因:DNS配置错误或未生效。
    • 解决方法:检查域名注册商的DNS设置,确保A记录指向服务器IP,并等待DNS缓存刷新。
  • Nginx配置错误
    • 问题:访问域名时显示Nginx错误页面。
    • 原因:Nginx配置文件语法错误或路径配置错误。
    • 解决方法:使用 sudo nginx -t 检查配置文件语法,确保所有路径正确。
  • 权限问题
    • 问题:无法访问网站目录或上传文件。
    • 原因:文件权限设置不当。
    • 解决方法:确保网站目录及其文件权限正确,通常为 www-data 用户。

参考链接

通过以上步骤,你应该能够成功为LNMP虚拟主机添加域名。如果遇到其他问题,请参考相关文档或寻求专业帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • nginx 关闭默认站点的方法

    当别人把垃圾域名转向至你的服务器时, 如果不采取措施,那么后果不堪设想。 国内机房一般都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。 Nginx默认的虚拟主机允许用户经过IP访问,或者经过未设置的域名访问(比如有人把他本人的域名指向了你的ip)你的VPS或服务器。 默认情况下,只要将域名解析到VPS的IP上,就可以访问安装lnmp的VPS。 如果想避免这种情况的出现,可以修改nginx.conf ,将默认的虚拟主机修改为如下即可屏蔽未绑定域名访问: 复制代码 代码如下: server { listen 80 default; return 500; } 也可以把这些流量收集起来,导进到本人的网站,只需做以下跳转设置就可以: 复制代码 代码如下: server { listen 80 default; rewrite ^(.*) http://cqgua.com permanent; } 以此类推, 禁止通过IP访问,可以写成: 复制代码 代码如下: server { listen 80 default; server_name _; return 500; }

    01

    神秘的.user.ini文件

    LNMP 1.1及之前的版本使用php.ini里面,open_basedir设置 LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改.user.ini 里面的open_basedir的值来设置限制访问的目录或删除来移除防跨目录的设置。 .user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini 可以使用winscp文件管理、vim编辑器或nano编辑器进行修改。 删除的话rm -f /网站目录/.user.ini 就可以。 修改完成后再执行:chattr +i /网站目录/.user.ini .user.ini不需要重启一般5分钟左右生效,也可以重启一下php-fpm立即生效。 如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!! LNMP 1.4或更高版本如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在该行行前添加 # 或删除改行,需要重启nginx。 LNMP 1.4或更高版本也可以直接使用lnmp安装包 tools/ 目录下的 ./remove_open_basedir_restriction.sh 进行移除。 在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。 LNMPA或LAMP 模式1.2版本或更高版本的防跨目录的设置使用的对应apache虚拟主机配置文件(lnmp管理工具添加的话文件是 /usr/local/apache/conf/vhost/域名.conf )里的php_admin_value open_basedir参数进行设置。如果不需要防跨目录设置可以在 php_admin_value open_basedir 该行前面加 # 进行注释,或自行修改参数后面的目录。 重启apache生效。

    02
    领券