vagrant homestead 配置多域名失败

发布于 2022-09-02 20:19:18 字数 1041 浏览 26 评论 0

mac下的homestead,之前能配置多个本地域名,现在更新一下后,出现了问题,无法解决,看起来好像是nginx的问题,但是不懂怎么调试。

文档有:Homestead目录下的scripts/serve.sh脚本动态添加

命名: serve domain.app /home/vagrant/Code/path/to/public/directory

问题所在

在出这个问题之前,我也一直都是这样动态设置域名,截一个另外一台Windows电脑并上图
图片描述

mac上更新后,就没办法动态设置了,敲入这个口令,就一闪而过
图片描述

观察了一下,猜想可能的问题:

  1. vagrant up的时候 有部分文件没安装完毕?
    图片描述

  2. serve 后 nginx 没有重启?
    但是我在serve后,手动敲入命令进行重启,还是没办法实现多域名

新手,对这一块不太熟悉,麻烦各位给点指点,因为要学的东西很多,一时要补php,一时要学laravel,还要用phpmyadmin看数据库,所以很需要多域名~ 谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南烟 2022-09-09 20:19:18

暂时的解决方法

git clone回来的Homestead文件夹中的scripts/serve-laravel.sh文件,在下面加上service nginx restart
service php7.0-fpm restart

如图:
图片描述

疑问?

homesteadgithub上看到一个commit:tweak a few things when creating sites,改动了scripts文件夹里面的一点东西,但是不是很明白为什么要去掉重启nginx和php的选项?而且去掉后,无法serve成功,我也给作者发了邮件,但是不知道会不会回...

见链接:Github:homestead

图片描述

飞烟轻若梦 2022-09-09 20:19:18

最近在捣腾laravel/homestead,今天我也遇到了相似的问题,我想在nginx上再加一个 www.gitblog.com 站点(一个ip对应多个站点)。

我的解决步骤如下:

1.查看nginx的配置文件 nginx.conf

vi /etc/nginx/nginx.conf

注意配置文件中

include /etc/nginx/sites-enabled/*;

有没有被注释。如果没注释,请删掉注释符号#

2.创建子站点的配置文件

在文件夹 /etc/nginx/sites-enabled 里 创建子主机的配置文件。

该目录里已经存在 配置文件 test.app,复制一个副本稍作修改即可变成blog.app
test.app内容如下

server {
    listen 80;
    listen 443 ssl;
    server_name test.app;
    root "/home/vagrant/Code/test/";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log on;
    error_log  /var/log/nginx/test.app-error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }

    ssl_certificate     /etc/nginx/ssl/test.app.crt;
    ssl_certificate_key /etc/nginx/ssl/test.app.key;
}

~                                                                                                                                                                                    
~                                                                                                                                                                                    
~                                                                                                                                                                                    
"/etc/nginx/sites-available/test.app" 46L, 1148C       

创建子主机配置文件只需要复制一份test.app,==然后将副本里server_name 的值替换成 子主机的域名,并修改站点的根目录 root 。nginx就是根据请求的网址和server_name的匹配来决定访问哪一个站点的。==
注意:如果test.app是软连接的话,需要去目标文件所在目录复制test.app,然后将副本的软连接再复制回

cp test.app blog.app
sudo vi blog.app

修改如下

server {
    listen 80;
    listen 443 ssl;
    server_name www.gitblog.com;
    root "/home/vagrant/Code/gitblog/public/";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log on;
    error_log  /var/log/nginx/blog.app-error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }

#    ssl_certificate     /etc/nginx/ssl/blog.app.crt;
#    ssl_certificate_key /etc/nginx/ssl/blog.app.key;
}

~                                                                                                                                                                                    
~                                                                                                                                                                                    
~                                                                                                                                                                                    
"/etc/nginx/sites-available/blog.app" 46L, 1167C    

注意这里还注销了下面的这两列

#    ssl_certificate     /etc/nginx/ssl/blog.app.crt;
#    ssl_certificate_key /etc/nginx/ssl/blog.app.key;

因为修改后,重启nginx时报错,但是注销后就没事了。

3.修改hosts文件(可选)。

如果是只能本地访问的虚拟服务器 还需要修改hosts文件(mac是 /private/etc/hosts)

sudo vi /private/etc/hosts

追加如下

# virtual host
192.168.33.10   www.gitblog.com
192.168.33.10   test.app

192.168.33.10 是linux的ip,可通过 ifconfig -a 查到。

4.重启nginx

service nginx restart
或者
/etc/init.d/nginx restart
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文