Mac 下 Nginx、MySQL、PHP-FPM 的安装配置

http://dhq.me/mac-install-nginx-mysql-php-fpm

用了3年多的本本罢工,最近新入手了一台 rmbp,一堆工作环境要配置,LNMP 里的 NMP 是常规要安装的,恰好也是第一次在 mac 上安装配置 nginxmysqlphp,所以顺便做个记录,免得以后忘了也好查看,不用到处翻。

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指令,所以我选择重新安装php。由于 brew 默认是没有 php 安装,所以要使用 “brew tap” 来安装 brew 的第三方程序包,这里使用 josegonzalez 的php安装包,具体操作如下:


1

2

brew tap homebrew/dupes

brew tap josegonzalez/homebrew-php

执行完后,就可以用 brew 安装php了。这里php有几个版本可以安装,具体可以执行 "brew search php" 查看一下有什么php版本可以安装,一般会有“php52、php53、php54”版本,我安装的是最新的php5.4版本。由于PHP5.4版本已经内嵌了 FPM(FastCGI Process Manager),在安装选项里标明就行,本人 php 的安装配置指令如下:


1

brew install php54 --with-imap --with-tidy --with-debug --with-pgsql --with-mysql --with-fpm

更多的安装选项可以通过 "brew options php54" 查看。指令执行完后,php 跟 php-fpm 就安装好了。

由于是重装php,之前系统预装的php还没卸载,因此在终端调用php时,还是以之前系统的php版本做解析,所以这里需要修改path,指定 php 的解析路径。在~/.bashrc(没有则创建)最后加入一行:


1

export PATH="$(brew --prefix php54)/bin:$PATH"

添加之后再执行一下source,使之生效


1

source ./.profile

OK,php-fpm安装完成。

要修改配置 php 或者 php-fpm 的话,可以修改 "/usr/local/etc/php/5.4/php.ini" 、 "/usr/local/etc/php/5.4/php-fpm.conf"。

启动 php-fpm 的话就直接在终端里执行 "php-fpm",默认打开 php-fpm 会显示一个状态 shell 出来,也可以把 php-fpm 的配置文件里的 "daemonize = no" 改为 "daemonize = yes",就会以后台守护进程的方式启动,对于刚修改的配置文件,可以执行 "php-fpm -t" 来检测配置有没有问题。

开机启动 php-fpm(下面的 5.4.9 是当前安装 php 的具体版本号):


1

2

3

mkdir -p ~/Library/LaunchAgents

cp /usr/local/Cellar/php54/5.4.9/homebrew-php.josegonzalez.php54.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php54.plist

为了方便,写了个启动、关闭、重启 php-fpm 的 shell 脚本:


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

#!/bin/sh

param=$1

start()

{

    fpms=`ps aux | grep -i "php-fpm" grep -v grep awk ‘{print $2}‘`

    if [ ! -n "$fpms" ]; then

        php-fpm

        echo "PHP-FPM Start"

    else

        echo "PHP-FPM Already Start"

    fi

}

stop()

{

    fpms=`ps aux | grep -i "php-fpm" grep -v grep awk ‘{print $2}‘`

    echo $fpms | xargs kill -9

    for pid in $fpms; do

        if echo $pid | egrep -q ‘^[0-9]+$‘then

            echo "PHP-FPM Pid $pid Kill"

        else

            echo "$pid IS Not A PHP-FPM Pid"

        fi

    done

}

case $param in

    ‘start‘)

        start;;

    ‘stop‘)

        stop;;

    ‘restart‘)

        stop

        start;;

    *)

        echo "Usage: ./phpfpm.sh start|stop|restart";;

esac

设置 Nginx 的 PHP-FPM 配置

打开 nginx 默认注释掉的php location设置,修改如下(具体配置参数,例如路径,这里以我本地安装为准):


1

2

3

4

5

6

7

location ~ \.php$ {

    fastcgi_intercept_errors on;

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME  /usr/local/Cellar/nginx/1.2.6/html$fastcgi_script_name;

    include        /usr/local/etc/nginx/fastcgi_params;

}

OK,这样就可以在访问目录下(默认是/usr/local/Cellar/nginx/1.2.6/html)执行 php 文件了。嗯,赶快输出一下 "phpinfo()" 吧:)

一些问题


1

2

3

4

5

Error: SHA256 mismatch

Expected: 3fe780e5179e90c4d37276e79acc0d0692f1bc0911985af694b92c664c0ef3c4

Actual: f9dbbb4e5ecd98010a3c4686d0713dcda6a77223fb9d05537089b576ab8f7fdd

Archive: /Library/Caches/Homebrew/php54-5.4.28

To retry an incomplete download, remove the file above.

这里是 PHP 5.4.28 源代码地址出错的问题,修改文件 /usr/local/Library/Taps/josegonzalez/homebrew-php/Formula/abstract-php-version.rb 下 Php54Defs 的源码地址 PHP_SRC_TARBALL 的值,这里改用http://mirrors.sohu.com/php/php-5.4.28.tar.bz2 这个地址。

时间: 2024-12-23 13:05:30

Mac 下 Nginx、MySQL、PHP-FPM 的安装配置的相关文章

linux下nginx,mysql,php(lnmp)编译安装

关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenforce 0 #使配置立即生效 mysql 5.5.28安装 安装路径:/usr/local/mysql数据库路径:/usr/local/mysql/data/ mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具

mac下Nginx+lua模块编译安装

Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲)和春来(章亦春)所开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力 http://wiki.nginx.org/HttpLuaModule 下面说说mac下Nginx如何编译集成nginx_lua_module模块 1. 下载nginx需

CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装

CentOS 7 下 JDK1.8 Maven Nginx MySql Git Redis环境安装 安装目录准备 新建data目录,用来放下载的软件 mkdir -p /data 切换到该data目录 cd /data JDK1.8安装 JDK下载 如果需要用户密码,注册一个即可 用winSCP上传到服务器data目录下 解压文件 tar -zxvf jdk-8u211-linux-x64.tar.gz Maven安装 maven下载 wget http://mirrors.gigenet.co

mac下nginx的安装和配置,已经相关设置(转帖)。

mac下nginx的安装和配置: 链接:https://www.jianshu.com/p/026d67cc6cb1 前端项目中nginx 本地反向代理配置: 链接:https://www.jianshu.com/p/5c23b09d443f 原文地址:https://www.cnblogs.com/sidianok/p/12204020.html

mac下修改mysql-root密码-各种权限问题解决

官方资料:http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-unix 还有一个值得参考的mysql安装,与python-mysql安装博客http://hearrain.com/2011/01/498 据官方文档说, For example, if you run the server using the mysql login account, you should l

Mac下卸载MySql

mac下mysql的DMG格式安装内有安装文件,却没有卸载文件……很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删.很多文章记述要删的文件不完整,后来在stackoverflow这里发现了一个遗漏的地方,所以将完整版记述在这里,以供查阅.先停止所有mysql有关进程.sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Libra

Linux Debian 下LNMP服务器——nginx+mysql+php环境搭建及配置

昨天刚给公司服务器装了LNMP服务器环境,在这里简单记录一下过程备忘. 这里我在安装的时候是用的Dotdeb源,仅供参考. 1.导入Dotdeb源,据说Dotdeb源里的软件版本比较新. 在向源中导入Dotdeb前,我们需要先获取GnuPG key并导入: wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add - 提示OK,表明导入成功.然后我们开始导入Dotdeb源,源列表的位置在“/etc/apt/sources

Mac下解决mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Maybe updating the package the updater overwrote the root password. To restore it: Stop mysqld deamons. $ sudo service mysqld stop Go to mysql/bin directory $ cd /usr/bin Start a mysql deamon with this option: $ sudo mysqld_safe --skip-grant-tables O

Linux下查看mysql、apache是否安装,安装,卸载等操作

Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root     17659     1  0  2011 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysql

mac 下重启 MYSQL 命令

在mac 下重启mysql的命令如下: 启动MySQL服务 sudo /usr/local/MySQL/support-files/mysql.server start 停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop 重启MySQL服务 sudo /usr/local/mysql/support-files/mysql.server restart