search
Homephp教程php手册mac os x安装ngigx+php fastcgi+mysql+memcache详细流程

Part 1: MacPorts Mac上装软件常用的是MacPorts和homebrew,这个软件会很方便地提供软件的 安装 。装这些前先得装Xcode,Xcode在appstore上有,一个多G,下载 安装 ,完成后在launchpad上回有Xcode图标,要点击才是正式 安装 ,装完后你在终端输入gcc -v,发

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/,就可以看到NginxWelcome页面。

sudo nginx -t 检测配置文件是否有效

sudo nginx -s reload 重启

sudo nginx -h # 帮助

重点来了

1、让nginx开机自动启动

vi /Library/LaunchDaemons/org.macports.nginx.plist

内容为

 

/span>

"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >

Labelorg.macports.nginx

ProgramArguments

        /opt/local/bin/daemondo

        --label=nginx

        --start-cmd

        /opt/local/sbin/nginx

        ;

        --pid=fileauto

        --pidfile

        /opt/local/var/run/nginx/nginx.pid

Debug

Disabled

KeepAlive

如果文件已经有内容直接退出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

       内容如下

 

  Labelorg.macports.phpfcgi

  Debug

  OnDemand

  RunAtLoad

  EnvironmentVariables

  

    PHP_FCGI_CHILDREN2

    PHP_FCGI_MAX_REQUESTS5000

  

  LaunchOnlyOnce

  ProgramArguments

  

    /opt/local/bin/spawn-fcgi

    -C 2

    -p 9000

    -f /opt/local/bin/php-cgi

  

保存后输入

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下载最新的版本,下载完成后解压,进入到文件夹里,依次执行以下命令:

phpize
./configure
make
make install

 编译完成后memcache.so会放到/opt/local/lib/php/extensions/debug-non-zts-xxxxxxx目录下

写一个php加载memcache的配置文件

vi /opt/local/var/db/php5/memcache.ini

内容为:extension=memcache.so

保存退出

然后写一个memcache的启动脚本

vi /etc/init.d/memcached

内容为:

#!/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

内容为

 

  Labelorg.macports.memcache

  OnDemand

  Username

    nobody

  ProgramArguments

  

    /etc/init.d/memcached

    start

  

  Debug

  Disabled

  RunAtLoad

  KeepAlive

同样保存完后运行

sudo launchctl load -w /Library/LaunchDaemons/org.memcache.plist

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
ip与mac绑定什么意思ip与mac绑定什么意思Mar 09, 2023 pm 04:44 PM

ip与mac绑定是指将特定的IP地址与特定的MAC地址关联起来,使得只有使用该MAC地址的设备才能够使用该IP地址进行网络通信。ip与mac绑定可以防止被绑定的主机的IP地址不被假冒,前提条件:1、MAC地址是唯一的,并且不可假冒;只能绑定与路由器直接相连的网络上的主机(也就是主机的网关在路由器上)。

mac版下载是什么意思mac版下载是什么意思Mar 06, 2023 am 09:52 AM

mac版下载的意思是当软件在选择安装时,选择MAC版下载;Windows版和MAC版是两个不同的操作系统,所以大多数软件在选择安装的同时需要选择Windows版还是MAC版。

mac鼠标滚轮相反怎么办mac鼠标滚轮相反怎么办Mar 16, 2023 pm 05:44 PM

mac鼠标滚轮相反的解决办法:1、打开mac电脑,点击屏幕的苹果标志,然后选择“系统偏好设置”;2、在“系统偏好设置”窗口中,选择“鼠标”;3、在“鼠标”窗口中,将“滚动方向:自然”前面的勾去掉即可。

修复文件共享在 MacOS Ventura 中不起作用修复文件共享在 MacOS Ventura 中不起作用Apr 13, 2023 am 11:34 AM

修复 SMB 文件共享在 MacOS Ventura 中不起作用的问题从  Apple 菜单打开 Mac 上的“系统设置”应用程序转到“常规”,然后转到“共享”找到“文件共享”的开关并将其关闭通过转到  Apple 菜单并选择重新启动来重新启动 Mac重新启动后,返回共享系统设置面板并将“文件共享”重新设置为打开位置像往常一样恢复文件共享,它应该按预期工作如果 MacOS Ventura Mac 与另一台 Mac 或设备之间的文件共享突然再次停止工作,您可能需要在几天后或随机重复此过程。

如何防止 Mac 在显示器关闭时进入睡眠状态 (MacOS Ventura)如何防止 Mac 在显示器关闭时进入睡眠状态 (MacOS Ventura)Apr 13, 2023 pm 12:31 PM

显示器关闭时如何防止 Mac 休眠如果您希望 Mac 显示器能够在整个计算机不进入睡眠状态的情况下关闭,请在此处进行适当的设置调整:下拉  Apple 菜单并转到“系统设置”转到“显示”点击“高级...”切换“防止显示器关闭时电源适配器自动休眠”的开关现在 Mac 显示屏可以关闭,同时防止 Mac 本身进入睡眠状态。这可能主要与 Mac 笔记本电脑用户相关,但即使是那些没有 MacBook 的用户也可能会发现该功能很有用。

mac克隆是什么意思mac克隆是什么意思Jan 31, 2023 am 10:33 AM

mac克隆全称mac地址克隆,是固化在网卡上串行EEPROM中的物理地址,通常有48位长。mac克隆一般应用在路由器上,用户在用电脑直接拨号上网,后来又加了个路由器,通过路由器来实现多台电脑同时上网,这时要用到mac地址克隆了,就是把当前的电脑的mac地址克隆到路由器中去,因为运营商是把你的电脑mac地址绑定你的账号的,所以得克隆以后才能用。

mac的shift键是哪个键mac的shift键是哪个键Mar 13, 2023 pm 02:20 PM

mac的shift键是fn键上方、caps lock键下方的一个键,该键在键盘最左侧,由右下往上数第2个键;shift键是键盘中的上档转换键,可以通过“Ctrl+Shift”组合键来切换输入法。

fcpx快捷键有哪些fcpx快捷键有哪些Mar 17, 2023 am 10:21 AM

fcpx快捷键有:1、“Command-H”快捷键,用于隐藏应用程序;2、“Option-Command-H”快捷键,用于隐藏其他应用程序;3、“Option-Command-K”快捷键,用于键盘自定;4、“Command-M”快捷键,用于最小化;5、“Command-O”快捷键,用于打开资源库等。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),