搞php还是五年前了,那会儿还是在windows系统下,用phpstudy等。最近重新搞php,用Mac发现很多集成环境并不好用,phpstudy没有Mac版本,xampp虽然免费但是很不好用,版本切换很麻烦。MAMP下载下来有Pro和普通两个版本。Pro是付费的,注册码$99。普通版和Pro使用差异还是挺大的。试用了两周MAMP Pro,还挺好用的,只可惜太贵。如果用网上的破解版,需要关闭Mac的SIP,对安全性和稳定性也有一定影响,所以还是放弃了。最后换到了MxSrvs,初步使用还是挺好用的。
从作者的官方网址下载:http://www.xsrvs.com/index.html
下载完成后,双击运行pkg文件安装,默认安装在/Applications/MxSrvs
,安装完成后在命令行中执行如下命令,不然会一直提示组件未受信任,或者通过系统偏好设置--安全性与隐私
来打开
sudo xattr -r -d com.apple.quarantine /Applications/MxSrvs
MxSrvs软件默认是php7,在代码审计过程中经常需要安装多版本的php。但是从官方网站下载的php安装包放到/Applications/MxSrvs/bin
目录下会报错,解决方案可以参考: https://blog.csdn.net/Smell_rookie/article/details/107742458
MxSrvs文件夹结构如下
bin
cache
libs
logs
tmp
www
在MxSrvs官方提供的下载地址中挑选需要的版本:https://590m.com/dir/13710799-25972793-4937e8
例如php文件夹下有php5.6.31
、php5.5.38
等,mysql文件夹下有mysql5.6.37
、mysql5.5.53
等。然后放入到/Applications/MxSrvs/bin
目录下
但是换成低版本的php后,例如换成了php5.6.31,无法访问phpmyadmin,报错:PHP 7.1.3+ is required
。根据选择的php版本找到合适的phpmyadmin版本(例如此处对应的是phpmyadmin4.9),然后下载对应的文件,解压到www
目录下,重命名为_phpMyAdmin
文件夹。但是访问phpMyAdmin的登陆界面时,输入用户名密码会报错php - mysqli_real_connect(): (HY000/2002): No such file or directory
此时找到_phpMyAdmin
文件夹下的config.sample.inc.php
文件,找到Server Parameters部分,加入并修改成如下内容。可以用空密码访问。然后将config.sample.inc.php
文件重命名为config.inc.php
,重启服务器生效。解决方案参考:https://stackoverflow.com/questions/41881123/mysqli-real-connect-hy000-2002-no-such-file-or-directory
/* Server parameters */
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
MxSrvs+phpstorm调试
进入MxSrvs的配置编辑界面,选择PHP的php.ini,搜索xdebug,在其中加入xdebug.remote_port=9000
(此端口号需要与phpstorm中一致),然后重新启动PHP
[xdebug]
zend_extension = "/Applications/MxSrvs/bin/php/ext/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.var_display_max_depth = 512
xdebug.profiler_append = 1
xdebug.profiler_enable_trigger = 1
xdebug.max_nesting_level = 200
xdebug.profiler_output_dir = "/Applications/MxSrvs/logs/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
xdebug.remote_port=9000
phpstorm中配置如下,首先在PHP的Debug中配置Xdebug的端口和上述php.ini保持一致
然后配置一个Server,host和port是Nginx启动的host和端口号。
Chrome中安装xdebug插件,然后开启phpstorm的listening