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

Homebrew 的 formulas 里默认木有 PHP-FPM,我们需要手动添加:

brew tap homebrew/php  

然后开始安装:

brew search php     //choose php version
brew install --without-apache --with-fpm --with-mysql php71

更改为新安装的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

  设置开机启动:

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 

最终测试

基本上完事了,点击下面的链接来感受下吧:

服务配置

以后你肯定会关闭或者重启上面设置的某个服务的,所以你可能需要设置一些别名。(需要修改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  
时间: 2024-10-04 06:12:36

php+mysql+nginx+phpmyadmin环境搭建的相关文章

windows下 nginx php 环境搭建

windows下配置nginx+php环境 刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是“引擎x”,一般引“擎代”表了性能,而“x”大多出现是表示“xtras(额外的效果)”,那么整个词的意思就是类似“极致效果”,“额外性能”.当然这里不是要来唠嗑,以上是题外话. nginx相较于我们熟悉的apache.IIS的优势,就我浅入浅出的了解,在于“反向代理”和“负载均衡”.因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务.那么上正题了,ngin

centOS7 LNMP+phpmyadmin环境搭建 第三篇phpmyadmin安装

这篇文章主要介绍了CentOS7 LNMP+phpmyadmin环境搭建,第三篇phpmyadmin安装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 之前我们已经安装了lnmp的环境,现在让我们来安装phpmyadmin. 跟前一样,yum默认的库里是没有phpmyadmin的,我们需要从epel库里进行安装,之前已经安装过epel的朋友就可以直接下载rpm包了. 1 2 yum install epel-release rpm -ivh http://rpms.famillecollet

ubuntu 13.04下MYSQL 5.5环境搭建

解决的问题: 安装mysql server和mysql client 5.5 新建远程账户 远程访问权限 MYSQL默认字符集修改为UTF8 检查防火墙 一.安装 BTW:可以使用查找命令查看安装包 sudo apt- 安装命令 sudo apt-get install mysql-server-5.5  回车  (有一个带core的,) sudo apt-get install mysql-client-5.5 然后,输入mysql可查看 二.新建远程账户并赋与权限 grant all pri

Innobackup mysql 多实例环境搭建主从同步

Innobackup mysql 多实例环境搭建主从同步 该实验是在mysql多实例环境下做的:如果需要部署 mysql 多实例环境,则移步: mysql 多实例案例实战: http://blog.csdn.net/wanglei_storage/article/details/49305239 mysql 的主从搭建大家有很多种方式,传统的 mysqldump 方式是很多人的选择之一.但对于较大的数据库则该方式并非理想的选择.使用 Xtrabackup 可以快速轻松的构建 mysql 主从架构

MySQL master-slave主从复制环境搭建初试

原文:MySQL master-slave主从复制环境搭建初试 环境为centos 7.2+mysql 5.7,网上教程很多,原理也不复杂(深知自己踩的坑还不够) 正常情况下,配置起来比较简单.另外,根据个人感受,MySQL的复制感觉要比SQL Server的复制要清爽很多(尽管功能上可能有一些差异). master服务器,首先是开启了二进制日志,同时设置server-id为一个具体的数值 1,创建复制用户 GRANT REPLICATION SLAVE ON *.* to 'repl_test

Mysql + canal + zookeeper环境搭建

Mysql + canal + zookeeper环境搭建 一.mysql集群搭建 1. mysql基本环境 操作系统: Linux version 2.6.32-431.el6.x86_64 数据库:MySQL Community Server 5.7.20 主节点IP:10.60.81.157 主节点IP:10.60.81.158 从节点IP:10.60.81.159 2. 安装mysql 2.1.官网下载MySQL mysql-5.7.20-1.el6.x86_64.rpm-bundle.

CentOS 7 yum nginx MySQL PHP 简易环境搭建

用centos自带的yum源来安装nginx,mysql和php,超级方便,省去编译的麻烦,省去自己配置的麻烦,还能节省非常多的时间. 我们先把yum源换成国内的阿里云镜像源(当然不换也可以),先备份一下原来的源镜像文件,以免出错后可以恢复: [[email protected]192 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载新的CentOS-Base.repo 到/e

Ubuntu下的Apache、Mysql、PHP环境搭建

由于刚学习Linux,选择了界面比较友好的Ubuntu进行研究.命令行+可视化对于初学者来说组合还是比较不错的,图形界面作为命令行的一个过渡能比较直观的看到效果.在应用中学习是一个比较好的办法,我就是为了搭建一个基于Linux的服务器环境而进行学习的,根据网上搜集的资料,完成了LAMP的配置.主要过程如下: 1.LAMP的安装顺序问题,现在是默认安装好了Linux系统,我的版本是Ubuntu 12.04.一般来说比较建议的顺序是Mysql Apache 最后安装PHP,在我实践下来 Apache

如何使用mysql(lamp)分离环境搭建dedecms织梦网站及apache服务器常见的403http状态码及其解决方法

一.实验环境 centos6.5+mysql5.5.32+php5.3.27 软件:DedeCMS-V5.7-GBK-SP1 本实验是使用lamp环境搭建,但mysql数据库与之分离,本实验成功的关键在于防火墙及其selinux关闭的前提下实现. 二.实验步骤 1)下载产品,并解压至www目录内 wget -O /home/chen/tools/  http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-GBK-SP1.tar.gz