不久前负责了一个项目需要配置PHP7的开发环境,因为之前所有的项目用的是PHP5的,所以研究了这些东西,但是很遗憾,电脑出了问题,不得已重装了系统,然后你懂得。。。什么都没有了,要重新来过。。

虽然本人是搞前端的,但是因为时常需要接触配置开发环境并部署本地网站,所以这次干脆从头到尾亲自动手,好好学习一下运维这方面的相关知识了。

Mac OSX 下 使用 homebrew 安装 PHP,nginx, mysql,composer,NodeJS等,搭建LNMP开发环境。实战经验分享:

1 版本问题

  • 此次因为重装并升级了系统,所以索性搭建时安装的NMP也用了对应官网上的默认或者最新版本。
  • 如果有版本要求的可以安装对应的版本
  • PHP建议安装5.6的,因为PHP56的还是目前比较稳定的版本,很多公司都在用。
  • 如果有些命令行失灵或者报错,那么很有可能是版本过于新/旧或者环境的问题,NMP的内容或命令行也会更新或者废弃。

2 linux 命令行

这里放置一些下面安装时可能会用到的linux 命令行,供不太了解的人参考,如有错误,欢迎指正。

  • 删除文件
$ rm -rf filename
  • 查看某个文件目录下的隐藏文件
$ ls -a
  • 编辑某个文件的内容
$ vim 文件名
// 按下a键进入编辑模式,按下esc键退出编辑模式,按下“:wq”表示保存并推出,按下“:q”表示不保存,直接退出。
  • 在某个文件中搜索关键词
$ :/要搜索的关键词,按enter键开始搜

iTerm2 && Oh My Zsh

这里附上一款替代终端的软件和口碑比较好的终端主题

下载地址 -> iTerm2

安装之后:

执行一下命令行安装[oh-my-zsh]主题(https://github.com/robbyrussell/oh-my-zsh):

$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Homebrew

Homebrew是Mac OSX下流行的包管理软件,这里推荐通过Homebrew来安装各种软件包。

进入Homebrew官网之后,查看如何安装:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

PHP

添加php软件仓库

$ brew tap homebrew/homebrew-php

踩的坑

brew tap homebrew/dupes

brew tap homebrew/versions

尝试在自己本地去执行这两个命令的时候,给出了警告:

Warning: homebrew/dupes was deprecated. This tap is now empty as all its formulae were migrated.

查了下发现是 homebrew/dupes,homebrew/versions好像已经被迁移到homebrew/core或者是被删除,可以忽略。

安装PHP(这里可以指定版本,比如可以把71换成56)

$ brew install php71

安装后 php.ini 以及fpm的配置文件均在/usr/local/etc/php/7.1/目录下。

设置环境变量

查看环境PATH:echo $PATH,确认/usr/local/bin, /usr/local/sbin是否存在且排在/usr/sbin之前。如不满足,则需根据你系统所使用的shell,将环境变量添加到~/.bashrc, /.zshrc或/.profile中去:

 PATH="/usr/local/bin:/usr/local/sbin:$PATH"

启动PHP-FPM服务

$ brew services start php71

也可通过brew services restart|stop php71命令来重启、停止服务。

配置PHP-FPM随机启动

$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/opt/php71/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/

验证PHP-FPM服务是否启动成功

$ ps aux | grep php-fpm

如存在相关php-fpm进程,则表明启动成功.

nginx

安装

$ brew install nginx

安装后,可在/usr/local/etc/nginx目录下,找到Nginx系列配置文件。

建立需要存放项目的文件夹,举例如下:

$ sudo mkdir -p /var/www   //创建名字为var的文件夹,该文件夹下创建www文件夹,这里多用来存放项目文件夹
$ sudo mkdir -p /var/log/nginx // 在var文件夹下创建log文件夹,log文件夹下在创建nginx文件夹,这里用来存放nginx运行日志
$ mkdir /usr/local/etc/nginx/sites-enabled //在/usr/local/etc/nginx/下创建sites-enabled文件夹,用来存放对应的项目的nginx的配置。

替换/usr/local/etc/nginx/nginx.conf的配置内容为(替换内容根据项目和公司需要来写,下面只是示例内容):

user  nobody;
worker_processes 1; error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid; events {
worker_connections 1024;
} 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 /var/log/nginx/access.log main; sendfile on;
keepalive_timeout 65; server {
listen 80;
server_name localhost;
root /var/www;
charset utf-8; location / {
index index.html index.htm index.php;
} location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
} include sites-enabled/*;
}

启动Nginx服务

$ sudo brew services start nginx

验证Nginx服务启动是否成功

$ bash -c `echo "Hello, World!" >> /var/www/index.html`
$ bash -c `echo "<?php \nphpinfo();" >> /var/www/phpinfo.php`

在浏览器中打开http://localhost,出现Hello, World!表示Nginx启动成功。 在浏览器中打开http://localhost/phpinfo.php,出现PHP配置相关信息,表示PHP配置成功。

如果不成功,可通过以下命令查看错误日志排查原因:

$ tail -100f /var/log/nginx/…error.log

配置Nginx服务随机启动

cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/

MySQL

安装

$ brew install mysql

启动

$ brew services start mysql

配置随机启动

$ cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

phpMyAdmin

phpMyAdmin是一款方便易用的Mysql数据库管理软件。可以在 官网 下载最新版的phpMyAdmin。

将下载的安装包解压到 /var/www/phpmyadmin 目录下,创建配置文件config.inc.php, 内容如下:

<?php

$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

然后可通过浏览器打开http://localhost/phpmyadmin/,进入phpmyadmin。

composer

Composer可以对php项目进行依赖管理,具体用法和内容可以查看官网.

踩的坑

在安装composer时,需要安装一个PHP71的一个扩展包phalcon

搜索具体的名字,如下:

$ brew search phalcon

安装:

$ brew install homebrew/php/php71-phalcon

全局安装

可以执行这些命令让 composer 在你的系统中进行全局调用:

$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar
$ mv composer.phar /usr/local/bin/composer

验证是否安装

$ composer -v

局部安装

可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):

curl -sS https://getcomposer.org/installer | php -- --install-dir=bin

nodejs

安装nodejs

brew install nodejs
brew postinstall node

配置NPM源为国内源,以大幅提升NPM的安装速度:

npm config set registry https://registry.npm.taobao.org

OK,完毕

Mac OSX 下配置 LNMP开发环境的更多相关文章

  1. Mac OSX下Go语言开发环境的搭建与配置--使用InteliJ IDEA 13

    折腾了一上午终于把go语言的ide配置好了. 其实GO语言的语法和特性早在去年的时候就学习了一遍.结果后来一直没机会进行开发,结果还是个GO小白.感叹一下,要学好一门编程语言唯一的途径就是多写代码.. ...

  2. 在Mac OS下配置PHP开发环境

    实在厌倦了windows无缘无故的宕机.病毒了吗,哈哈哈,这个跟我都没什么关系.准备使用下现如今牛X到不行的云平台没有办法只好研究下PHP. 现在的云平台支持的语言只有PHP.Java和Python. ...

  3. mac os 下搭建android开发环境

    mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...

  4. Linux下配置PHP开发环境

    转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...

  5. cocos2d-x3.0 macOS下配置Android开发环境以及使用cocos2d-console来新建执行project

    下面是子龙山人录制的关于cocos2d-x3.0的视频教程,macOS下配置Android开发环境.使用cocos2d-console来新建执行project.怎样执行cocos2d-x 3.0win ...

  6. macOS 下配置 MAMP 开发环境(Mac + Apache + Mysql + PHP)

    macOS 中已经内置了 PHP.Python.Ruby.Perl 等常用的脚本语言,以及 Apache HTTP 服务器,所以使用起来非常方便.本文以最新的 macOS Sierra 10.12 配 ...

  7. Windows下配置Java开发环境

    学习Java第一步是配置本地开发环境,学习最基本的桌面开发,下面以win7为例配置Java开发环境,即:JDK+JRE+Eclipse,安装JDK的时候会默认安装JRE,根据提示安装就可以了. 首先去 ...

  8. Mac OSX 系统搭建 Java 开发环境

    转载:https://www.cnblogs.com/zjx2711904647/p/7735556.html 1. 安装JDK 双击jdk-9.0.1_osx-x64_bin.dmg文件进行安装 2 ...

  9. mac下配置android开发环境

    从昨天下午到如今.用了差点儿相同一整天的时间去熟悉mac和配置环境,基本已经OK了,大体记录了整个过程中遇到的问题. 1.安装java环境 之前听说mac自带java环境.java -version一 ...

随机推荐

  1. 指示函数(indicator function) 的作用

    1. counter 指示函数常用于次数(满足某一断言或条件)的统计: 2. 二维的离散指示函数 ⇒ assignment solution xij∈{0,1},∑jxij=1 ∑jxij=1:行和为 ...

  2. Android应用开发-小巫CSDN博客client之获取评论列表

    Android应用开发-小巫CSDN博客客户端之获取评论列表 上一篇博客介绍了博文具体内容的业务逻辑实现,本篇博客介绍小巫CSDN博客客户端的最后一项功能.获取评论列表,这个功能的实现跟前面获取文章列 ...

  3. hdu5384 AC自己主动机模板题,统计模式串在给定串中出现的个数

    http://acm.hdu.edu.cn/showproblem.php?pid=5384 Problem Description Danganronpa is a video game franc ...

  4. C Tricks(十九)—— 求以任意数为底的对数

    本文仅求对数的整数部分: int log(int n, int base){ int i = 1, cnt = 0; while (i*base < n){ i *= base; ++cnt; ...

  5. 8、for 、emumrate、range、if

    1.for循环用户按照顺序循环可迭代对象中的内容,PS:break.continueli = [11,22,33,44]for item in li: print item 2.enumrate 为可 ...

  6. 【Codeforces Round #443 (Div. 2) C】Short Program

    [链接] 我是链接,点我呀:) [题意] 给你一个n行的只和位运算有关的程序. 让你写一个不超过5行的等价程序. 使得对于每个输入,它们的输出都是一样的. [题解] 先假设x=1023,y=0; 即每 ...

  7. 重构——DataTable转泛型

         泛型简单介绍         泛型能够最大限度的重用代码.保护类型的安全.提高性能.         泛型最常见的用途是创建集合类         泛型数据类型中使用的信息可在执行时通过反射 ...

  8. vue-cli 构建vue项目

    师父说,咱们还是要用vue-cli 去构建前端项目.然后我就开始了 懵逼之旅. 今天上午主要就是搞懂用webpack和vue-cli怎么搭建 运行项目 首先找到了咱们博客园 园友的博客,提供了大概五个 ...

  9. 【拆分版】 Docker-compose构建Logstash多实例,基于7.1.0

    [拆分版]Docker-compose构建Logstash多实例 写在最前 说起Logstash,这个组件并没有什么集群的概念,与其说是集群,不如说是各自去收集日志分析过滤存储到Elasticsear ...

  10. 【z09】关押罪犯

    描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"(一个正整 ...