背景
- wampserver 3.1.7、Apache 2.4.37、PHP 7.2.14、MySql 5.7.24、thinkcmf
- 没有测试环境,产品及UI想看页面效果
- wampserver运行中
配置
1. httpd-vhosts.conf
项目运行的时候,点击wamp图标 => Apache => httpd-vhosts.conf
# Virtual Hosts
#
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted // 改这里
</Directory>
</VirtualHost>
#
<VirtualHost *:80>
ServerName 项目名称
DocumentRoot "f:/你的项目路径/public"
<Directory "f:/你的项目路径/public/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted // 改这里
</Directory>
</VirtualHost>
require后面的值可以是某个具体的局域网段等,具体可以自己搜索了解。我这里是允许了所有。
到这里其实局域网内访问只能到localhost你的管理页面,也就是这个:
然后你点击你的某个项目,比如说test(your virtualhost => test)的时候,会报错说域名解析错误。这时候还差一步,我这里用了巧法,把localhost指向了我的项目。如果有大佬知道其实应该怎么搞的,麻烦指教谢谢。
# Virtual Hosts
#
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
# 把localhost指向了我的项目
- DocumentRoot "${INSTALL_DIR}/www"
- <Directory "${INSTALL_DIR}/www/">
+ DocumentRoot "f:/你的项目路径/public"
+ <Directory "f:/你的项目路径/public/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted // 改这里
</Directory>
</VirtualHost>
2. 关闭防火墙
其实网上的教程都是到上面就把事情做完了,但由于我在弄的时候,先是出现403,后面又说域名解析错误。在403的时候我就去把防火墙关掉了。域名解析错误的时候我就上面那样把Localhost指向我的项目,然后就可以局域网访问我的本地项目了。
3. 无法访问virturalhost management
上面一通操作之后,你会发现你没法新增项目访问:Your VirtualHosts => VirtualHost Management
会报错:
如果发生这个情况,就把上面的修改改回去就行了
+ DocumentRoot "${INSTALL_DIR}/www"
+ <Directory "${INSTALL_DIR}/www/">
- DocumentRoot "f:/你的项目路径/public"
- <Directory "f:/你的项目路径/public/">
题外话
另外记录一个hack,想登录thinkcmf的后台的时候,老是说我密码错误,但同事明明就能登录上去。
后来hack一下,把这里改了一下,绕过密码校验,成功登录上去了:)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。