前戏
最近经常碰到没网的情况,看到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/