前戏
最近经常碰到没网的情况,看到behance的desplay应用,可以很单纯的只上传、管理自己的项目(设计),然后可以很方便的演示,就动心了…… 经过n轮各种过程,最后还是决定在本机配置php环境,直接用wp的博客演示更富弹性。
→ 开工
mac 自带apache php , 只是默认未开启,只需要开启就行了。 至于mysql以前装过,只需要启动就可以了。
先从简单的着手,结果图样图森破了,mysql并启动不起来。想起来mariadb为什么不用mariadb呢? why? 经过0轮思想斗争,卸载mysql。想卸载干净听说要手动的,如下:
1
2
3
4
5
6
7
8
|
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
|
ok,世界清爽了。
安装 mariadb
brew 太好用了,为啥不用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
==> Installing mariadb
==> Downloading https://homebrew.bintray.com/bottles/mariadb-10.2.11.high_sierra
######################################################################## 100.0%
==> Pouring mariadb-10.2.11.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/mariadb/10.2.11/bin/mysql_install_db --verbose --user=jovi
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.
MySQL is configured to only allow connections from localhost by default
To connect:
mysql -uroot
To have launchd start mariadb now and restart at login:
brew services start mariadb
Or, if you don't want/need a background service you can just run:
mysql.server start
==> Summary
🍺 /usr/local/Cellar/mariadb/10.2.11: 640 files, 170MB
|
稍等一会儿,安装好了。 就喜欢省心的,看提示,有两条还很方便:
1
2
|
To have launchd start mariadb now and restart at login:
brew services start mariadb
|
1
2
|
Or, if you don't want/need a background service you can just run:
mysql.server start
|
接下来是apache 和 php
mac 自带,直接启动就好了
查看当前版本:
httpd -v
1
2
|
Server version: Apache/2.4.28 (Unix)
Server built: Oct 9 2017 19:54:20
|
没错,继续
1
2
3
|
sudo apachectl start //启动
sudo apachectl restart //重启
sudo apachectl stop //停止 是不是可以有reload 的? 命令跟linux一样,很亲切有木有。
|
浏览器输入地址确定是否成功:
http://localhost
http://127.0.0.1
如果Apache服务启动成功,页面会显示It works!
apache 的默认目录
/private/etc/apache2
mac方便进入隐藏、系统文件的方式就是在“仿达”(翻译碉堡了)按 shift+command+G
输入路径,同样支持tab匹配。
默认web路径 /资源库/WebServer/Documents/
你肯定不会愿意吧网站文件放到这里的,想直接修改那就改httpd.conf 或者你可以考虑直接用 用户级的web路径,上面这个是系统级的,修改系统级路径一会儿再说,先说用户级路径。
访问地址:
http://localhost/~username
http://127.0.0.1/~username
默认系统是没有这个目录的,需要手动创建一下,如果你用户目录下有 “站点”这个目录,就不用了。
你可以再目录下放个index.php,写上如下内容。 测试站点&php是否正常。
1
2
3
|
<?php
phpinfo();
?>
|
继续,在apache用户配置目录配置用户目录权限
- 打开终端
- 输入:
cd /etc/apache2/users
- 输入:
sudo nano username.conf
( 注意:这里的username是当前用户名,请根据实际情况修改 ) 如果你装了nano编辑器的话,或者用vim,我喜欢nano,更小白。
- 输入:
1
2
3
4
5
6
|
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
|
修改apache的httpd.conf文件
cd /etc/apache2/
cd /etc/apache2/
sudo vim httpd.conf
找到以下信息,将其前面的#去掉:
1
2
3
4
5
6
7
8
|
LoadModulephp5_module libexec/apache2/libphp7.so //php 支持
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so //用户目录
Include /private/etc/apache2/extra/httpd-userdir.conf
|
cd /etc/apache2/extra/
sudo vim httpd-userdir.conf
系统级目录更改搜索 “DocumentRoot”
1
2
|
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
|
btw: nano 搜索是 ctrl+w
,输入关键词Enter
。 搜索下一个是搜索完以后再按ctrl+w
然后直接 Enter
找到以下信息,将其前面的#去掉:
Include /private/etc/apache2/users/*.conf
此时访问http://localhost/~username/, 依然无法访问,提示:You don‘t have permission to access /~username/ on this server
修改 httpd.conf
sudo vim /etc/apache2/httpd.conf
找到:
1
2
3
4
5
|
<Directory />
AllowOverride none
Require all denied
</Directory>
|
修改为:
1
2
3
4
5
|
<Directory />
AllowOverride none
Require all granted
</Directory>
|
验证结果
重启apache:sudo apachectl restart
访问:http://localhost/~username/