MacOSX搭建PHP开发环境(一)

我们的目标是星辰大海!

决定前往全栈开发的道路,后端熟悉并达到中级水平,使用php开发,熟练使用Yii框架搭建项目;前端能到达中级水平,熟练使用Vue开发,熟练使用React;熟练小程序开发,wepy和Vue;iOS达到高级水平,搭建组件化开发框架、使用ReactNative混合开发、熟练开发H5;数据领域,熟练python语言和爬虫技术,熟悉各种运营指标和数据分析方法;机器学习领域,正在学习TensorFlow。

此处为配置MacOSX+PHP+Nginx+MySql开发环境。

参考文档
  1. 安装文档:http://www.jb51.net/article/76759.htm
使用brew安装nginx
$ brew search nginx 
$ brew install nginx 

Nginx安装路径
$ cd /usr/local/etc/nginx
$ ls -a
.         koi-utf         scgi_params
..            koi-win         scgi_params.default
fastcgi.conf      mime.types      uwsgi_params
fastcgi.conf.default  mime.types.default  uwsgi_params.default
fastcgi_params        nginx.conf      win-utf
fastcgi_params.default    nginx.conf.default

Nginx配置文件:
nginx.conf 和 nginx.conf.default 为nginx的配置文件。

启动nginx
$ sudo nginx 
关掉nginx进程
$ sudo pkill nginx
查看localhost:8000
会执行www里的index.php文件
Nginx配置文件

详细配置请参考:https://segmentfault.com/a/1190000002797601

0. nginx相关配置在 /usr/local/etc/nginx/目录下
1. nginx配置文件为 nginx.conf 以及 nginx.conf.default
2. nginx.conf配置 把 server 和其他基本配置分开。其中server相关配置全部放置在config.d文件夹中,其他配置依旧防止在nginx.conf中
安装php-fpm

如果使用Mac OSX 10.9系统自带的PHP、php-fpm,则需要简单地修改下php-fpm的配置,否则运行php-fpm会报错。如果使用brew安装的PHP,这里自行忽略。



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

vim /private/etc/php-fpm.conf

修改php-fpm.conf文件中的error_log项,默认该项被注释掉,这里需要去注释并且修改为error_log = /usr/local/var/log/php-fpm.log。如果不修改该值,运行php-fpm的时候会提示log文件输出路径不存在的错误。

直接在终端输入:

启动php
$ sudo php-fpm 

干掉php进程()
$ sudo pkill php-fpm

➜  ~ php-fpm 
[14-Apr-2017 01:32:58] ERROR: failed to open error_log (/usr/local/var/log/php-fpm.log): Permission denied (13)
[14-Apr-2017 01:32:58] ERROR: failed to post process the configuration
[14-Apr-2017 01:32:58] ERROR: FPM initialization failed
➜  ~ sudo php-fpm 
Password:
[14-Apr-2017 01:33:06] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (48)
[14-Apr-2017 01:33:06] ERROR: FPM initialization failed
➜  ~ sudo pkill php
➜  ~ sudo php-fpm 
➜  ~ nginx 

$ lsof -i tcp:9000 
$ 发现该指令并不起作用,必须用pkill强制删除php

over

brew 安装PHP

使用brew安装PHP是非常快捷的方式之一。前段时间brew更新了自己的版本仓库,将homebrew/php相关的组件库全部移除,导致php-version等众多原来可以从brew直接安装的库被删除,无法更新(显示:No formula found for "php-version".)。目前还在更新中。具体进度可以查看他们的github仓库。服务端同学可以直接更新php版本到php7

$ brew search php
$ brew install php
即可更新到最新的php版本
安装mysql
$ brew install mysql
$ mysql server start 
$ mysql.server stop
如果mysql server 无法启动的话,可以使用:
$ mysqld 
$ mysql

配置mysql
启动mysql
$ mysqld  //改命令可以直接启动mysql
$ mysql.server start 该命令也可以直接启动mysql
启动mysql命令行,该命令启动mysql后直接进入mysql命令行模式
若要进入该模式,必须先启动mysql
$ mysql 
//
MySQL服务器启动错误 'The server quit without updating PID file'
http://pein0119.github.io/2015/03/25/MySQL%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%AF%E5%8A%A8%E9%94%99%E8%AF%AF-The-server-quit-without-updating-PID-file/
遇到该问题,我是使用这一条解决的:
1.我通过检查我的旧mac发现/usr/local/var/mysql/的所有者是gaolong
2.但是启动报错的那台mac检查发现/usr/local/var/mysql/的所有者是root
3.于是执行 sudo chown -R yxt /usr/local/var/mysql/  ytx为本台mac的用户名。
于是这个纠结了大半年的问题终于迎刃而解。

执行mysqld后:

.....
2016-11-12 21:29:00 33202 [Note]   - '::' resolves to '::';
2016-11-12 21:29:00 33202 [Note] Server socket created on IP: '::'.
2016-11-12 21:29:00 33202 [Note] Event Scheduler: Loaded 0 events
2016-11-12 21:29:00 33202 [Note] mysqld: ready for connections.
Version: '5.6.27'  socket: '/tmp/mysql.sock'  port: 3306  Homebrew

这段运行是多么优雅啊!

所以让我再次认识到服务器编程,除了是路径之外,还是权限!是路径+权限。
使用mysql.server start 启动
bitbrothersdeMacBook-Pro-2:~ yxt$ mysql.server start 
Starting MySQL
. SUCCESS! 
bitbrothersdeMacBook-Pro-2:~ yxt$ 

检测自己的Mac下PHP+Nginx+Mysql环境是否安装成功
  1. 检测Nginx配置
$ cd usr/local/etc/nginx
$ vi nginx.conf
配置server选项
具体如何配置,会有专门文章详细讲解
配置好后,在浏览器打开相应的网页,如果能显示则配置成功,否则显示无法打开此网页。
$ vi /etc/hosts
将配置的特殊域名标记在该文件中,这一步是必须的,浏览器会解析该文件。
  1. 检测PHP配置
nginx.conf 必须配置php相关参数
使用PHP7,默认情况下,$ sudo php打开的是系统自带的php5.6,需要使用$ php-version 7.2 切换版本,php-version 无法使用后,直接运行php包源码里的bin文件和php-fpm包里的bin文件打开php。
  1. 检测Mysql配置
mysql 的搭建和配置相对简单。本人使用Yii框架开发。
  1. 新建服务端项目
PHP依赖管理工具

php第三方依赖管理工具有pear和Composer,Pear是比较古老的管理方式,而后者composer则需要PHP5.3以后的版本方支持,但是也做过了五个年头,是一种可信赖的管理工具。其管理灵感来自node的npm,其实管理起来也是非常方便的。

  1. 全局安装composer:http://www.phpcomposer.com/

    $ cd XXX
    $ $ curl -sS https://getcomposer.org/installer | php
    $ mv composer.phar /usr/local/bin/composer //此处是将下载下来的composer.phar移到相应目录下
    MacOS X也可以使用homebrew安装
    $ brew tap josegonzalez/homebrew-php  
    $ brew install josegonzalez/php/composer  
    
  2. 声明依赖

    在项目目录下创建一个 composer.json 文件,指明依赖,比如,你的项目依赖 monolog:

    {
        "require": {
            "monolog/monolog": "1.2.*"
        }
    }
    
  3. 安装依赖

    安装依赖非常简单,只需在项目目录下运行:

    $ composer install 
    
  4. 自动加载

    require 'vendor/autoload.php'; 
    
  5. 案例

    这个是一个非常有名的日志第三方库:https://github.com/Seldaek/monolog

    
    pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
    
    // add records to the log
    $log->warning('Foo');
    $log->error('Bar');
    
  6. over

你可能感兴趣的:(MacOSX搭建PHP开发环境(一))