MAC 安装PHP mysql 相关

Posted by Damon on 2016-07-27

开始学习php 今天折腾了一下环境。
整体来说得益于mac的便利性,安装起来还算顺利。
中间也遇到一些小坑,记录一下。

hombrew 更新

我原来已经安装过homebrew
所以现在需要的是update

1
2
3
4
5
6
7
8
brew update
#报错
Error: Could not link phinze/cask manpages to:
/usr/local/share/man/man1/brew-cask.1
#分析可能是因为新版本将brew-cask目录安装到别的地方去了。所以选择重新安装 brew-cask
brew uninstall --force brew-cask
brew update
# done

安装mysql

之前安装过mysql,年久失修,所以现在执行一下mysql 发现不能用了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql
#error Can't connect to local MySQL server through socket '/tmp/mysql.sock'
#解决:
##检查mysql运行状态
ps -ef | grep mysql

501 72201 1195 0 11:44下午 ttys007 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mysql

#貌似正常 看下 /tmp
cd /tmp
# 没有mysql.sock文件
#通过find命令查找 没找到
find / -name mysql.sock
#删掉一些为初始化成功的路径然后重新初始化。
sudo rm /usr/local/opt/mysql/my.cnf
sudo rm -R /usr/local/var/mysql/
mysqld --initialize
/usr/local/opt/mysql/bin/mysqld_safe 启动
A temporary password is generated for root@localhost: SegzsVgYt4=j
#设置mysql密码
/usr/local/opt/mysql/bin/mysqladmin -u root -p password ''
#输入初始密码SegzsVgYt4=j
#修改了mysql的密码为空
# 现在mysql可以访问了
mysql -u root

安装php、php-fpm…

Mac是预装了php,不过很多扩展都没安装,目测最多只能在终端里执行下php指令,所以我选择重新安装php。由于 brew 默认是没有 php 安装,所以要使用 “brew tap” 来安装 brew 的第三方程序包,这里使用 josegonzalez 的php安装包,具体操作如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
#由于PHP5.5版本已经内嵌了 FPM(FastCGI Process Manager)so:

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
#更多的安装选项可以通过 “brew options php55″ 查看。
#指令执行完后,php 跟 php-fpm 就安装好了。

#指定 php 的解析路径

#~/.bashrc(没有则创建)最后加入一行
export PATH="$(brew --prefix php54)/bin:$PATH"
#添加之后再执行一下source,使之生效
source ./.profile
#要修改配置 php 或者 php-fpm 的话,可以修改
#“/usr/local/etc/php/5.5/php.ini” 、
#“/usr/local/etc/php/5.5/php-fpm.conf”

启动 php-fpm 的话就直接在终端里执行 “php-fpm”,默认打开 php-fpm 会显示一个状态 shell 出来,也可以把 php-fpm 的配置文件里的 “daemonize = no” 改为 “daemonize = yes”,就会以后台守护进程的方式启动,对于刚修改的配置文件,可以执行 “php-fpm -t” 来检测配置有没有问题。

设置 nginx 的 php-fpm 配置

在server块中添加解析文件类型
“index index.html index.htm index.php;”

1
2
3
4
5
6
server {
listen 80;
server_name localhost;
index index.html index.htm index.php;
......
}

打开 nginx 默认注释掉的php location设置,修改如下(具体配置参数,例如路径,这里以我本地安装为准):

1
2
3
4
5
6
7
8
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
OK,这样就可以在访问目录下(默认是/Library/WebServer/public_html)执行 php 文件了。嗯,赶快输出一下 “phpinfo()” 吧~
<?php
phpinfo();