mac下前端及php开发环境要点记录

这是一篇个人笔记。主要记录自己工作和学习过程中一些开发环境配置要点,以后再更换电脑时可参考。

虚拟机及主机基本配置

  1. 虚拟机联网
  2. 主机与虚拟机ssh互通
  3. 主机与虚拟机文件夹共享

这个部分内容的笔记全都详细地记录在:mac os下centos虚拟机的安装、网络及文件共享配置

centos下的软件配置

wget

这个基本的工具,centos没有自带。

vim

centos默认只有vi,没有vim

node

到node官网找到linux x64二进制包的下载链接:

进入虚拟机,运行:

1
mkdir -p /home/downloads

作为以后系统下载新包时的文件夹。

然后通过wget下载node的二进制包:

1
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz

1
2
[root@localhost downloads]# ls
lnmp1.6 lnmp1.6.tar.gz node-v10.16.0-linux-x64.tar.xz

然后运行一下:

1
2
xz -d node-v10.16.0-linux-x64.tar.xz
tar -xvf node-v10.16.0-linux-x64.tar

这样node的二进制文件夹就解压出来了:

1
2
3
[root@localhost downloads]# cd node-v10.16.0-linux-x64
[root@localhost node-v10.16.0-linux-x64]# ls
bin CHANGELOG.md include lib LICENSE README.md share

node已经可以在/home/downloads/node-v10.16.0-linux-x64/bin下面可以直接拿来用了,但是这样肯定用起来不方便。
第一步先把node-v10.16.0-linux-x64这个文件夹移动到/usr/local目录,/usr/local目录是centos大部分软件的安装目录,所以放到那里比较合适:

1
mv  node-v10.16.0-linux-x64 /usr/local/node

然后运行下面的命令,把/usr/local/node/bin下的可执行文件部署到PATH路径:

1
2
ln -s /usr/local/node/bin/node /usr/local/bin/node 
ln -s /usr/local/node/bin/npm /usr/local/bin/npm

最后通过下面的命令来检查node跟npm是否全局可用:

1
2
3
4
[root@localhost node]# node -v
v10.16.0
[root@localhost node]# npm -v
6.9.0

cnpm

安装方式:https://npm.taobao.org/

装好以后,运行下面的命令让cnpm全局可用:

1
ln -s /usr/local/node/bin/cnpm /usr/local/bin/cnpm

原本想直接把前端的node_modules通过centos的cnpm来安装,结果发现cnpm install不成功,这个跟代码位于共享文件夹有关。所以最后还是只能妥协到用mac主机的cnpm来安装node_modules,并在mac主机下运行npm的脚本。

lnmp

这是在centos里面配置php mysql nginx开发环境最方便的一个方式。
安装方式:https://lnmp.org/install.html
我个人觉得特别好用。

这次mac作为主机,nginx的网站运行起来出现403错误,以前在win10里面没遇到过。我猜是跟权限有关系,因为nginx默认是使用www组的www用户来运行的,如果这个权限不够的话,可能就会有问题,而且由于网站代码是在共享文件夹中的,即使对文件夹使用chown命令来更改文件夹的用户和所属组都不会生效。解决方式:
第一步,将www用户添加到vboxsf这个组。以保证www用户对共享文件夹内文件的访问权。

1
usermod -a -G vboxsf www

第二步,修改/usr/local/nginx/conf/nginx.conf

1
vim /usr/local/nginx/conf/nginx.conf

把user www www;改为user www vboxsf;

第三步,修改/usr/local/php/etc/php-fpm.conf

1
vim /usr/local/php/etc/php-fpm.conf

把里面用户的www组,都改为vboxsf。

最后,重启php-fpm和nginx。

scp使用

使用scp命令进行文件传输

git升级

centos自带有一个较低版本的git,需要做下升级。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#卸载旧版本
yum remove git
rm /usr/bin/git

#安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

#下载git源码包
cd /home/downloads
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
#更多地址:https://mirrors.edge.kernel.org/pub/software/scm/git/

#解压源码包
tar git-2.9.5.tar.gz
cd git-2.9.5

#准备编译
make prefix=/usr/local/git all
make prefix=/usr/local/git install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

如果第一个make遇到如下类似错误:

1
2
3
4
5
6
7
8
libgit.a(utf8.o):在函数‘reencode_string_iconv’中:
/home/downloads/git-2.9.5/utf8.c:463:对‘libiconv’未定义的引用
libgit.a(utf8.o):在函数‘reencode_string_len’中:
/home/downloads/git-2.9.5/utf8.c:502:对‘libiconv_open’未定义的引用
/home/downloads/git-2.9.5/utf8.c:521:对‘libiconv_close’未定义的引用
/home/downloads/git-2.9.5/utf8.c:515:对‘libiconv_open’未定义的引用
collect2: 错误:ld 返回 1
make: *** [git-credential-store] 错误 1

则运行:

1
2
3
4
5
6
make clean
./configure --without-iconv
make CFLAGS=-liconv prefix=/usr/local/git all
make CFLAGS=-liconv prefix=/usr/local/git install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

测试:

1
2
git --version
#2.9.5

composer

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

配置镜像:

1
composer config -g repo.packagist composer https://packagist.phpcomposer.com

scp命令

使用scp命令进行文件传输

coreseek

centos安装coreseek作为全文搜索引擎 编译coreseek的php扩展sphinx.so文件

supervisor

守护laravel队列进程。

redis

做缓存,做社交系统。

mac下的软件配置

sublime text

安装方式:参考网上资料。配置下面的settings

1
2
"tab_size": 4,
"translate_tabs_to_spaces": true

node

直接到官网下载mac的安装包即可安装。

git

直接到官网下载git的安装包即可安装。
遇到的问题:
打不开“git-2.21.0-intel-universal-mavericks.pkg”,因为它来自身份不明的开发者。
解决方式:
通过spotlight搜索安全性与隐私,允许git的安装:

cnpm

安装方式:https://npm.taobao.org/
遇到的问题:
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
解决方式:
运行:

1
sudo su

切换到root用户后,再来执行cnpm的安装命令。

npm或cnpm以后安装东西都有可能遇到权限问题,都可以通过切换到root用户来解决。

hexo

这次是把hexo从win10那边同步到mac来。所以跟hexo官网方式不太一样。把blog从github克隆mac以后。先运行:

1
cnpm install -g hexo-cli

之后cd到blog目录,然后运行

1
cnpm install

把hexo依赖的库都装好就能跑起来了。
由于今后可能会用到2台电脑写博客,以后新建文章时,资源文件夹即使暂时不放东西,最好也是往里面放一个空的.gitkeep文件,以便能把这个目录提交到git,另外一台电脑就能拉取下来了。

zsh

安装这个是为了让终端用起来更好看。安装方式见官网说明:https://ohmyz.sh/
补充的资料:https://www.jianshu.com/p/0f3dcec21a97

webstorm

开发前端用。官网下载安装包。

phpstorm

开发php用。官网下载安装包。

host文件

直接修改/etc/hosts文件,即可自定义项目的域名。
权限不够需要切换root用户再修改:sudo su。

scp使用

使用scp命令进行文件传输

ssh使用

ssh连接基本使用方法

brew

这个工具用于mac命令行安装包,类似yum。安装方式:https://brew.sh/

telnet

使用brew安装telnet,方便检测服务器端口是否已开放。

1
brew install telnet

检查3306端口是否开启。

1
2
3
4
▶ telnet 192.168.56.103 3306
Trying 192.168.56.103...
telnet: connect to address 192.168.56.103: Operation timed out
telnet: Unable to connect to remote host

sequelpro

mysql可视化工具。安装方式:http://www.sequelpro.com/