我正在使用ubuntu 16.04并正在开展laravel
项目。
我在名为/var/www/html
的{{1}}中有一个新的laravel项目,可以通过转到
myproject
但是为了让路线发挥作用,我找到了一个在localhost/myproject/public/
中创建网站的解决方案:
/etc/apache2/sites-available
然后在<VirtualHost *:80>
ServerName myproject.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/myproject/public
<Directory /var/www/html/myproject>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
文件中添加了一个新条目,如下所示:
/etc/hosts
重新启动的apache现在可以使用浏览器中的127.0.0.1 localhost
127.0.1.1 myhostname
127.0.0.1 myproject.dev
访问项目。
现在我想使用实际手机测试一些响应式内容。
我尝试http://myproject.dev
它不起作用,如果我这样做
http://myproject.dev
它将我带到目标网页,但访问任何其他路线会产生404.此格式也无法在计算机浏览器上运行。
然而,这适用于计算机:
http://myhostname/myproject/public
但不在电话上。
如何访问手机上的http://localhost/myproject/public
网站?我的电脑和手机都连接到同一个wifi接入点。
答案 0 :(得分:1)
请记住,手机不知道您的网站网址,因为它不在任何DNS服务器中,除非您越狱,否则您无法在手机上摆弄主机文件。
我通常做的是创建一个从手机访问网站时使用的新虚拟主机。但是在这个虚拟主机上我使用另一个端口号,因为在手机浏览器上添加端口号很容易。
所以添加另一个这样的VH和另一个Listen命令
Listen 81
<VirtualHost *:81>
ServerName myproject.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/myproject/public
<Directory /var/www/html/myproject>
AllowOverride All
# add access from any ip on your subnet
Require ip 192.168.1
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
然后假设服务器正在192.168.1.100
上运行,您可以使用此网址访问该网站
http://192.168.1.100:81
你的路线应该没有任何摆弄
答案 1 :(得分:0)
在您的<VirtualHost>
- 指令的IP地址上添加别名。像ServerAlias 192.168.1.100
这样的东西。然后,您应该能够访问该IP地址上的Web应用程序,如下所示:http://192.168.1.100/myproject/public
。
这里的主要原则非常独立于laravel,但更多与DNS和网络以及apache配置有关。
答案 2 :(得分:0)
考虑使用 .xip.io
解决方案。
示例:
如果您的本地计算机 IP 地址是 192.168.1.2
,并且您可以以 http://192.168.1.2/somepage.html
访问您的本地站点,则您可以在手机中使用 http://192.168.1.2.xip.io/somepage.html
访问它。要使此解决方案起作用,您需要编辑您的 apache 虚拟主机,例如:
<VirtualHost *:80>
DocumentRoot "/path/to/site"
ServerAlias site.*.xip.io
ServerName site.dev
</VirtualHost>
注意:不要忘记重启 apache。