mac电脑php+mysql+nginx+phpmyadmin环境搭建
英文原文:http://blog.frd.mn/install-nginx-php-fpm-mysql-and-phpmyadmin-on-os-x-mavericks-using-homebrew/
参照博文作者: http://blog.liuweifeng.net/author/liuweifeng/
首先,为了不出现各种神奇的错误,请安装 XCode。Yosemite 发布后,XCode 的最新版本是 6.1.0(6A1052d)。然后,不可忽略的一步,请在终端里执行
xcode-select --install
来安装最新的 XCode 命令行工具(Xcode Command Line Tools)。
安装 Homebrew
如果没有安装,请移步官网 →_→ Homebrew 官方网站
如果你已经安装了 Homebrew,请在终端执行brew doctor检查各种可能的冲突和问题。然后执行 brew update && brew upgrade 升级 Homebrew 自身和自带的 formulas
安装 PHP-FPM
添加brew的php扩展库:
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
安装开发包:
brew install wget watch tmux cmake openssl imagemagick graphicsmagick gearman geoip readline autoconf multitail source-highlight autojump zsh-completions sshfs
然后开始安装:
brew search php //choose php version
安装php一下扩展
brew install php71-apcu\
php71-gearman\
php71-geoip\
php71-gmagick\
php71-imagick\
php71-mcrypt\
php71-memcache\
php71-memcached\
php71-mongo\
php71-apache\
php71-pdo-pgsql\
php71-redis\
php71-sphinx\
php71-swoole\
php71-uuid\
php71-xdebug;
更改为新安装的php,打开~/.bash_profile
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" //可以采取下面的方式
因为我们打算安装 Nginx,Apache 就不需要了(貌似 OS X 自带了 Apache?)。
如果你想在命令行里使用 PHP 的话,你需要在你 shell 的 Profile 里设置下 $PATH:
# If you use Bash
echo 'export PATH="$(brew --prefix homebrew/php/php71)/bin:$PATH"' >> ~/.bash_profile && . ~/.bash_profile
# If you use ZSH
echo 'export PATH="$(brew --prefix homebrew/php/php71)/bin:$PATH"' >> ~/.zshrc && . ~/.zshrc
安装composer
brew install composer
composer --version
设置开机启动:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/php71/7.1.5_17/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/
启动 PHP-FPM:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php71.plist
看下 PHP-FPM 是不是在监听 9000 端口:
lsof -Pni4 | grep LISTEN | grep php
输出应该是这个样子的:
php-fpm 78168 liuweifeng 7u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 78170 liuweifeng 0u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 92277 liuweifeng 0u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 94154 liuweifeng 0u IPv4 0x9c66922b37bcbcb7 0t0 TCP 127.0.0.1:9000 (LISTEN)
安装 MySQL
brew install mysql
设置开机启动:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
MySQL 安全设置
mysql_secure_installation
可以设置 root 的密码、移除匿名用户、禁止 root 远程登录,等等。
安装 phpMyAdmin
首先需要安装 autoconf
brew install autoconf
设置 $PHP_AUTOCONF:
# If you use Bash
echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.bash_profile && . ~/.bash_profile
# If you use ZSH
echo 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.zshrc && . ~/.zshrc
开始安装 phpMyAdmin :
brew install phpmyadmin
安装 Nginx
brew install nginx
设置开机自动启动
由于我们需要启动 80 端口,所以需要使用 sudo 来运行 nginx
sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
启动 Nginx
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
关闭 Nginx
sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
更多配置
nginx.conf
创建配置文件中需要用到的目录
mkdir -p /usr/local/etc/nginx/logs
mkdir -p /usr/local/etc/nginx/sites-available
mkdir -p /usr/local/etc/nginx/sites-enabled
mkdir -p /usr/local/etc/nginx/conf.d
mkdir -p /usr/local/etc/nginx/ssl
sudo mkdir -p /var/www sudo chown :staff /var/www
sudo chmod 775 /var/www
移除默认的 nginx.conf(其实在 /usr/local/etc/nginx/nginx.conf.default 还有个备份,你可以看一眼,如果你想看的话。。。),然后使用 curl从 Github 上下载我的自定义版本:
rm /usr/local/etc/nginx/nginx.conf
curl -L https://gist.github.com/frdmn/7853158/raw/nginx.conf -o /usr/local/etc/nginx/nginx.conf
这是一个尽可能简单和轻量级的配置文件。
加载 PHP-FPM
从 Github 下载我的自定义配置文件:
curl -L https://gist.github.com/frdmn/7853158/raw/php-fpm -o /usr/local/etc/nginx/conf.d/php-fpm
创建默认的虚拟主机
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default -o /usr/local/etc/nginx/sites-available/default
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default-ssl -o /usr/local/etc/nginx/sites-available/default-ssl
curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_phpmyadmin -o /usr/local/etc/nginx/sites-available/phpmyadmin
使用 Git 从 Github 上克隆我的实例虚拟主机配置(包括默认的 404、403页面,和一个 phpinfo() rewrite)。
git clone http://git.frd.mn/frdmn/nginx-virtual-host.git /var/www
rm -rf /var/www/.git
克隆完记得把 .git 目录删除掉,这样就不会被 Git 记录了。
译者注:其实吧,我赶脚这个 404 和 403 挺丑的。。。
设置 SSL
创建需要的目录
mkdir -p /usr/local/etc/nginx/ssl
创建 4096bit RSA keys 和自签名证书:
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=localhost" -keyout /usr/local/etc/nginx/ssl/localhost.key -out /usr/local/etc/nginx/ssl/localhost.crt
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=phpmyadmin" -keyout /usr/local/etc/nginx/ssl/phpmyadmin.key -out /usr/local/etc/nginx/ssl/phpmyadmin.crt
启用虚拟主机
创建软链接:
ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default
ln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-ssl
ln -sfv /usr/local/etc/nginx/sites-available/phpmyadmin /usr/local/etc/nginx/sites-enabled/phpmyadmin
再次启动 Nginx:
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
最终测试
基本上完事了,点击下面的链接来感受下吧:
- http://localhost → "Nginx works" page
- http://localhost/info → phpinfo()
- http://localhost/nope → " Not Found" page
- https://localhost:443 → "Nginx works" page (SSL)
- https://localhost:443/info → phpinfo() (SSL)
- https://localhost:443/nope → "Not Found" page (SSL)
- https://localhost:306 → phpMyAdmin (SSL)
服务配置
以后你肯定会关闭或者重启上面设置的某个服务的,所以你可能需要设置一些别名。(需要修改bash_aliases中的php版本)
# If you use Bash
curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.bash_aliases
cat /tmp/.bash_aliases >> ~/.bash_aliases
echo "source ~/.bash_aliases" >> ~/.bash_profile
# If you use ZSH
curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.zshrc
cat /tmp/.bash_aliases >> ~/.zshrc
echo "source ~/.bash_aliases" >> ~/.zshrc
再打开一个终端窗口,来使上面的别名生效:
source ~/.bash_profile
# or
source ~/.zshrc
现在你可以使用别名而不是 launchctl 和那一长串参数了~
Nginx
你可以这样来启动、关闭、重启 Nginx:
nginx.start
nginx.stop
nginx.restart
快速 tail 访问日志和错误日志:
nginx.logs.access
nginx.logs.default.access
nginx.logs.phpmyadmin.access
nginx.logs.default-ssl.access
nginx.logs.error
nginx.logs.phpmyadmin.error
检查配置:
sudo nginx -t
PHP-FPM
启动、关闭、重启 PHP-FPM:
php-fpm.start
php-fpm.stop
php-fpm.restart
检查配置:
php-fpm -t
MySQL
启动、关闭、重启 MySQL:
mysql.start
mysql.stop
mysql.restart
mac电脑php+mysql+nginx+phpmyadmin环境搭建的更多相关文章
- Django Python MySQL Linux 开发环境搭建
Django Python MySQL Linux 开发环境搭建 1.安装Python 进行Python开发,首先必须安装python,对于linux 或者Mac 用户,python已经预装. 在命令 ...
- mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
一.mac OS X下Java项目环境搭建 因为某些原因新入手了台最新版的MacBook Pro,意味着今天要花一天时间安装各种软件以及项目环境搭建╮(╯▽╰)╭ 项目环境搭建步骤: 1.安装jdk ...
- 在Mac上安装mysql并配置环境(详细篇)
在Mac上安装mysql并配置环境(详细篇) 1.下载mysql mysql官网 这一步根据自己电脑架构选择,分为arm和x86 下载完成之后打开就可以 接下来运行安装就可以,一直下一步,设置完密码就 ...
- express+mysql+vue开发环境搭建
最近开始做一个实验室资产管理系统,后台使用node.js的Express框架,前端使用vue,数据库使用mysql.在这里开始简单记录一下开发过程和遇到的问题. 今天要说的是express+mysql ...
- 提高性能,MySQL 读写分离环境搭建(一)
这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...
- Nginx基础环境搭建
1.下载docker toolbox https://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 2.选择好安装目录 一路nex ...
- nginx+php环境搭建详解(Linux)
今天在内网环境下,给linux主机安装nginx+php环境,由于是内网环境,只能手动解压缩包进行安装,在这过程中我也着实遇到了一些问题(困扰了我许久),还好最后搭建环境成功了,所以写篇博客记录一下, ...
- Apache+PHP+MySQL+phpMyAdmin环境搭建
最近在学习web服务端开发,一开始是使用wamp的,后来决定自己完整配置一下环境,并把整个过程记录下来.其中,Apache是服务器,php是用来编写服务端的语言,MySQL作为数据库,phpMyAdm ...
- CentOS 7 yum nginx MySQL PHP 简易环境搭建
用centos自带的yum源来安装nginx,mysql和php,超级方便,省去编译的麻烦,省去自己配置的麻烦,还能节省非常多的时间. 我们先把yum源换成国内的阿里云镜像源(当然不换也可以),先备份 ...
随机推荐
- mysql8.0.13免安装版配置
一.下载 下载地址:https://dev.mysql.com/downloads/mysql/ 二.解压到某个目录,例如:D:/mysql/mysql-8.0.13-winx64 三.配置环境变量 ...
- SpringBoot 2.x.x会拦截静态资源问题
之前在看尚硅谷视频时,可谓是按照这老师的说法,一步一步按部就班,于是采坑了,在SpringBoot 2.x.x之前是不会对静态资源拦截的,但是现在已经普通使用2.x.x这个版本会对静态资源进行拦截.看 ...
- jsp的环境搭建
JSP : 动态网页 一.静态和动态的区别: 1.是否会随着时间.地点.用户操作的改变而改变. 2.动态网页需要使用服务器端的脚本语言(JSP) 二.BS CS 1.CS:QQ.微信.CS游戏. 缺点 ...
- GCD的简单使用方法
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/like7xiaoben/article/details/25629365 /* 创建一个队列用来运行 ...
- vue/cli3 配置相对路径
根目录下新建 vue.config.js 文件 const path = require('path') function resolve(dir){ return path.join(__dirna ...
- gitbook build/serve 失败,Error: ENOENT: no such file or directory, stat ...
我使用的 gitbook 版本 CLI version: 2.3.2 GitBook version: 3.2.3 在使用 gitbook 生成文档时,发现编译偶尔不规律性地出现错误 d:\Mine\ ...
- Py之any函数【转载】
转自:http://www.runoob.com/python/python-func-any.html 1.any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 ...
- 真正可用的安卓webview html图片上传限制突破处理(拍照+相册都可以用)
两篇起步使用webview参考文章,第一篇解除限制,但会调用外部浏览器打开链接,第二篇 覆盖shouldOverrideUrlLoading return true https://www.jb51. ...
- session 和 cookie
在web请求中,很多的时候服务器需要知道来访的客户是谁,但是HTTP协议本身是不带认证的(ftp协议需要用户密码),因此cookie和session诞生了. session是解决http协议无状态 ...
- mvc自定义分页(加页数的)(转)
1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...