mac osx 搭建php開發環境

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 IndexesMultiViews FollowSymLinks

    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的中文手冊還未完成,請大家給予社區一些鼓勵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章