Mac下安装 php+nginx+mysql 开发环境

最后更新于:2018-11-18 18:47:39

一、mysql安装

mysql是安装最简单顺利的

1. 首先去官方网站下载Mac适用的MySQL的dmg包

下载页面 选择图中最下方的dmg包下载进行安装

安装完成后 MySQL的安装目录为/usr/local/mysql/

2. 启动服务

设置里 找到MySQL 启动服务 显示running 则服务已启动

 

上图倒数第二

上图服务已启动

如果需要在终端内执行MySQL命令 需要加入环境变量

export PATH=$PATH:/usr/local/mysql/bin/

MySQL安装完成

二、redis安装

1. 到官方网站下载redis 当前版本 redis-3.2.1.tar.gz

下载地址:http://redis.io/download

tar -zxvf ./redis-3.2.1.tar.gz  #解压压缩包

cd ./redis-3.2.1          #进入解压的软件目录内

sudo make install          #执行安装

redis-server              #启动redis

2. 安装完成之后 修改redis的配置文件及启动脚本

配置文件 注意修改启动脚本相关路径的配置:

vi /Library/LaunchDaemons/com.redis.plist

#启动脚本内容

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<keyLabel</key>

<stringcom.redis</string>

<keyRunAtLoad</key>

<true/>

<keyProgramArguments</key>

<array>

<string/usr/local/redis/bin/redis-server</string redis

<string/usr/local/redis/redis.conf</string redis.conf

</array>

</dict>

</plist>
#保存退出
​
launchctl load /Library/LaunchDaemons/com.redis.plist #加载启动脚本

launchctl start com.redis #启动服务

ps aux | grep redis  #查看进程是否启动

三、php安装

本人Mac里自带的php版本为5.5 启动正常 但是zend guard loader扩展始终安装不上最后决定使用php5.4

这里提到一个网站 http://php-osx.liip.ch/

网站里有多个PHP版本的集成包 已经内置好了各种扩展 redis memcace mysql等等安装过程极简单

官方给出了相应的命令

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4

等待命令执行完成 我这里用时大概二十分钟左右安装完成后php会安装到/usr/local/目录下php5

export PATH=/usr/local/php5/bin:$PATH #加入环境变量

php -v

PHP 5.4.45 (cli) (built: Mar 10 2016 13:43:09) 

Copyright (c) 1997-2014 The PHP Group

Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

显示php已经是5.4版本

虽然安装了很多扩展 但是并没有zend guard loader的扩展 因此还要下载相关的扩展进行安装

这里要说明一下PHP安装完成后的目录结构

cd /usr/local/php5
ls -l
drwxr-xr-x  158 root  wheel      5372  7 17 13:25 bin
-rw-r--r--    1 root  wheel       440  3 10 20:46 entropy-php.conf
drwxr-xr-x    9 root  wheel       306  7 17 14:44 etc #配置文件目录php.ini php-fpm.conf 如有需要推荐修改./php.d/99-liip-developer.ini
drwxr-xr-x   90 root  wheel      3060  7 17 13:25 include
drwxr-xr-x   13 root  wheel       442  7 17 13:25 info
drwxr-xr-x  197 root  wheel      6698  7 17 14:32 lib
-rwxr-xr-x    1 root  wheel  12400208  3 10 20:46 libphp5.so
drwxr-xr-x   33 root  wheel      1122  7 17 14:43 php.d  #php各种扩展加载的配置目录 其中99-liip-developer.ini可修改配置相当于php.ini
drwxr-xr-x    8 root  wheel       272  7 17 13:24 sbin
drwxr-xr-x   12 root  wheel       408  7 17 13:24 share
drwxr-xr-x    4 root  wheel       136  7 17 13:24 var

安装ZendGuardLoader

tar -zxvf ./ZendGuardLoader-70429-PHP-5.4-darwin10.7-x86_64.tar.gz
cp ./ZendGuardLoader-70429-PHP-5.4-darwin10.7-x86_64/php-5.4.x/ZendGuardLoader.so /usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/

增加启动脚本(注意修改相关文件路径)

vi /etc/php-fpm

#! /bin/sh

### BEGIN INIT INFO

# Provides:          php-fpm

# Required-Start:    $remote_fs $network

# Required-Stop:     $remote_fs $network

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: starts php-fpm

# Description:       starts the PHP FastCGI Process Manager daemon

### END INIT INFO

prefix=/usr/local/php5/

exec_prefix=${prefix}


php_fpm_BIN=${exec_prefix}/sbin/php-fpm

php_fpm_CONF=${prefix}/etc/php-fpm.conf

php_fpm_PID=${prefix}/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"


wait_for_pid () {

        try=0while test $try -lt 35 ; docase "$1" in

                        'created')

                        if [ -f "$2" ] ; then

                                try=''

                                break

                        fi

                        ;;

​

                        'removed')

                        if [ ! -f "$2" ] ; then

                                try=''

                                break

                        fi

                        ;;

                esacecho -n .

                try=`expr $try + 1`

​

        force-quit)

                echo -n "Terminating php-fpm "

​

                if [ ! -r $php_fpm_PID ] ; then

                        echo "warning, no pid file found - php-fpm is not running ?"

                        exit 1

                fikill -TERM `cat $php_fpm_PID`

​

                wait_for_pid removed $php_fpm_PID

​

                if [ -n "$try" ] ; then

                        echo " failed"

                        exit 1

                else

                        echo " done"

                fi

        ;;


        restart)

                $0 stop

                $0 start

        ;;


        reload)

                echo -n "Reload service php-fpm "

​

                if [ ! -r $php_fpm_PID ] ; then

                        echo "warning, no pid file found - php-fpm is not running ?"

                        exit 1

                fi

​

                kill -USR2 `cat $php_fpm_PID`

​

                echo " done"

        ;;

​

        *)

                echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"

                exit 1

        ;;

esac

 

四、nginx安装

OpenResty">这里推荐使用OpenRestyOpenResty">

OpenResty ™ 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

下载OpenRestytar

#安装
tar -zxvf ./openresty-1.9.7.5.tar.gz

cd ./openresty-1.9.15.1

./configure

make 

make install

注意 这一步安装可能会报错 需要安装 PCRE 和 OpenSSL

Mac OS X 不像linux那样 可以使用yum安装软件 依赖包

推荐大家使用brew

首先执行下面命令进行安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew安装完成可以直接使用

关于brew的详细介绍请查看官方说明https://git.io/brew-docs

brew update

brew install pcre openssl

安装完成后重新编译安装openresty

./configure --prefix=/usr/local/openresty \   #指定安装目录

   --with-cc-opt="-I/usr/local/Cellar/openssl/1.0.2h_1/include/ -I/usr/local/Cellar/pcre/8.39/include/" \

   --with-ld-opt="-L/usr/local/Cellar/openssl/1.0.2h_1/lib/ -L/usr/local/Cellar/pcre/8.39/lib/" \

#使用 ./configure --help 查看更多的选项。

make 

make install

OpenResty安装完成后 找到nginx目录进行配置文件的修改

cd /usr/local/openresty 

ls -l

drwxr-xr-x   7 root  admin    238  7 17 17:59 bin

drwxr-xr-x   6 root  admin    204  7 17 17:59 luajit

drwxr-xr-x   7 root  admin    238  7 17 17:59 lualib

drwxr-xr-x  11 root  admin    374  7 18 16:22 nginx

drwxr-xr-x@ 40 root  admin   1360  7 17 17:59 pod

-rw-r--r--@  1 root  admin  95458  7 17 17:59 resty.index

cd ./nginx/conf/

ls -l

-rw-r--r--@  1 root  admin  1077  7 17 17:59 fastcgi.conf

-rw-r--r--@  1 root  admin  1077  7 17 17:59 fastcgi.conf.default

-rw-r--r--@  1 root  admin  1007  7 17 17:59 fastcgi_params

-rw-r--r--@  1 root  admin  1007  7 17 17:59 fastcgi_params.default

-rw-r--r--   1 root  admin  2856  1 25 17:19 injection.lua

-rw-r--r--@  1 root  admin  2837  7 17 17:59 koi-utf

-rw-r--r--@  1 root  admin  2223  7 17 17:59 koi-win

-rw-r--r--@  1 root  admin  3957  7 17 17:59 mime.types

-rw-r--r--@  1 root  admin  3957  7 17 17:59 mime.types.default

-rw-r--r--   1 root  admin  4167  7 17 18:05 nginx.conf

-rw-r--r--@  1 root  admin  2656  7 17 17:59 nginx.conf.default

-rw-r--r--@  1 root  admin   636  7 17 17:59 scgi_params

-rw-r--r--@  1 root  admin   636  7 17 17:59 scgi_params.default

-rw-r--r--@  1 root  admin   664  7 17 17:59 uwsgi_params

-rw-r--r--@  1 root  admin   664  7 17 17:59 uwsgi_params.default

drwxr-xr-x  12 root  admin   408  7 17 18:14 vhosts

-rw-r--r--@  1 root  admin  3610  7 17 17:59 win-utf

#根据需要修改相关配置文件

nginx启动

sudo /usr/local/openresty/nginx/sbin/nginx