Mac OS X Mavericks or Yosemite 安装Nginx、PHP、Mysql、phpMyAdmin

来源:互联网 发布:网站美工要求 编辑:程序博客网 时间:2024/06/05 14:51

转载自 哥们的博客--大宝日记 :http://www.sundabao.com/mac-os-x-mavericks-or-yosemite-安装nginx、php、mysql、phpmyadmin/ 一个坚持做PHP的高手。有兴趣的童鞋可以看看。

首先我把Mac升级到Mac10.10.1 OS X Yosemite(在App Store里可以免费升级)。然后Xcode也要升级到最新版Version6.1,最后安装(或更新) Xcode Command Line Tools.

安装Xcode Command Line Tools

打开终端,输入以下命令,回车,会弹出一个框,点击安装(或Install)继续。

xcode-select --install

安装完成后,打开Xcode,进入Preferences->Locations,查看Xcode Command Line Tools是否是最新版。
我的是这样的
Bildschirmfoto-2014-10-20-um-11-27-56

确认你用的是Xcode 6.1!然后安装homebrew

Homebrew

Mac下的Homebrew相当于Linux下的apt-get、yum,可以获得最新版的各种安装包。

首先,你要Xquartz

curl http://xquartz-dl.macosforge.org/SL/XQuartz-2.7.7.dmg -o /tmp/XQuartz.dmgopen /tmp/XQuartz.dmg

然后用以下命令安装homebrew

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

安装完成后,运行以下命令检查是否安装成功

brew doctor

然后更新、升级下brew源

brew update && brew upgrade

PHP-FPM

因为brew默认不包含php-fpm,所以要先添加一个

brew tap homebrew/dupesbrew tap homebrew/php

然后运行以下命令安装php、php-fpm,可能会花较长时间。

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

设置PHP CLI

如果你想在命令行下运行php,你需要更改下bash shell下的环境变量
# If you use Bash

echo 'export PATH="$(brew --prefix homebrew/php/php55)/sbin:$PATH"' >> ~/.bash_profile && . ~/.bash_profile

# If you use ZSH

echo 'export PATH="$(brew --prefix homebrew/php/php55)/sbin:$PATH"' >> ~/.zshrc && . ~/.zshrc

让php自动开启

mkdir -p ~/Library/LaunchAgentscp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/

运行php-fpm

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist

确认php-fpm监听9000端口

lsof -Pni4 | grep LISTEN | grep php

输出如下
php-fpm 69659 frdmn 6u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69660 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69661 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 69662 frdmn 0u IPv4 0x8d8ebe505a1ae01 0t0 TCP 127.0.0.1:9000 (LISTEN)

Mysql

运行以下命令安装Mysql

brew install mysql

设置自动重启

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

开启数据库服务

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

安全设置

运行以下命令删除匿名用户,并且禁止root远程登录。

mysql_secure_installation> Enter current password for root (enter for none):

如果没有设置root密码,直接回车。

> Change the root password? [Y/n]

回车,输入你的root密码。

> Remove anonymous users? [Y/n]

直接回车。

> Disallow root login remotely? [Y/n]

直接回车。

> Remove test database and access to it? [Y/n]

直接回车。

> Reload privilege tables now? [Y/n]

直接回车,刷新权限。

测试连接数据库

mysql -u root -p

输入root密码:

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

退出

/qBye

phpMyAdmin

首先需要安装autoconf

brew install autoconf

设置$PHP_AUTOCONF

# If you use Bashecho 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.bash_profile && . ~/.bash_profile# If you use ZSHecho 'PHP_AUTOCONF="'$(which autoconf)'"' >> ~/.zshrc && . ~/.zshrc

安装phpMyAdmin

brew install phpmyadmin

Nginx

安装Nginx

brew install nginx

设置自启

sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

测试Web服务器

启动nginx

sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

现在默认监听8080端口,运行以下命令测试

curl -IL http://127.0.0.1:8080

输出:

HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Mon, 19 Oct 2014 19:07:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 19 Oct 2014 19:01:32 GMT
Connection: keep-alive
ETag: “5444dea7-264”
Accept-Ranges: bytes

停止Nginx服务

sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

配置

创建nginx文件夹及配置文件

mkdir -p /usr/local/etc/nginx/logsmkdir -p /usr/local/etc/nginx/sites-availablemkdir -p /usr/local/etc/nginx/sites-enabledmkdir -p /usr/local/etc/nginx/conf.dmkdir -p /usr/local/etc/nginx/sslsudo mkdir -p /var/wwwsudo chown :staff /var/wwwsudo chmod 775 /var/www

Load PHP-Fpm

curl -L https://gist.github.com/frdmn/7853158/raw/php-fpm -o /usr/local/etc/nginx/conf.d/php-fpm

Create default virtual hosts

curl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default -o /usr/local/etc/nginx/sites-available/defaultcurl -L https://gist.github.com/frdmn/7853158/raw/sites-available_default-ssl -o /usr/local/etc/nginx/sites-available/default-sslcurl -L https://gist.github.com/frdmn/7853158/raw/sites-available_phpmyadmin -o /usr/local/etc/nginx/sites-available/phpmyadmin

设置 SSL

创建文件夹存放ssl证书和ssl key

mkdir -p /usr/local/etc/nginx/ssl

生成4096bit key和证书

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.crtopenssl 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

Enable virtual hosts

ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/defaultln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-sslln -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

Test

http://localhost → "Nginx works" pagehttp://localhost/info → phpinfo()http://localhost/nope → " Not Found" pagehttps://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)

配置命令文件

curl -L https://gist.github.com/frdmn/7853158/raw/bash_aliases -o /tmp/.bash_aliasescat /tmp/.bash_aliases >> ~/.bash_aliases# If you use Bashecho "source ~/.bash_aliases" >> ~/.bash_profile# If you use ZSHecho "source ~/.bash_aliases" >> ~/.zshrc

Commands

Nginx

nginx.startnginx.stopnginx.restart

快速tail日志文件

nginx.logs.accessnginx.logs.default.accessnginx.logs.phpmyadmin.accessnginx.logs.default-ssl.accessnginx.logs.errornginx.logs.phpmyadmin.error

查看Nginx配置

sudo nginx -t

PHP-FPM

php-fpm.startphp-fpm.stopphp-fpm.restart

查看PHP—FPM配置文件

php-fpm -t

Mysql

mysql.startmysql.stopmysql.restart

0 0
原创粉丝点击