前言 Homebrew是神马
Linux
系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat/CentOS
有yum
,Ubuntu
有apt-get
Mac os
没有自带类似的东东,但有第三方支持:Homebrew
,Homebrew
简称brew
,是Mac OSX
上的软件包管理工具
,能在Mac
中方便的安装软件或者卸载软件,可以说Homebrew
就是mac
下的apt-get
或yum
安装
在Mac中打开Termal
输入命令
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
常用的命令
用浏览器打开brew的官方网站
brew home
更新
brew update
这会更新 Homebrew
自己,并且使得接下来的两个操作有意义
检查过时(是否有新版本)
brew outdated
这回列出所有安装的软件里可以升级的那些
升级
brew upgrade
升级所有可以升级的软件们
brew upgrade <xxx>
如果不是所有的都要升级,那就这样升级指定的
清理
brew cleanup
清理不需要的版本极其安装包缓存
搜索软件
brew search 软件名
,如brew search wget
正则查询 brew search /wge*/
查询软件
brew info mysql
主要看具体的信息,比如目前的版本,依赖,安装后注意事项等
列出已安装的软件
brew list
显示包依赖
brew deps mysql
安装软件
brew install 软件名
如
brew install wget
brew install nginx
brew install mysql
brew install php55
brew install git
卸载软件
brew remove 软件名
如brew remove wget
或 brew uninstall wget
安装扩展
这个相信很多人都已经用到过了,安装他人扩展的 brew
服务。由于 brew
和包含的包源都是通过 github
来管理,人为的维护管理,除了自己的源还允许别人的源添加进来。类似与 Ubuntu
的 ppa
。好处在于只有我安装规定的方式把包丢到 github
上面就可以用了!
brew tap <gihhub_user/repo>
这个命令也就是把一些库添加进来,brew
有个默认库
, 假如默认库
中没有php
我们就可以这样把php
添加进来
brew tap josegonzalez/php
卸载扩展
有时会出现多个库的情况 如安装php55时
代码语言:javascript复制Error: Formulae found in multiple taps:
* homebrew/php/php55
* josegonzalez/php/php55
如果想去掉扩展的话可以使用命令
代码语言:javascript复制brew untap josegonzalez/php
服务操作
假如我们用brew
安装nginx
brew install nginx
完成后brew会自动把nginx注册为服务
查询所有的服务
代码语言:javascript复制brew services list
就会发现多了一个nginx
那么这样操作这些服务呢
- 启动
brew services start nginx
- 重启
brew services restart nginx
- 停止
brew services stop nginx
常用示例
PHP
开发环境也可以直接下载集成环境
下面用brew
配置 PHP
环境
安装PHP5.5
代码语言:javascript复制brew install openssl
xcode-select --install
先添加brew的PHP扩展库:
代码语言:javascript复制brew update
brew tap homebrew/dupes
brew tap homebrew/php
brew tap josegonzalez/homebrew-php
brew untap josegonzalez/php
可以使用 brew options php55
命令来查看安装php5.5的选项,这里我用下面的选项安装
brew install php55 --with-apache --with-gmp --with-imap --with-tidy --with-debug
请注意: 如果你希望以
apache
作为web server
,编译时要加--with-apache
;如果你的web server
是nginx
这类,就需要加上--with-fpm
。
PHP编译过程中如果遇到
configure: error: Cannot find OpenSSL's <evp.h>
错误,执行xcode-select --install
重新安装一下Xcode Command Line Tools
即可解决该错误
由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本:
代码语言:javascript复制echo 'export PATH="$(brew --prefix homebrew/php/php55)/bin:$PATH"' >> ~/.bash_profile #for php
echo 'export PATH="$(brew --prefix homebrew/php/php55)/sbin:$PATH"' >> ~/.bash_profile #for php-fpm
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile #for other brew install soft
source ~/.bash_profile #更新配置
- 查看当前使用的版本
php -v
- 查看系统默认的版本
/usr/bin/php -v
查看扩展
代码语言:javascript复制php -i | grep extension_dir
切换PHP版本
发现版本已经是新安装的了 如果安装多个怎样切换
切换方式1
这种方式只能切大版本 也就是切5.5
,5.6
这种
要是切5.5.30
, 5.5.35
就不能这种方式了 就要用方式2
brew unlink php56
brew link php56
切换方式2
1) 安装php-version
brew install php-version
然后执行
代码语言:javascript复制source $(brew --prefix php-version)/php-version.sh && php-version 5
2) 使用php-version
直接执行
代码语言:javascript复制php-version
就可以看到现有的版本
然后使用以下命令切换即可
代码语言:javascript复制php-version 5.5.35
再看php的版本,已经切换好了。
配置php的session
代码语言:javascript复制chmod -R 777 /tmp
打开目录/usr/local/etc/php/5.5/
文本文档打开 php.ini
搜索session.save_path
设置为
session.save_path = "/tmp"
设置Apache
打开配置文件
代码语言:javascript复制sudo vim /etc/apache2/httpd.conf
把
代码语言:javascript复制LoadModule php5_module libexec/apache2/libphp5.so
修改为
代码语言:javascript复制LoadModule php5_module /usr/local/Cellar/php55/5.5.35/libexec/apache2/libphp5.so
可以在/Libary/WebServer/Documents/
目录中建立个phpinfo.php
来测试了
<?php phpinfo(); ?>
重启apache
sudo apachectl restart
配置Apache虚拟主机
- 在终端运行
sudo vi /etc/apache2/httpd.conf
,打开Apche的配置文件
- 在
httpd.conf
中找到#Include /private/etc/apache2/extra/httpd-vhosts.conf
,去掉前面的#
,保存并退出 已开启虚拟主机功能。 - 运行
sudo vi /etc/apache2/extra/httpd-vhosts.conf
,添加如下配置
<VirtualHost *:80>
ServerName fqy.psvmc.cn
DocumentRoot "/Library/WebServer/Documents/fengqing"
ErrorLog "/private/var/log/apache2/fqy-error_log"
CustomLog "/private/var/log/apache2/fqy-access_log" common
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
- 开启虚拟主机后原来
/Library/WebServer/Documents
文件夹下的项目就不能访问了,所以要添加下面的配置,把默认位置配置为虚拟主机就可以了
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Library/WebServer/Documents"
ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
- 运行
sudo apachectl restart
,重启Apache
- 运行
sudo vi /etc/hosts
,打开hosts配置文件
,加入127.0.0.1 fqy.psvmc.cn
,这样就可以配置完成虚拟主机了,可以访问http://fqy.psvmc.cn
了
- 推荐方式
当然不想配置域名
的话也可以设置其它的端口
设置域名有局限性 用别的电脑或手机 是无法访问的 所以推荐使用其他端口
代码语言:javascript复制Listen 9999
NameVirtualHost *:9999
<VirtualHost *:9999>
ServerName localhost
DocumentRoot "/Library/WebServer/Documents/fengqing"
ErrorLog "/private/var/log/apache2/fqy-error_log"
CustomLog "/private/var/log/apache2/fqy-access_log" common
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
- 运行
sudo apachectl restart
,重启Apache
- 这样既可以通过
http://localhost:9999/
访问了
Apache2.2与2.4配置的变化
查看Apache的版本:sudo apachectl -v
禁止所有请求
Apache2.2
代码语言:javascript复制<Directory />
Order deny,allow
Deny from all
</Directory>
Apache2.4
代码语言:javascript复制<Directory />
Require all denied
</Directory>
允许所有请求
Apache2.2
代码语言:javascript复制<Directory />
Order allow,deny
Allow from all
</Directory>
Apache2.4
代码语言:javascript复制<Directory />
Require all granted
</Directory>
只允许www.psvmc.cn访问
Apache2.2
代码语言:javascript复制<Directory />
Order Deny,Allow
Deny from all
Allow from www.psvmc.cn
</Directory>
Apache2.4
代码语言:javascript复制<Directory />
Require host www.psvmc.cn
</Directory>
其它变化
更多变化请查看
项目放在自定义文件夹中
假如我的项目放在/Users/psvmc/Documents/php/fengqing
目录中 其中psvmc
是我电脑的用户名
然后添加如下配置
代码语言:javascript复制Listen 9999
NameVirtualHost *:9999
<VirtualHost *:9999>
ServerName localhost
DocumentRoot "/Users/psvmc/Documents/php/fengqing"
ErrorLog "/private/var/log/apache2/fqy-error_log"
CustomLog "/private/var/log/apache2/fqy-access_log" common
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
但发现无法访问http://localhost:9999/
试了很多方法都不行
报以下错误
代码语言:javascript复制You don't have permission to access / on this server.
有人说是修改项目文件夹的所有者
代码语言:javascript复制sudo chown -R _www:_www /Users/psvmc/Documents/php/fengqing
但是我试后发现并不起作用
但修改所有者也是必要的 这样修改的话 就不用更改文件夹的权限了
代码语言:javascript复制chmod -R 775 /Users/psvmc/Documents/php/fengqing
最后发现把文件共享
打开就行了
文件共享
打开方法
系统偏好设置
–> 共享
–> 文件共享
钩上
然后添加网站所在的文件夹
就可以了 这样网站就能访问了
安装Mysql
方式一 下载dmg安装
直接安装官方的包
这里给个百度网盘的下载地址
但是并不推荐这样 因为安装容易卸载难啊
还是推荐用brew
安装
方式二 brew安装
安装
代码语言:javascript复制brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql
获取当前登录用户名
代码语言:javascript复制whoami
例如我的是psvmc
设置文件的拥有者
sudo chown -R psvmc /usr/local/var/mysql/
启动mysql
代码语言:javascript复制mysql.server start
上面的启动方式 电脑重启就失效了 所以可以以服务的形式启动
代码语言:javascript复制brew services start mysql
最好给mysql设个密码,方法如下
代码语言:javascript复制mysqladmin -u root password 'root'
安装PHPMyAdmin
官方下载安装
phpmyadmin
几乎是管理mysql
最容易的web应用了吧,每次我都顺道装上。
- 1.去官网下载版本
phpMyAdmin 4.4.15.5
,最新版本在我的PHP5.5.35
下运行有问题 - 2.解压到
/Library/WebServer/Documents/
下 设置目录名字为phpmyadmin
- 3.在
phpmyadmin
目录下创建一个可写的config
目录 - 4.打开
http://localhost/phpmyadmin/setup
,安装一个服务,最后保存(这里只需要输入帐号密码就够了) - 5.将
config
下生成的config.inc.php
移到phpmyadmin
根目录下 - 6.删除
config
这样就装好了,虽然可能有点小复杂,但是来一次就习惯了。
这里很可能会遇到2002错误,就是找不到mysql.sock的问题,用下面方法解决
代码语言:javascript复制sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
然后就可以通过http://localhost/phpmyadmin
访问
通过brew安装
当然也可以用brew安装(不过安装的是英文版的)
代码语言:javascript复制brew install phpmyadmin
然后在apache的配置文件/etc/apache2/httpd.conf
中添加配置
Alias /phpmyadmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
然后就可以通过http://localhost/phpmyadmin
访问
安装MongoDB
MongoDB可以说是最简单的一个,直接执行
代码语言:javascript复制brew install mongodb
为PHP添加MongoDB模块
代码语言:javascript复制brew install php55-mongo
启动方法
代码语言:javascript复制brew services start mongodb
卸载
代码语言:javascript复制brew uninstall php55-mongo
brew uninstall mongodb
重启Apache
代码语言:javascript复制sudo apachectl restart
默认帐号密码都是admin
安装RockMongo
RockMongo
是MongoDB
很好用的一个web应用,安装也很容易
- 1.去官网下载最新版本
- 2.解压到
/Library/WebServer/Documents/
下 设置目录名字为rockmongo
- 3.运行
http://localhost/rockmongo
即可