Mac 下 Nginx、MySQL、PHP-FPM 的安装配置
Mac 下 Nginx、MySQL、PHP-FPM 的安装配置
用了3年多的本本罢工,最近新入手了一台 rmbp,一堆工作环境要配置,LNMP 里的 NMP 是常规要安装的,恰好也是第一次在 mac 上安装配置 nginx、mysql、php,所以顺便做个记录,免得以后忘了也好查看,不用到处翻。
PS:下面的安装都是基于 homebrew,如果不熟悉或者还没安装有 homebrew 的话,可以查看这篇关于 homebrew 的介绍。
安装nginx
用 brew 一键安装 nignx:
1
|
brew install nginx |
如果需要安装其他 nginx 的版本,可以 "brew edit nginx" 打开修改 nginx 的安装信息包 formula,默认会用 vi 打开,在文件开头处修改 nginx 相应版本的下载地址就行。
brew 执行完后,nginx 就安装好了。可以用以下指令对 nginx 进行操作:
1
2
3
4
5
6
|
#打开 nginx sudo nginx #重新加载配置|重启|停止|退出 nginx nginx -s reload|reopen|stop|quit #测试配置是否有语法错误 nginx -t |
详细 nginx 帮助信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
nginx 版本: nginx/1.2.6 用法: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives] 选项: -?,-h : 打开帮助信息 -v : 显示版本信息并退出 -V : 显示版本和配置选项信息,然后退出 -t : 检测配置文件是否有语法错误,然后退出 -q : 在检测配置文件期间屏蔽非错误信息 -s signal : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件) -p prefix : 设置前缀路径(默认是:/usr/local/Cellar/nginx/1.2.6/) -c filename : 设置配置文件(默认是:/usr/local/etc/nginx/nginx.conf) -g directives : 设置配置文件外的全局指令 |
打开 nginx 后,默认的访问端口 8080,如果要改为常用的 80 端口,则要修改 "/usr/local/etc/nginx/nginx.conf" 下监听(listen)端口值。
默认的文件访问目录(root)是 "/usr/local/Cellar/nginx/1.2.6/html"(这里的1.2.6是安装的nginx的版本,文件夹名以安装的nginx版本为准)。
把 nginx 设置为开机启动运行:
1
2
3
|
mkdir -p ~ /Library/LaunchAgents cp /usr/local/Cellar/nginx/1 .2.6 /homebrew .mxcl.nginx.plist ~ /Library/LaunchAgents/ launchctl load -w ~ /Library/LaunchAgents/homebrew .mxcl.nginx.plist |
不过试了一下,不是超级用户登陆,而是普通用户登陆,并且监听的端口在1024以下的(例如把默认的8080端口改为了80端口),nginx 开机是启动不了。因此,要 nginx 开机启动的话,需要给予它管理员权限:
1
2
|
sudo chown root:wheel /usr/local/Cellar/nginx/1 .2.6 /sbin/nginx sudo chmod u+s /usr/local/Cellar/nginx/1 .2.6 /sbin/nginx |
安装mysql
1
|
brew install mysql |
在上面 brew 安装完后,会在终端上显示一些初始配置 mysql 的信息,如下:
1)初始安装 mysql 的一些配置数据库(例如:information_schema、mysql)
1
|
mysql_install_db --verbose --user=` whoami ` --basedir= "$(brew --prefix mysql)" --datadir= /usr/local/var/mysql --tmpdir= /tmp |
执行完后,就可以在终端里运行 "mysql",直接进入mysql数据库里。对,不用输入密码,可以直接连接,初始默认是可以匿名访问的。超级用户 "root" 也是没设密码,要设密码的话可以执行下面指令
1
|
/usr/local/opt/mysql/bin/mysqladmin -u root password 'new-password' |
现在访问 mysql 还是不用密码就可以连接,如果要设置一些登陆密码的安全访问限制,则需执行下面的 mysql安全安装指令
1
|
/usr/local/opt/mysql/bin/mysql_secure_installation |
主要是设置修改root密码(设置过了可以不用设置,略过)、删除匿名访问、删除root网络访问、删除test数据库。指令执行完后,登陆mysql就需要密码验证了
1
|
mysql -u root -p |
开机启动 mysql
1
2
3
|
mkdir -p ~ /Library/LaunchAgents/ cp /usr/local/Cellar/mysql/5 .5.28 /homebrew .mxcl.mysql.plist ~ /Library/LaunchAgents/ launchctl load -w ~ /Library/LaunchAgents/homebrew .mxcl.mysql.plist |
如果要停止 mysql 服务则:
1
|
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist |
设置 MySQL 的配置文件 my.cnf(默认在 /usr/local/Cellar/mysql/5.5.28/my.cnf,最好把配置文件移到 /etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf 这些位置之一,避免以后升级版本后 MySQL 配置被覆盖):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
[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 |
至此,mysql安装完毕。
安装php-fpm
Mac是预装了php,所以这里只要做下php与nginx的配置就好。
设置 Nginx 的 PHP-FPM 配置
打开 nginx 默认注释掉的php location设置,修改如下(具体配置参数,例如路径,这里以我本地安装为准):
访问html配置
server {
listen 80;
server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {
#root html;
root /Library/WebServer;
index index.html index.htm;
}
访问脚本php配置
1
2
3
4
5
6
7
|
location ~ \.php$ { root /Library/WebServer;
fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME document_root$fastcgi_script_name; include /usr/local/etc/nginx/fastcgi_params; } |
OK,这样就可以在访问目录下(默认是/usr/local/Cellar/nginx/1.2.6/html->修改问自己的目录【/Library/WebServer】,)执行 php 文件了。嗯,赶快输出一下 "phpinfo()" 吧:)
【原文url】
易出现问题方案:
Mac OS X 10.9自带php-fpm的配置使用和扩展安装