一、前话:
1.1、环境选择:
重新在mac上配置php,原本mac上就自带有apach、php以及pgsql,如果图简单的话,直接用就可以了,不过在安装前我仔细思考了一下几个问题:
选apache还是nginx:两个我了解的都比较少,相对而言我接触nginx比较多,服务器用的也是nginx,没办法谁叫nginx负载高呢。为了更好的接触nginx的环境,我决定还是统一下环境,方便今后使用,这是这次的主要关键;
安装php:Mac os自带了php,好像是5.3.8,版本比较落后,不过这不碍事,因为以前我都是通过php-osx by Liip来管理php,所以不担心版本问题。不过php-osx by Liip好像没有fmp相关的配置,这样我我要和nginx一起用的话就相对比较麻烦了,那我只能选择其他方案了
安装mysql:这个就没有什么好疑问的了,目前我肯定不会去用pgsql,毕竟没接触过,需要有学习成本的,所以我在这篇纪录中把关于pgsql的部分都去掉了
1.2、那该如何安装:
既然我否定了系统自带的环境,那么就要通过别的方式去安装了,比如说手动编译。如果是手动编译的话,那么就会遇到下面几个问题:
编译费事,php依赖那么多程序,一个个安装,太累!
如果以后更新怎么办?灾难!!
不过好在mac下有自己的第三方管理程序:homebrew,而且相对而言我觉得他可能在某些方面更优越于linux下的apt-get、yum。如果通过homebrew来安装、管理运行环境的话,至少可以解决我几个问题:
安装问题,我不用繁琐的去安装依赖程序
升级问题,只需要brew update一次升级所有程序
版本问题,homebrew版本更新比较及时,而apt-get、yum来说,今年用的基本是几年前的稳定版本了
OK,下面的安装都是基于 homebrew,如果不熟悉或者还没安装有 homebrew 的话,可以查看这篇关于:Mac开发者利器-Homebrew介绍及安装。
二、安装nginx
2.1、安装:
用 brew 一键安装 nignx:
1
brew install nginx
如果需要安装其他 nginx 的版本,可以 “brew edit nginx” 打开修改 nginx 的安装信息包 formula,默认会用 vi 打开,在文件开头处修改 nginx 相应版本的下载地址就行。
2.2、配置
brew 执行完后,nginx 就安装好了。可以用以下指令对 nginx 进行操作:
复制代码 代码如下:
#打开 nginx
sudo nginx
复制代码 代码如下:
mkdir -p ~/Library/LaunchAgents/
cp /usr/local/Cellar/nginx/1.4.2/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
复制代码 代码如下:
2
sudo chown root:wheel /usr/local/Cellar/nginx/1.4.2/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.4.2/bin/nginx
复制代码 代码如下:
brew install mysql
复制代码 代码如下:
sudo mysql_install_db \
--verbose --user=`whoami` \
--basedir="$(brew --prefix mysql)" \
--datadir=/usr/local/var/mysql \
--tmpdir=/tmp \
--explicit_defaults_for_timestamp
复制代码 代码如下:
sudo rm /usr/local/opt/mysql/my.cnf
sudo rm -R /usr/local/var/mysql/
复制代码 代码如下:
/usr/local/opt/mysql/bin/mysqld_safe &
复制代码 代码如下:
/usr/local/opt/mysql/bin/mysqladmin -u root password 'new-password'
复制代码 代码如下:
/usr/local/opt/mysql/bin/mysql_secure_installation
复制代码 代码如下:
mysql -u root -p
复制代码 代码如下:
mkdir -p ~/Library/LaunchAgents/
cp /usr/local/Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
复制代码 代码如下:
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
复制代码 代码如下:
sudo brew install php55 \
--with-debug \
--with-fpm \
--with-gmp \
--with-homebrew-openssl \
--with-imap --with-intl \
--with-libmysql \
--without-bz2 \
--without-mysql \
--without-pcntl \
--without-pear
复制代码 代码如下:
export PATH="$(brew --prefix php54)/bin:$PATH"
[html]
[code]
source ./.profile
复制代码 代码如下:
mkdir -p ~/Library/LaunchAgents/
cp /usr/local/Cellar/php54/5.5.3/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist
复制代码 代码如下:
#!/bin/sh
param=$1
start()
{
fpms=`ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'`
if [ ! -n "$fpms" ]; then
php-fpm
echo "PHP-FPM Start"
else
echo "PHP-FPM Already Start"
fi
}
stop()
{
fpms=`ps aux | grep -i "php-fpm" | grep -v grep | awk '{print $2}'`
echo $fpms | xargs kill -9
for pid in $fpms; do
if echo $pid | egrep -q '^[0-9]+$'; then
echo "PHP-FPM Pid $pid Kill"
else
echo "$pid IS Not A PHP-FPM Pid"
fi
done
}
case $param in
'start')
start;;
'stop')
stop;;
'restart')
stop
start;;
*)
echo "Usage: ./phpfpm.sh start|stop|restart";;
esac
复制代码 代码如下:
server {
listen 80;
server_name localhost;
index index.html index.htm index.php;
......
}
复制代码 代码如下:
location ~ .*\.(php|php5)?$ {
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Library/WebServer/public_html$fastcgi_script_name;
include /usr/local/etc/nginx/fastcgi_params;
#include fcgi.conf;
}
复制代码 代码如下:
sudo chown www:www /Library/WebServer/public_html
复制代码 代码如下:
phpinfo();