mac osx 搭建php开发环境

时间:2021-03-20 03:19:28

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的中文手册还未完成,请大家给予社区一些鼓励。