mac osx上搭建php开发环境:
1、由于系统自带了apache2.4.10和php5.5.20,没有打算再mamp。
启动apache:
sudo apachectl start
重启apache:
sudo apachectl restart
查看apache版本:
httpd -v
2、配置php:
查看php版本:
php -v
配置apache启用php:
sudo vi /etc/apache2/httpd.conf
打开php5配置:
LoadModule php5_module libexec/apache2/libphp5.so
保存后重启apache生效。3、之前已经安装了mysql 5和数据库管理软件navicat premium,就不再安装phpadmin了。
4、下载安装netbeans php 8.0.2。
https://netbeans.org/downloads/index.html
5、使用netbeans php新建php项目,调试代码:
调试代码需要配置 php 启用xdebug,笔者按照传统的方式访问xdebug的官网,发现只有windows binary的下载,差点走了弯路在mac上自行编译。研究了一段时间后,终于解决问题。
a) osx 不仅自带了apache、php、libphp for apache,还自带了 xdebug ,启用它的话,需要先 sudo cp /etc/php.ini.default /etc/php.ini 然后再执行以下命令:
sudo sh -c 'echo zend_extension=$(find /usr/lib/php/extensions -name "xdebug.so") >> $(php -qr "echo php_ini_loaded_file();") && apachectl restart'
注意:如果不先创建/etc/php.ini,会出现“ambiguos redirect”的错误。
b) 配置 php.ini 使其支持 xdebug:
sudo vi /etc/php.ini
shit + G转到文件最后,添加(zend_extension=是a)步骤自动生成的):
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
6、配置apache,使其引用netbeans创建的php项目路径。因为netbeans php ide默认创建项目到当前用户xxx主目录下的NetBeansProjects目录下,所以要想在apache下运行ide创建的web项目TodoList,还需要设置Alias。TodoList项目是NetBeans IDE自带的一个示例工程,特别要注意的是Alias 指向的是 TodoList/web 而不是 TodoList。
sudo vi /etc/apache2/httpd.conf
增加以下行:
Alias /TodoList /Users/xxx/NetBeansProjects/TodoList/web
<Directory "/Users/YXCD/NetBeansProjects/">
AllowOverrideAll
Options IndexesMultiViewsFollowSymLinks
Requireall granted
</Directory>
配置TodoList/config/config.ini之后,可能还会出现错误:
DateTime::__construct(): It is not safe to rely on the system’s timezone settings.
解决办法:编辑 /etc/php.ini,打开date.timezone并设置为Asia/Shanghai
[Date]
date.timezone = Asia/Shanghai
重启apache之后问题解决。7、万事具备,只欠东风。最后使用netbeans调试php项目是非常容易的。在项目树上右键单击,上下文菜单中选择“调试”即可。前面的步骤如果设置不正确,就会导致调试时netbeans一直在等待连接。
有的文章说等待连接是9000端口被占用,需要修改php.ini中的
xdebug.remote_port=9000
为其他值如9001,然后设置netbeans的调试监听端口也为9001。菜单:NetBeans IDE > Preferences
再单击php面板,切换到“调试”窗口,可修改“调试器端口”。但是,笔者遇到调试时等待连接情况并非因为端口,而是httpd.conf的Alias路径问题,以及php.ini的配置。
ps:
1、windows版本的php环境,笔者也搭建过无数次了,每次也是如上述一般手动配置的。但今天帮助同事搭建环境,我通过httpd.apache.org,一步一步指引到下载xampp,发现更为方便,所以就不再手工折腾了。xampp安装时,绝大多数搭配的软件都是不要的,只勾选apache、php等即可。
2、windows netbeans php ide调试也需要xdebug,虽然你可以区xdebug官网下载一个配套xampp版本(如32位、VC11、php 5.6等)的binary .dll,但我还是建议只需要编辑C:\xampp\php\php.ini,把关于xdebug的条目打开即可。注意,xdebug.remote_enable 项缺省不是on,而是0,0表示off,不仅要删除注释符分号,还得改写这一项。或者直接参考我前面5、b)配置。
3、强烈推荐 php framework codeigniter ,8年前我接触了它,还在犹豫到底选用 ci 还是它的社区衍生版 kohana,我就转向了 java 阵营。如今再访问 codeigniter,可喜的看到它终于出到 3.0 了,使用协议改为了MIT,并将代码移交给了一所美国大学。而 kohana 的最后更新似乎还停留在多年前。简单看了一些介绍和视频,自己动手写了点东西,发现相比 java 世界,php + ci 是那么的畅快,已经推荐给了正打算学后端的同事,借此也推荐给大家。
中文ci站点:http://codeigniter.org.cn
3.0的中文手册还未完成,请大家给予社区一些鼓励。