- macOS版本:10.13.3 High Sierra
VirtualBox的文件夹共享
-
下载安装完VirtualBox(版本号5.2.6 r120293)
-
使用另外下载好的ubuntu-17.10.1-server-amd64.iso安装Ubuntu17.10 (Guest OS)
-
从Settings=>Shared Folders=>点击添加按钮=> 选择宿主机文件夹(如/Users/liqingshou/Work)=> 文件夹名称(随意,如Work)=> 勾起Auto-mount(自动挂载)和Make Permanent(永久创建)
遇到问题
设置完之后,无法在系统里找到对应的挂载文件
发现/mnt或者/media目录都是空的,/dev也找不到,查了才知道需要安装GuestAdditions
-
下载Extendsion Pack: Oracle_VM_VirtualBox_Extension_Pack-5.2.6-120293.vbox-extpack,并双击安装
-
启动Ubuntu
-
在VirtualBox的菜单上找到Device=>Insert Guest Additions CD Image
如果出现 Unable to insert the virtual optical disk …提示,如下图
可以使用以下方法解决:
先关闭虚拟机,在Storage下找到对应的光盘,解绑对应的内容,然后再新建一个新的空光盘
现在执行以上步骤应该可以顺利通过了
- 在Ubuntu系统里挂载CD
sudo mount /dev/cdrom /media/cdrom/
- 运行Guest Additions,完成后重启
sudo ./VBoxLinuxAdditions.run
- 挂载共享目录
执行以下命令,则整个目录就被挂载到work目录下
$ mkdir work
$ sudo mount -t vboxsf Work ./work
如果出现如下报错
mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error
In some cases useful info is found in syslog - try dmesg | tail or so.
可以使用以下命令,使用扩展里的mount.vboxsf工具
sudo ln -sf /opt/VBoxGuestAdditions-5.2.6/other/mount.vboxsf /sbin/mount.vboxsf
权限问题
挂载上的目录权限都为755,所有者均是root,这对于日常开发很不方便
-
关闭Guest, 将刚才目录映射选择的Auto-mount勾去掉,然后再启动
-
执行以下命令
test@ubuntu:~$ umask && id
0002
uid=1000(test) gid=1000(test) groups=1000(test),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),114(lpadmin),115(sambashare)
test@ubuntu:~$ sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 Work ./work
此时,你可以看到work目录的文件都归属于目前的登录用户了。
- 将配置加入/etc/fstab,实现启动后自动执行
Work /home/test/work vboxsf umask=002,gid=1000,uid=1000
参考
Unable to Install Guest Additions CD Image on Virtual Box
Share folders from the host Mac OS to a guest Linux system in VirtualBox
How do I install Guest Additions in a VirtualBox VM?
Beyond Compare的无限试用
-
下载Beyond Compare(4.2.4),并安装
-
在试用期快结束的时候,删除registry.dat文件
registry.dat位于家目录下~/Library/Application Support/Beyond Compare/registry.dat
,记录了注册和试用相关的信息,只要删除此文件,试用周期重新计算,达到无限试用的目的
- 替换Beyond Compare的启动文件,在启动时删除registry.dat
找到对应的启动文件,使用新的脚本文件替换之
cd Applications/Beyond\ Compare.app/Contents/MacOS/
mv BCompare BCompare.real
touch BCompare
chmod +x BCompare
在BCompare文件中加入以下内容
#!/bin/bash
rm "/Users/$(whoami)/Library/Application Support/Beyond Compare/registry.dat"
"`dirname "$0"`"/BCompare.real
参考
nginx、php-fpm环境的配置
nginx
brew install nginx
配置文件的路径为/usr/local/etc/nginx/nginx.conf
日志文件的目录为/usr/local/var/log/nginx/error.log
常用命令
nginx
nginx -s stop
nginx -s reload
php
brew install homebrew/php/php-version
brew install homebrew/php/php71 --with-fpm
brew install homebrew/php/php71-xdebug
brew services restart homebrew/php/php71
配置xdebug
/usr/local/etc/php/7.1/conf.d/ext-xdebug.ini
[xdebug]
zend_extension="/usr/local/opt/php71-xdebug/xdebug.so"
xdebug.idekey="macgdbp"
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"
参考
PHPStorm的配置
PHPStorm 2017.3.4
PHP(local) 7.1.7
PHP(remote) 7.1
配置PHP环境
新建项目时,选择或创建解释器
在已经有项目中选择解释器:Preferences=> Languages & Frameworks => PHP
配置远程的解释器,注意使用远程PHP运行时,需要配置Deployment(Tools=>Deplyment)或者配置Path Mapping(如果配置了Deployment会自动补上Path Mapping)。远程执行的原理是ssh到对应的机器上执行,并把结果返回输出到终端
配置Composer
- 配置Composer可执行文件
如果本地没有composer,PHPStorm可以帮忙下载对应的composer可执行文件(下载到当前项目的要目录),当然如果本地有,直接选择即可
Preferences => Languages & Frameworks => PHP => Composer
- 初始化Composer: Tools => Composer => Init Composer
在生成的composer.json文件中写入对应的项目信息
- 使用Composer安装依赖
安装完成后会自动补到composer.json文件中
也可以自己往composer.json里补充内容,然后在composer.json上右键=>Composer=>Update
{
"repositories":[
{
"type":"vcs",
"url":"https://github.com/xiaochai/phplib"
}
],
"require":{
"xiaochai/phplib":"dev-master"
}
}
配置PHPUnit
- 配置PHPUnit可执行文件
Preferences => Languages & Frameworks => PHP => Test Frameworks => 选择添加 => PHPUnit Local
注意:如果是远程的PHP解释器,那么PHPUnit也应该是远程的
- 运行测试用例
在此之前,需要在Preferences => Languages & Frameworks => PHP => Include Path里添加phpunit.phar路径,这样IDE中关于PHPUnit的命名空间使用就不会报错
接着,在tests目录下创建测试文件,不管在文件上,或者在文件里的类名、函数名上点击,都可以出现运行测试用例的菜单,只是执行的用例范围不同
运行配置
配置一个PHP Web Server,Run => Edit Configurations
设置调试端口,与xdebug配置的端口一致:Preferences=>Languages & Frameworks => PHP => Debug => Xdebug下的Debug port
选择刚新建的PHP Web Server(localhost),选择调试,如果有打断点的话,就会在对应的断点停住了
参考
http://blog.lanyus.com/archives/174.html
http://www.imsxm.com/2018/02/jetbrain-education-license.html