安装nginx

用 brew 一键安装 nignx:

brew install nginx

如果需要安装其他 nginx 的版本,可以 "brew edit nginx" 打开修改 nginx 的安装信息包 formula,默认会用 vi 打开,在文件开头处修改 nginx 相应版本的下载地址就行。

brew 执行完后,nginx 就安装好了。可以用以下指令对 nginx 进行操作:

#打开 nginx
sudo nginx
#重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
#测试配置是否有语法错误
nginx -t


默认的文件访问目录(root)是 "/usr/local/Cellar/nginx/1.2.6/html"

安装php-fpm

Mac是预装了php,不过很多扩展都没安装,目测最多只能在终端里执行下php指令,所以我选择重新安装php。由于 brew 默认是没有 php 安装,所以要使用 “brew tap” 来安装 brew 的第三方程序包,这里使用 josegonzalez 的php安装包,具体操作如下:

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php


brew install php56 --with-imap --with-tidy --with-debug --with-mysql --with-fpm --without-bz2



安装过程中会遇到一些如下的错误:

configure: error: Please reinstall the libcurl distribution

configure: error: Please reinstall the BZip2 distribution

这时需要在终端输入如下命令:

xcode-select --install

安装开发人员支持库,即可完成安装

php-fpm

执行报错

ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2) 

找不到配置文件,为了省事就直接把.default复制,然后赋予权限

sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf 
sudo chmod 777 /private/etc/php-fpm.conf 
 sudo php-fpm 

尝试启动报错:

ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2) 

找不到文件夹就新建

sudo mkdir /usr/var 
sudo mkdir /usr/var/log 
sudo php-fpm 

此时PHP正常启动,不过还是需要完善一下 ,放置一下配置文件,修改一下权限,如果开公网访问的话“中奖”就杯具了,这种东西还是不要用 su 执行好一点。

cp /etc/php.ini.default /etc/php.ini 
sudo chmod 777 /etc/php.ini 
 sudo killall php-fpm
php-fpm

修改 nginx 配置文件 使其可以处理php

location ~ \.php$ {      root /path/to/wwwroot;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;      include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME  /path/to/wwwroot$fastcgi_script_name;
}
安装mysql

brew install mysql

mysql_install_db --verbose --user=`test` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

mysql.server start
sudo /usr/local/opt/mysql/bin/mysql_secure_installation

[client]
port = 3306
 
[mysqld]
port = 3306
server_id = 1
character-set-server = utf8
default-storage-engine = INNODB
socket = /tmp/mysql.sock
skip-external-locking
 
key_buffer = 16K
query_cache_limit = 256K
query_cache_size = 4M
max_allowed_packet = 1M
table_open_cache = 128          # 表缓存的数目,一般是 max_connections 的倍数
 
max_connections = 32
thread_concurrency = 2
 
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
 
#skip-bdb
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
default-character-set = utf8
 
[isamchk]
key_buffer = 8M
sort_buffer_size = 8M
 
[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M
 
[mysqlhotcopy]
interactive-timeout

#2002 无法登录 MySQL 服务器


将config.sample.inc.php复制成config.inc.php 

出现这个错误,表示没有连接到数据库。修改config.inc.php文件, 
代码如下:

将$cfg['Servers'][$i]['host'] = 'localhost'; 
改为$cfg['Servers'][$i]['host'] = '127.0.0.1'; 

总结:

Nginx
sudo nginx -s reload|reopen|stop|quit
sudo nginx -t

PHP-FPM
sudo killall php-fpm
sudo php-fpm

Mysql
mysql.server start|stop|restart|status

装完后php后,需要做如下步骤

change ~/.bash_profile add follow line:

  1. export PATH="/usr/local/bin:/usr/local/sbin:$PATH"

然后检测php版本,php -v php-fpm -v 确认是php5.6版本,因为Mac OS本身就装有php,我的新mac的php版本是5.5.14
如果不做上一步的话,以后需要安装php的扩展时,会一头雾水,因为系统会用本身自带的php来编译新扩展,然后你的新版php没法使用,因为扩展使用旧版编译的。。。我今天上午就花了几个小时在这个上面

如果安装php扩展,只需使用如下命令:

brew search mcrypt memcache
然后安装对应php版本的软件包

brew install php56-mcrypt php56-memcache




09-27 09:51