mac os x安装ngigx+php fastcgi+mysql+memcache详细流程
Part 1: MacPorts
Mac上装软件常用的是MacPorts和homebrew,这个软件会很方便地提供软件的安装。装这些前先得装Xcode,Xcode在appstore上有,一个多G,下载安装,完成后在launchpad上回有Xcode图标,要点击才是正式安装,装完后你在终端输入gcc -v,发现无此命令,没这个命令可没法装软件哦,应该是Xcode默认安装没有装完整,打开Xcode,点击左上方Xcode-》Open develop tools-》more develop tools,进入Xcode的网页搜索UNIX,安装command_line_tools_for_xcode_.dmg,完成后再进入终端,输入gcc -v,ok有了,哈哈哈。
我使用的是macports安装,macports到http://www.macports.org/install.php下载dmg文件安装就可以了,安装成功后,在终端输入
port list #可以看所有软件列表
port search xxx #可以搜索是否有该软件
port install xxx #安装
port uninstall xxx #卸载
port clean xxx #删除安装临时文件
Ps:homebrew的安装
首先:
sudo chown -R `whoami` /usr/local
然后可以正式开始安装,我推荐的安装方式是先用 git-osx-installer 装上 git,然后用 git 安装:
cd /usr/local
git init
git remote add origin git://github.com/mxcl/homebrew.git
git pull origin master
装完后命令与port命令差不多 比如 brew search;brew install
Part 2: Nginx
在终端上输入
sudo port install nginx spawn-fcgi
安装完成后启动nginx会说没有nginx.conf文件,到/opt/local/etc/nginx目录下看到以下几个文件:
fastcgi_params.example koi-utf koi-win mime.types.example nginx.conf.example win-utf
直接复制example文件:
sudo mv mime.types.example mime.types
sudo mv nginx.conf.example nginx.conf
启动nginx:
sudo nginx
访问http://127.0.0.1/,就可以看到Nginx的Welcome页面。
sudo nginx -t # 检测配置文件是否有效
sudo nginx -s reload # 重启
sudo nginx -h # 帮助
1、让nginx开机自动启动
vi /Library/LaunchDaemons/org.macports.nginx.plist
内容为
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1.0'>
<dict>
<key>Label</key><string>org.macports.nginx</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/daemondo</string>
<string>--label=nginx</string>
<string>--start-cmd</string>
<string>/opt/local/sbin/nginx</string>
<string>;</string>
<string>--pid=fileauto</string>
<string>--pidfile</string>
<string>/opt/local/var/run/nginx/nginx.pid</string>
</array>
<key>Debug</key><false/>
<key>Disabled</key><true/>
<key>KeepAlive</key><true/>
</dict>
</plist>
如果文件已经有内容直接退出vi
执行
sudo launchctl load -w /Library/LaunchDaemons/org.macports.nginx.plist
这样nginx开机就回自动启动
2、修改nginx.conf内容
vi /opt/local/etc/nginx/nginx.conf
下面是我的内容
#user nobody;
user www www;
worker_processes 1;
error_log /Users/apple/logs/nginx_errors.log;
events {
worker_connections 4098;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /Users/apple/logs/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /opt/local/etc/nginx/conf.d/*.conf;
include /opt/local/etc/nginx/sites-enabled/*;
}
然后建立目录
sudo mkdir /opt/local/etc/nginx/sites-enabled
进入cd /opt/local/etc/nginx/sites-enabled
编辑一个站点的conf文件
我建了一个default,内容如下
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
access_log /Users/apple/logs/localhost.access.log;
location / {
root /Users/apple/phpdocs;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Users/apple/phpdocs$fastcgi_script_name;
include fastcgi_params;
}
}
保存后在相应的路径上建立log文件和html文件
这个时候先不要放index.php,会出现bad gatway错误,咱们还没装php和fastcgi呢
Part 3: PHP
在终端上输入
安装php5,扩展模块根据自己的需要调整
port install php5 +fastcgi fcgi php5-gd php5-mysql php5-sqlite php5-eaccelerator php5-curl php5-iconv php5-mcrypt
安装完成后,到/opt/local/etc/php5下,cp php.ini-recommended php.ini
然后修改几个项:
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
error_log = /Users/jonathan/logs/php5/error.log
date.timezone = Asia/Shanghai
手动创建/Users/jonathan/logs/php5/error.log日志
我们要再写一个plist文件跑fastcgi
vi /Library/LaunchDaemons/org.macports.phpfcgi.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>
<key>Label</key><string>org.macports.phpfcgi</string>
<key>Debug</key><false />
<key>OnDemand</key><false />
<key>RunAtLoad</key><false />
<key>EnvironmentVariables</key>
<dict>
<key>PHP_FCGI_CHILDREN</key><string>2</string>
<key>PHP_FCGI_MAX_REQUESTS</key><string>5000</string>
</dict>
<key>LaunchOnlyOnce</key><true />
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/spawn-fcgi</string>
<string>-C 2</string>
<string>-p 9000</string>
<string>-f /opt/local/bin/php-cgi</string>
</array>
</dict>
</plist>
保存后输入
sudo launchctl load -w /Library/LaunchDaemons/org.macports. phpfcgi.plist
这样就自动启动php fastcgi
现在去网站目录放个index.php,看下phpinfo()吧
Part4: 安装MySQL
安装mysql很方便,去mysql网站下个dmg吧,有三个文件要安装,一个是mysql安装文件,一个是mysql自动启动,一个是系统设置里的添加项控制mysql的开关。
装完以后下载phpmyadmin到网站目录,
将phpMyAdmin目录的config.sample.inc.php命名为config.inc.php
打开config.inc.php,做如下修改:
$cfg['blowfish_secret'] = '';//用于Cookie加密,随意的长字符串
$cfg['Servers'][$i]['host'] = '127.0.0.1';//MySQL守护程序做了IP绑定
$cfg['Servers'][$i]['AllowNoPassword'] = false;//可以访问无密码的MySQL
从web访问phpMyAdmin,并修改MySQL密码不为空。
Part4: 安装memcache
装这个本来以为可以用port install php5-memcache,结果port的编译包可能有问题,不能building memcache,只有自己编译了
先装libevent
port install libevent
安装完后去http://pecl.php.net/package/memcache下载最新的版本,下载完成后解压,进入到文件夹里,依次执行以下命令:
./configure
make
make install
#!/bin/bash
DAEMON=/opt/local/bin/memcached
NAME=memcached
DESC=memcached
USER=nobody
HOST=0.0.0.0
PORT=11211
MEM=32
LOG=/Users/apple/logs/memcached/info.log
case "$1" in
start)
echo -n "Startring $DESC: "
$DAEMON -m $MEM -p $PORT -l $HOST -u $USER -d -vv >> $LOG 2>&1
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
killall $NAME
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
killall $NAME
sleep 1
$DAEMON -m $MEM -p $PORT -l $HOST -u $USER -d -vv >> $LOG 2>&1
echo "$NAME."
;;
*)
echo "Usage: $NAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
保存后记得赋予可执行权限:chmod +x /etc/init.d/memcached
最后不要忘记创建日志文件:/Users/apple/logs/memcached/info.log
然后让memcached开机启动
写一个plist文件
vi /Library/LaunchDaemons/org.memcache.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>
<key>Label</key><string>org.macports.memcache</string>
<key>OnDemand</key><true/>
<key>Username</key>
<string>nobody</string>
<key>ProgramArguments</key>
<array>
<string>/etc/init.d/memcached</string>
<string>start</string>
</array>
<key>Debug</key><false/>
<key>Disabled</key><true/>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
</dict>
</plist>
同样保存完后运行
sudo launchctl load -w /Library/LaunchDaemons/org.memcache.plist
mac os x安装ngigx+php fastcgi+mysql+memcache详细流程的更多相关文章
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- wget Mac OS 下安装
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理. 下面介绍如何在Mac OS 下安装Wget 下载最新版的 ...
- Mac OS X安装OpenGL
Mac OS X安装OpenGL 安装最新的cmake brew install cmake brew upgrade cmake 安装glew brew install glew 安装GLTools ...
- TensorFlow 安装官方教程:Ubuntu 安装,Mac OS X 安装,Windows 安装
从我的使用体验来看 Ubuntu 是最好的, Mac 没有显卡,后期跑大项目比较鸡肋,Windows 安装各种依赖各种坑.Ubuntu 安装 TensorFlow 方便,后面安装 TensorFl ...
- Mac OS 下安装mysql环境
传送门:Mac下安装与配置MySQL mac 上怎么重置mysql的root的密码? 一.下载mysql 进入官方下载地址:https://www.mysql.com/downloads/ 1.找 ...
- mac OS下 安装MySQL 5.7
Mac OS X 下 TAR.GZ 方式安装 MySQL 5.7 与 MySQL 5.6 相比, 5.7 版本在安装时有两处不同: 1:初始化方式改变, 从scripts/mysql_install_ ...
- mac os x 安装mysql 5.7
一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL Community Server”下方有一个“download” ...
- 以 MAMP 为 Mac OS X 安装并设置 PHP开发环境
PHP 页需要通过 Web 服务器处理.因此,要在 Dreamweaver 中使用 PHP 进行开发,您需要访问支持 PHP 的 Web 服务器和 MySQL 数据库.phpMyAdmin 也很实用, ...
- mac os 上安装mysqldb血泪史
昨天下午在mac上安装mysql-python一直未遂今天查了很多资料终于成功了 最后还是在stackoverflow点击打开链接(好网站啊,一般有什么技术问题在这都能找到)上找到了答案,废话少数: ...
随机推荐
- Big Number--hdu1018(数学)
http://acm.hdu.edu.cn/showproblem.php?pid=1018 题目大意 : 求一个数的阶乘的位数 公式log10(n!)=log10(1)+log10(2)+log1 ...
- React Native填坑之旅--ListView篇
列表显示数据,基本什么应用都是必须.今天就来从浅到深的看看React Native的ListView怎么使用.笔者写作的时候RN版本是0.34. 最简单的 //@flow import React f ...
- I Hate It(hdu1754)(线段树区间最大值)
I Hate It hdu1754 Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 安装python 的 包 paramiko
安装python 的 包 paramiko 安装 依赖 yum -y install gcc python-devel 获取安装 pycryptowget https://pypi.python.or ...
- linux 常用命令大全
linux 常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统 ...
- SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化
本文是基于上一篇<SQLServer 2012之AlwaysOn -- 指定数据同步链路,消除网络抖动导致的提交延迟问题>的问题继续进行优化:具体背景请参照上文: 前后折腾了一个多 ...
- Android 开源项目维护者宣布退出
Android开源项目(Android Open Source Project,AOSP)的长期维护者Jean-Baptiste Quéru在Google+上宣布退出,他退出AOSP项目的原因被认为与 ...
- 控制ASP.NET Web API 调用频率与限流
ASP.NET MVC 实现 https://github.com/stefanprodan/MvcThrottle ASP.NET WEBAPI 实现 https://github.com/stef ...
- sql bcp 笔记
介绍: http://blog.csdn.net/soudog/article/details/4343415 导出格式 BCP NTS.dbo.T_User format nul -f c:/Use ...
- 微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作
开篇介绍 记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终.后来即使能写出来, ...