在win7中搭建Linux+PHP 開(kāi)發(fā)環(huán)境
我用了 3 年多的 Linux 桌面,很是不爽,主要是各個(gè)軟件的體驗(yàn)不夠統(tǒng)一,太分裂,太多選擇讓人無(wú)從選擇。
而回到 Windows, 則更糟糕,使用 *nix 工具集變得非常折騰,部署 Web 環(huán)境也很麻煩,而且我的服務(wù)器都是 Linux 的,代碼里有些功能是不能運(yùn)行在 Windows 上的。
因?yàn)槲遗紶栠€打打游戲,一個(gè)月前,我還是選擇回到 Windows 桌面。
但我下面的這些軟件幾乎都是跨平臺(tái)的,如果你使用 Linux 桌面,也不會(huì)有什么影響的。
我的主機(jī)是 Windows 7 x64, 然后跑一個(gè) Arch 的虛擬機(jī),所有代碼的運(yùn)行和調(diào)試都在虛擬機(jī)中進(jìn)行。
Arch 虛擬機(jī)
Arch 安裝略折騰,但我喜歡它 KISS 的哲學(xué),我用 VirtualBox, 分配 512MiB 甚至 256MiB 就夠用了。
網(wǎng)絡(luò)改成「橋接網(wǎng)卡」然后在路由器設(shè)置一個(gè) MAC 綁定的固定 IP, 我給虛擬機(jī)的是 192.168.0.105, 而我主機(jī)的是 192.168.0.100.
需要裝的軟件包最核心的有:openssh, nginx, mariadb, php, xdebug.
至于其他一些:vim, mongodb, php-mongo, phpmyadmin 就看個(gè)人需要了。
直接在 VirtualBox 的虛擬機(jī)窗口上敲命令很不方便,我會(huì)裝一個(gè)叫 VirtuaWin 的虛擬桌面軟件,類(lèi)似于 KDE 的 Workspace(工作區(qū)), 把 VirtualBox 的窗口丟到另一個(gè)桌面。
然后用 XShell 連 SSH 上去敲命令。
當(dāng)然你還需要建一個(gè)非 root 賬戶(hù)來(lái)日常使用,我建了一個(gè) jysperm.
然后你可以修改 /etc/php/php-fpm.conf:
user = jysperm
group = jysperm
這樣 PHP-FPM 的進(jìn)程會(huì)以你的用戶(hù)來(lái)跑,讀寫(xiě)文件不會(huì)遇到任何權(quán)限問(wèn)題。
作為開(kāi)發(fā)服務(wù)器,可能同時(shí)需要開(kāi)發(fā)測(cè)試多個(gè)項(xiàng)目,每次都要去 Nginx 里面新建站點(diǎn)是很折騰的事情,下面的配置文件可以讓你一勞永逸:
server {
listen 80;
server_name ~(?<dir>.*)\.ab\.jyprince\.me$;
access_log /home/jysperm/nginx.access.log;
error_log /home/jysperm/nginx.error.log;
index index.html index.php;
autoindex on;
root /home/jysperm/$dir;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
*.ab.jyprince.me 這個(gè)域名被我解析到了 192.168.0.105, 這樣下來(lái),只需訪問(wèn) test.ab.jyprince.me, 就相當(dāng)于訪問(wèn)位于 /home/jysperm/test 中的文件了,以后就不用再修改 Nginx 的配置文件了。
PHPStorm
我見(jiàn)過(guò)最好的 IDE 是 PHPStorm.
PHPStorm 的 Deployment 功能可以在你每次修改文件后自動(dòng)部署到服務(wù)器,你只需建一個(gè) SFTP 類(lèi)型的服務(wù)器,并把 Arch 虛擬機(jī)的信息填上去,然后勾選 Automatic Upload 就好。
每一個(gè)項(xiàng)目都上傳到 /home/jysperm 下的一個(gè)文件夾。
然后訪問(wèn) 項(xiàng)目名.ab.jysperm.me 就行了,一切都是自動(dòng)的。
遠(yuǎn)程調(diào)試
在 Arch 虛擬機(jī)中修改 /etc/php/conf.d/xdebug.ini:
zend_extension=/usr/lib/php/modules/xdebug.so
xdebug.remote_enable=on
xdebug.idekey=jysperm
xdebug.remote_host=192.168.0.100
xdebug.remote_port=9000
然后在 PHPStorm 中新建一個(gè) PHP Remote Debug 即可。
需要調(diào)試時(shí),先在 PHPStorm 中打開(kāi)調(diào)試,設(shè)上斷點(diǎn),然后讓請(qǐng)求帶上 XDEBUG_SESSION=jysperm 的 Cookie 即可。
調(diào)試頁(yè)面的時(shí)候,可以用 這個(gè)工具 生成書(shū)簽,點(diǎn)擊書(shū)簽就可以控制調(diào)試的開(kāi)關(guān)了。
調(diào)試 RESTful API 的話我一般會(huì)用一個(gè)叫 Postman 的 Chrome 擴(kuò)展,這個(gè)應(yīng)用似乎沒(méi)有編輯 Cookie 的功能,這樣的話,在 HTTP Header 里加上一項(xiàng) Cookie:XDEBUG_SESSION=jysperm 就行了。
其他推薦
Robomogo - 跨平臺(tái)的 Mongo GUI 客戶(hù)端
SourceTree - Windows 下的 Git GUI
Secure Shell - Chrome 中的 SSH
Clover - 讓 Windows 的資源管理器像 Chrome 一樣
FileZilla - 跨平臺(tái)的 FTP 客戶(hù)端
SmartGit - 跨平臺(tái)的 Git GUI
Sublime Text - 好用的跨平臺(tái)編輯器
- Linux環(huán)境下搭建php開(kāi)發(fā)環(huán)境的操作步驟
- Windows環(huán)境下PHP開(kāi)發(fā)環(huán)境搭建 - 圖文完全教程
- Windows下搭建PHP開(kāi)發(fā)環(huán)境(Apache+PHP+MySQL)
- Windows下PHP開(kāi)發(fā)環(huán)境搭建教程(Apache+PHP+MySQL)
- Win2008下搭建php開(kāi)發(fā)環(huán)境(IIS FastCGI版)
- Mac下搭建php開(kāi)發(fā)環(huán)境教程
- mac下Apache + MySql + PHP搭建網(wǎng)站開(kāi)發(fā)環(huán)境
- Mac OS上搭建Apache+PHP+MySQL開(kāi)發(fā)環(huán)境的詳細(xì)教程
- Linux下快速搭建php開(kāi)發(fā)環(huán)境
相關(guān)文章
php 變量引用與變量銷(xiāo)毀機(jī)制詳細(xì)介紹
變量是php中一個(gè)非常重要的類(lèi)型了,我們的有數(shù)據(jù)都通過(guò)變量或常量來(lái)進(jìn)行操作,下文來(lái)看看變量引用與變量銷(xiāo)毀吧,需要的朋友可以參考下2016-12-12
PHP結(jié)合Mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)留言板功能
這篇文章主要介紹了PHP結(jié)合Mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)留言板功能的相關(guān)資料,需要的朋友可以參考下2016-03-03
php單例模式的簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇php單例模式的簡(jiǎn)單實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
PHP爬蟲(chóng)之百萬(wàn)級(jí)別知乎用戶(hù)數(shù)據(jù)爬取與分析
這篇文章主要介紹了PHP百萬(wàn)級(jí)別知乎用戶(hù)數(shù)據(jù)爬取與分析的相關(guān)資料,需要的朋友可以參考下2016-01-01
使用PHP導(dǎo)出Redis數(shù)據(jù)到另一個(gè)Redis中的代碼
這篇文章主要介紹了使用PHP導(dǎo)出Redis數(shù)據(jù)到另一個(gè)Redis中的方法,需要的朋友可以參考下2014-03-03
PHP xpath提取網(wǎng)頁(yè)數(shù)據(jù)內(nèi)容代碼解析
這篇文章主要介紹了PHP xpath提取網(wǎng)頁(yè)數(shù)據(jù)內(nèi)容代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
用HTML/JS/PHP方式實(shí)現(xiàn)頁(yè)面延時(shí)跳轉(zhuǎn)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇用HTML/JS/PHP方式實(shí)現(xiàn)頁(yè)面延時(shí)跳轉(zhuǎn)的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07

