智者一切求自己,愚者一切求他人 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影

macOS下安装nginx+php+memcached+redis+mysql+yaf扩展环境教程

环境配置 memory 发布于April 12, 2017 标签: PHP, MySQL, mac, Redis, Memcached, Yaf

macOS 10.12.4
直接上命令,不多说了。
下载并安装各软件包均通过 Homebrew,因此,安装之前,需在 Mac 上下载并安装  Homebrew,在 CLI 中通过下面的命令可以完成:

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

怎么用brew不是这篇文章介绍的。我们直接说我本地的配置过程

这里安装默认的 Nginx

brew install nginx

新版的macOS默认没了Launch目录,创建个

mkdir -p ~/Library/LaunchAgents

添加 Nginx 至开机启动:

ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents

设置nginx的执行文件权限,这样就可以80端口运行了

sudo chown root:wheel /usr/local/Cellar/nginx/1.10.0/bin/nginx
sudo chmod u+s  /usr/local/Cellar/nginx/1.10.0/bin/nginx
sudo chown -R $USER /usr/local/var/log/nginx/

Nginx安装完成,开启和停止服务的命令:

sudo nginx         # Start
sudo nginx -s stop # stop

安装PHP

brew search php

我这儿安装php71 也就最新的7.1版本

brew install --without-apache --with-fpm --with-mysql php71

安装相关扩展(我自己用的,你们需要其它的自行查看对应的扩展名)

brew install php71-xdebug php71-memcached php71-swoole php71-redis php71-pdo-pgsql php71-mcrypt 

添加进开机启动

ln -sfv /usr/local/opt/php71/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/
ln -sfv /usr/local/Cellar/memcached/1.4.36/homebrew.mxcl.memcached.plist  ~/Library/LaunchAgents/

yaf扩展安装
https://github.com/laruence/yaf下载最新的源码安装包并解压

unzip yaf-master.zip
cd yaf-master

找到我们的php的bin目录

echo $(brew --prefix homebrew/php/php71)

安装autoconf,否则会报错 Cannot find autoconf. Please check your autoconf installation and the

brew install autoconf

执行安装

/usr/local/opt/php71/bin/phpize
./configure --with-php-config=/usr/local/opt/php71/bin/php-config
make && make install

完事后会提示你扩展目录,像我的是

/usr/local/Cellar/php71/7.1.3_15/lib/php/extensions/no-debug-non-zts-20160303/

打开/usr/local/etc/php/7.1/conf.d目录,复制个ini文件,重命名ext-yaf.ini
内容改为

[yaf]
extension="/usr/local/Cellar/php71/7.1.3_15/lib/php/extensions/no-debug-non-zts-20160303/yaf.so"

mysql安装

brew install mysql

安装完了会有一些提示,默认密码为空,启动命令

mysql.server start

添加开机启动

ln -sfv /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

启动mysql,然后初始化

mysql_secure_installation

会依次出现下面的各种提示

New password:                   //给root账号设置一个新密码. 输入密码后回车

Re-enter new password:      //确认刚才的密码

Remove anonymous users? (Press y|Y for Yes, any other key for No) :    //是否删除匿名账号
Success.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :   //禁止远程登录

Remove test database and access to it? (Press y|Y for Yes, any other key for No) :  //删除test数据库

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :  //立即刷新数据库权限,也就是刚才的设置立即生效

用你的mysql工具连接一下,我个人推荐sequel pro

安装redis

brew install redis

完成了会提示你

brew services start redis //启动命令
redis-server /usr/local/etc/redis.conf //配置等信息

开机启动

ln -sfv /usr/local/Cellar/redis/3.2.8/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/

配置环境

source ~/.profile
alias nginx.start='launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.stop='launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.restart='nginx.stop && nginx.start'
alias php-fpm.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php71.plist"
alias php-fpm.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php71.plist"
alias php-fpm.restart='php-fpm.stop && php-fpm.start'
alias mysql.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.restart='mysql.stop && mysql.start'
alias memcached.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.restart='memcached.stop && memcached.start'
alias redis.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.restart='redis.stop && redis.start'

改下nginx的相关配置

vi /usr/local/etc/nginx/nginx.conf

内容大致如下

worker_processes  8;
events {
    worker_connections  1024000;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 2000M;
    include servers/*;
}

然后是建个php-fpm文件

location ~ \.php$ {
    try_files    $uri = 404;
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_index    index.php;
    fastcgi_intercept_errors  on;
    include fastcgi.conf;
}

进servers目录下建个默认站点default.conf

server {
    listen       80;
    server_name  _;
    root         /usr/local/var/www/;
    access_log  off;
    location / {
        index  index.html index.htm index.php;
        autoindex   on;
        include     php-fpm;
    }
}

完事了重启一下机器 ... 收工

相关推荐

添加新评论

网站状态

  • 栏目分类:49个
  • 发布文章:1324篇
  • 用户评论:697条
  • 开博至今:3998天

正则速查

[abc] 匹配中括号中的单个字符,如a或b或c
[^abc] 匹配除了a、b、c等字符的其他单个字符
[a-z] 匹配一个字符范围,如a到z
[a-zA-Z] 匹配一个字符范围,如a-z 或 A-Z
^ 匹配行的开始
$ 匹配行的结束
\A 匹配一个字符串的开始
\z 匹配一个字符串的结束
. 匹配任意单个字符
\s 匹配空白字符,如空格,TAB
\S 匹配非空白字符
\d 匹配一个数字
\D 匹配非数字
\w 匹配一个字母
\W 匹配非字母
\b 匹配字符边界
(...) 引用所有括号中的内容
(a|b) a或者b
a? 零个或1个a
a* 零个或多个a
a+ 1个或多个a
a{3} 3次重复的a
a{3,} 3次或3次以上重复的a
a{3,6} 3到6次重复的a

修正符

/g 查找所有可能的匹配
/i 不区分大小写
/m 多行匹配
/s 单行匹配
/x 忽略空白模式
/e 可执行模式,PHP专有
/A 强制从目标字符串开头匹配
/D 使用$限制结尾字符,则不允许结尾有换行
/U 只匹配最近的一个字符串;不重复匹配

最新回复

  • tomxuetao: 能个实例吗?
  • memory: 哈哈哈。。。话说也没毛病。
  • 硫酸亚铁: 看了文章觉得自己已经是松鼠癌了 东西总是先占着 反正我有 什么...
  • xl: 支持一下
  • iHerb海淘攻略: 感谢分享
  • memory: POINT
  • sunyunlin: 数据库应该建些什么字段?
  • pengcheng: 已解决
  • pengcheng: Oops! It seems that sphinx was b...
  • 券都有: 感谢分享
  • memory: 这是我3年前玩过一次,当时因为安装完后,发现日常办公还好,但是好...
  • sdf: 想问一下,激活工具激活后,后面会出现提示要再次重新激活吗?
  • memory: 你要用碗装我吗?还是要我把扔的扔进你碗里???!!! &^_^&
  • 薛才杰: 同感,快扔到我的碗里来。。。
  • memory: 要说明一下,在大陆及香港的云主机或VPS,都是不支持的。原因都懂...
  • 历史趣谈LishiQtan: 很好的文章,值得收藏
  • memory: 现在回头看,,,这么烂的代码,也是醉了.