ation / {
index index.php index.html index.htm;
autoindex on;
}
#proxy the php scripts to php-fpm
location ~ \.php$ {
include /usr/local/etc/nginx/fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
}
在上述的/home/www/php_project
的目录下,我们创建一个 index.php 文件:
cd /home/www/php_project
vi test.php
写入内容:
<?php
phpinfo();
重启 nginx:
sudo nginx -s stop
sudo nginx
打开浏览器,访问localhost:8099
。可以看到关于 PHP 配置的信息。
至此,MNMP(MacOS-nginx-MySQL-PHP) 环境已经搭建完成。
安装 PHP 扩展
环境搭建完成后,你可能还需要安装一些 PHP 扩展,如 MemCache、Redis、Mongo、Solr 等。
在安装 PHP 扩展之前,你需要完成一些必要的操作。
关闭 SIP
这是安装 PHP 扩展前的必要操作。如果跳过这一操作,即使你用 sudo 命令安装扩展,依旧会报 Operation not permitted 的错误。这是因为 OSX 10.11 El Capitan(或更高)新添加了一个新的安全机制叫系统完整性保护 System Integrity Protection (SIP),所以对于以下目录:
- /System
- /sbin
- /usr 不包含(/usr/local/)
仅仅供系统使用,其它用户或者程序无法直接使用,而我们的 /usr/lib/php/extensions/
则刚好在受保护范围内(误伤世界上最好的语言)。
所以解决方法就是禁掉 SIP 保护机制,步骤是:
- 重启系统
- 按住 Command + R(重新亮屏之后就开始按,象征地按几秒再松开,直到出现苹果标志性的 Logo)
- 菜单“实用工具” ==>> “终端” ==>> 输入:
csrutil disable
。执行后会输出:Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect
- 重启系统
当然,PHP 扩展安装完成后,就可以重新打开 SIP,方法同上,命令改为:csrutil enable
。
安装一些必要的依赖包
安装 autoconf,phpize 生成 PHP 编译配置时需要:
brew install autoconf
安装 openssl,安装某些 PHP 扩展如 mongo 时需要:
brew install openssl
mongo 扩展安装是可能会报 openssl 错误,解决方法如下:
ln -s /usr/local/Cellar/openssl/1.0.2j/include/openssl /usr/include/openssl
正式安装扩展
这里有两种方法安装 PHP 扩展:
通过 pecl 管理工具安装
首先安装 pecl:
cd /usr/lib/php
sudo php install-pear-nozlib.phar
pecl 一般就会安装成功,如果失败,换另一种方式安装 pecl:
curl -O http://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar
- 输入
1
,回车,输入/usr/local/pear
- 输入
4
,回车,输入/usr/local/bin
- 回车
安装好 pecl 之后,我们就可以愉快地安装 PHP 扩展了:
sudo pecl install solr
sudo pecl install memcache
sudo pecl install mongo
通过源码包安装
除了通过 pecl 安装,我们还可以通过下载源码包来进行安装扩展:
wget http://pecl.php.net/get/redis-2.2.8.tgz
tar -zxvf redis-2.2.8.tgz
cd redis-2.2.8
phpize # 生成 php 编译配置
./configure # 编译配置检测
make # 编译
sudo make install # 安装
扩展安装完成后,我们还需最后一步,修改php.ini
文件,并重启 PHP-FPM:
cd /private/etc/
cp php.ini.default php.ini
vi php.ini
追加扩展信息:
extension=memcache.so
extension=mongo.so
extension=redis.so
extension=solr.so
重启 PHP-FPM:
ps aux|grep php-fpm
sudo kill php-fpm min pid # 杀死 php-fpm 最小的进程id
sudo php-fpm
打开浏览器,访问localhost:8099
。查看扩展是否安装成功。
参考
github 地址