Mac OS X下安装nginx+php及测试
---先安装XCode,这样才有GCC等必要开发工具包
默认XCode安装完成不会添加命令行支持,需要在XCode的“偏好设置-->下载-->选择下载命令行支持”
--命令行在 "应用程序--> 实用工具-->终端"
----安装依赖的库
建议通过Macports来进行安装,(附MacPorts安装使用说明)。只需要执行如下指令:
sudo port install pcre
如果你已经通过自己下载pcre包来make & make install,很有可能会由于安装的pcre路径问题,在安装其他软件时会出问题。想要删除安装好的pcre,则只需要在下载下来的pcre解压文件夹下,执行make uninstall。
---- 安装Nginx 方法一:仍然通过Macports,执行下面语句就ok ```bash sudo port install nginx spawn-fcgi ``` 方法二: ```bash $curl -O http://nginx.org/download/nginx-0.8.53.tar.gz $tar zxvf nginx-0.8.53.tar.gz $cd nginx-0.8.53 $./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf $make $sudo make install ``` 配置文件为:/usr/local/nginx/conf/nginx.conf 默认安装在/usr/local/nginx 启动:输入以下命令启动Nginx,然后浏览器输入地址http://localhost进行测试,看到很大的字体的Welcome to nginx!就代表安装成功了 /usr/local/nginx/sbin/nginx 推荐关闭方式: /usr/local/nginx/sbin/nginx -s stop 其他关闭方式: ps -ef | grep nginx 找到pid sudo kill pid PHP安装: ```bash sudo port install php5 +fastcgi fcgi php5-gd php5-mysql php5-sqlite php5-eaccelerator php5-curl php5-iconv #配置文件 cd /opt/local/etc/php5 sudo cp php.ini-development php.ini ``` 将时区修改为:date.timezone = Asia/Chongqing 错误级别修改为:error\_reporting = E\_ALL & ~E\_NOTICE 启动: ```bash sudo /opt/local/bin/spawn-fcgi -C 2 -p 9000 -f /opt/local/bin/php-cgi ``` #### 遇到NGINX PHP “No input file specified”问题,解决方法: 1、 php.ini(/opt/local/etc/php5/php.ini或者/etc/php5/cgi/php.ini)的配置中这两项 cgi.fix\_pathinfo=1 (这个是自己添加的) doc\_root= (这行本来就有) 并修改下面: location ~ .php$ { fastcgi\_pass 127.0.0.1:9000; fastcgi\_index index.php; fastcgi\_param SCRIPT\_FILENAME /var/www/sitepath$fastcgi\_script\_name; include fastcgi\_params; } 红色部分路径需要根据你主机主目录的实际情况填写,也可以用$document\_root代替,其值实为PHP配置文件中的basedir一值。 ### 测试方法: 在nginx的html目录下(默认为/usr/local/nginx/html),新建一个文件test.php,输入以下测试代码: ```php \<?php //测试mysql $link = mysql\_connect('localhost','root','mysql密码'); if(!$link){ echo "mysql fail!"; }else{ echo "mysql succees"; } mysql\_close(); //输出php信息 phpinfo(); ?\> ``` 通过http://localhost/test.php访问,如果能正常显示,那恭喜你,ok了。 #### 附nginx, php, mysql快捷启动代码,建议复制保存为startup.sh,每次通过执行./startup.sh,然后输入管理员密码,就一次性开启了三项服务: ```bash #!/bin/sh sudo /usr/local/nginx/sbin/nginx sudo /opt/local/bin/spawn-fcgi -C 2 -p 9000 -f /opt/local/bin/php-cgi sudo /usr/local/mysql/bin/mysqld\_safe & ``` 再附上nginx, php, mysql快捷关闭代码,建议复制保存为shutdown.sh,每次通过执行./shutdown.sh就关闭了三项服务: ```bash #!/bin/sh sudo /usr/local/nginx/sbin/nginx -s stop; `ps -ef | grep php | head -n1|awk '{print "sudo kill "$2}'`; sudo /usr/local/mysql/bin/mysqladmin -uroot -pms shutdown; ```