发布于 

PHP 开发准备

注意:这篇文章是基于 Homebrew 安装 php5.6 以及 nginx 和 mysql 的介绍,安装高版本的 php 请绕行。

简介

亲自实践在 MacOS 上面安装 PHP5.6+MySQL+Nginx.

将自己遇到的问题和对应的解决方案, 分享出来, 希望能帮到你.

MacOS 上面搭建 PHP 开发环境, 使用 Homebrew 来安装对应的开发套件, 就更加简单了.

这篇博客的目的就是安装 PHP 开发环境, 并将第一个 PHP 程序部署在 Nginx 上面.

如果在安装和使用过程中遇到问题, 可以查看这篇博客: Mac PHP 安装遇到的问题.

下面开始介绍具体的安装步骤.

一. 安装 Homebrew

这个大家可以自行访问 Homebrew 了解, 这里不再涉及具体的安装过程和方法.

二. 安装 php56

1.加入官方源

1
2
3
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/php

2.安装 PHP

默认安装会运行在 Apache 下.
而我们要使它运行在 PHP-fpm 下,所以要增加参数:

1
--with-fpm --without-apache

查看所有安装参数可以输入:

1
brew option php56

进行查看,参考安装指令:

1
2
3
4
5
6
7
8
9
10
11
12
brew install php56 \
--without-snmp \
--without-apache \
--with-debug \
--with-fpm \
--with-intl \
--with-homebrew-curl \
--with-homebrew-libxslt \
--with-homebrew-openssl \
--with-imap \
--with-mysql \
--with-tidy

这里使用了下面的选项:

1
with-homebrew-curl

我试过不带此选项, 安装 PHP56 会失败, 找不到 curl.

安装成功后, 可以查看版本信息:

1
2
php -v
php-fpm -v

此时看到是的系统自带的版本.

下面一步是增加环境变量, 完成后在看版本信息, 即可.

3.配置 PHP 环境变量

配置环境变量的目的是要使用 brew 安装的 PHP 和 PHP-fpm, 不使用 MacOS 自带的 PHP 版本.

/usr/local/sbin/ 下面是我们 brew 安装的 PHP, 其实他是一个软连接指向:
/usr/local/Cellar/php56/5.6.27_4/sbin

/usr/local/bin/ 下面也是 brew 安装的 PHP, 指向:
/usr/local/Cellar/php56/5.6.27_4/bin

vim ~/.bash_profile 增加

1
export PATH="/usr/local/sbin:$PATH"

使其立即生效, 执行

1
source ~/.bash_profile

或者重启终端.

如果想看系统的 PHP 版本可以这样:

1
/usr/bin/php -v

4.配置 php-fpm

1
sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
1
sudo vi /private/etc/php-fpm.conf

找到 error_log 项,添加下面配置:

1
2
error_log = /usr/local/var/log/php-fpm.log
pid = /usr/local/var/run/php-fpm.pid

否则会报:

1
FPM initialization failed

三. 安装 nginx

1
brew install nginx

创建文件

1
2
3
4
5
mkdir -p /usr/local/var/logs/nginx
mkdir -p /usr/local/etc/nginx/sites-available
mkdir -p /usr/local/etc/nginx/sites-enabled
mkdir -p /usr/local/etc/nginx/conf.d
mkdir -p /usr/local/etc/nginx/ssl
1
2
3
4
5
6
7
sudo mkdir -p /var/www
sudo chown :staff /var/www
sudo chmod 775 /var/www
vi /var/www/info.php
vi /var/www/index.html
vi /var/www/403.html
vi /var/www/404.html

改变 nginx.conf 配置文件

该配置文件在 /usr/local/etc/nginx/nginx.conf 下面.

我的配置:

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
28
29
30
31
32
33
34
35
36
37
38
worker_processes  1;

error_log /usr/local/etc/nginx/logs/error.log debug;
pid /usr/local/var/run/nginx.pid;

events {
worker_connections 256;
}

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 /usr/local/etc/nginx/logs/access.log main;

sendfile on;

keepalive_timeout 65;

index index.html index.php;

include /usr/local/etc/nginx/sites-enabled/*;
include /usr/local/etc/nginx/conf.d/*;
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root ~/projs/phpdev/nginx/nginx_sites/; #web的根目录
index index.php index.html index.htm; #加index.php
}
}
}

注意:

1
2
3
4
location / {
root ~/projs/phpdev/nginx/nginx_sites/; #web的根目录
index index.php index.html index.htm; #加index.php
}

配置了我的 web 目录和支持的文件.

四. 运行 PHP

创建 index.php

启动 PHP-fpm

1
sudo php-fpm

或者以守护进程的方式来启动 PHP-fpm

1
sudo php-fpm -D

启动 Nginx

1
sudo nginx

编辑 index.php

在 web 目录(我配置的) /Users/mark/workspace/mzProjs/phpdev/nginx/nginx_sites/ 新建文件 index.php.

index.php 里面可以编写代码:

1
2
3
4
5
6
7
8
9
10
<!-- lang: php -->
<!-- ~/nginx_sites/index.php -->
<?php
echo "Hello PHP";
echo "</br>";

echo "学习 php";
echo "</br>";
echo phpinfo();
?>

打开浏览器, 你会看到下面的页面:
1

也可以在该目录下创建其他 php 文件, 如 mark.php 文件.

浏览器中输入:
http://localhost:8080/mark.php 可以执行相对应的文件.

这里的 mark.php 是自己新建的 php 文件.

五. 安装 MySQL

1
brew install mysql

等待安装成功后,直接启动和连接数据库。

  • 启动 mysql
1
mysql.server start
  • 连接 mysql
1
mysql -u root -p

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

veryitman