在win7中搭建Linux+PHP 开发环境

2015-01-24信息快讯网

这篇文章会以一个概览的形式介绍我的 PHP 开发环境,列出我使用的工具,但配置过程不会太详细。有需要的朋友可以参考下。

我用了 3 年多的 Linux 桌面,很是不爽,主要是各个软件的体验不够统一,太分裂,太多选择让人无从选择。
而回到 Windows, 则更糟糕,使用 *nix 工具集变得非常折腾,部署 Web 环境也很麻烦,而且我的服务器都是 Linux 的,代码里有些功能是不能运行在 Windows 上的。

因为我偶尔还打打游戏,一个月前,我还是选择回到 Windows 桌面。
但我下面的这些软件几乎都是跨平台的,如果你使用 Linux 桌面,也不会有什么影响的。

我的主机是 Windows 7 x64, 然后跑一个 Arch 的虚拟机,所有代码的运行和调试都在虚拟机中进行。

Arch 虚拟机

Arch 安装略折腾,但我喜欢它 KISS 的哲学,我用 VirtualBox, 分配 512MiB 甚至 256MiB 就够用了。
网络改成「桥接网卡」然后在路由器设置一个 MAC 绑定的固定 IP, 我给虚拟机的是 192.168.0.105, 而我主机的是 192.168.0.100.

需要装的软件包最核心的有:openssh, nginx, mariadb, php, xdebug.
至于其他一些:vim, mongodb, php-mongo, phpmyadmin 就看个人需要了。

直接在 VirtualBox 的虚拟机窗口上敲命令很不方便,我会装一个叫 VirtuaWin 的虚拟桌面软件,类似于 KDE 的 Workspace(工作区), 把 VirtualBox 的窗口丢到另一个桌面。
然后用 XShell 连 SSH 上去敲命令。

当然你还需要建一个非 root 账户来日常使用,我建了一个 jysperm.
然后你可以修改 /etc/php/php-fpm.conf:

user = jysperm
group = jysperm
这样 PHP-FPM 的进程会以你的用户来跑,读写文件不会遇到任何权限问题。

作为开发服务器,可能同时需要开发测试多个项目,每次都要去 Nginx 里面新建站点是很折腾的事情,下面的配置文件可以让你一劳永逸:

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 这个域名被我解析到了 192.168.0.105, 这样下来,只需访问 test.ab.jyprince.me, 就相当于访问位于 /home/jysperm/test 中的文件了,以后就不用再修改 Nginx 的配置文件了。

PHPStorm

我见过最好的 IDE 是 PHPStorm.

PHPStorm 的 Deployment 功能可以在你每次修改文件后自动部署到服务器,你只需建一个 SFTP 类型的服务器,并把 Arch 虚拟机的信息填上去,然后勾选 Automatic Upload 就好。
每一个项目都上传到 /home/jysperm 下的一个文件夹。

然后访问 项目名.ab.jysperm.me 就行了,一切都是自动的。

远程调试

在 Arch 虚拟机中修改 /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 中新建一个 PHP Remote Debug 即可。
需要调试时,先在 PHPStorm 中打开调试,设上断点,然后让请求带上 XDEBUG_SESSION=jysperm 的 Cookie 即可。
调试页面的时候,可以用 这个工具 生成书签,点击书签就可以控制调试的开关了。

调试 RESTful API 的话我一般会用一个叫 Postman 的 Chrome 扩展,这个应用似乎没有编辑 Cookie 的功能,这样的话,在 HTTP Header 里加上一项 Cookie:XDEBUG_SESSION=jysperm 就行了。

其他推荐

Robomogo - 跨平台的 Mongo GUI 客户端
SourceTree - Windows 下的 Git GUI
Secure Shell - Chrome 中的 SSH
Clover - 让 Windows 的资源管理器像 Chrome 一样
FileZilla - 跨平台的 FTP 客户端
SmartGit - 跨平台的 Git GUI
Sublime Text - 好用的跨平台编辑器

php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
ThinkPHP 404页面的设置方法
THINKPHP内容分页代码分享
linux中cd命令使用详解
php中$_POST与php://input的区别实例分析
windows中为php安装mongodb与memcache
windows7下php开发环境搭建图文教程
ioncube_loader_win_5.2.dll的错误解决方法
php模仿asp Application对象在线人数统计实现方法
php实现Linux服务器木马排查及加固功能
php+mysqli实现批量替换数据库表前缀的方法
windows下配置php5.5开发环境及开发扩展
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
在Win7 中为php扩展配置Xcache
两千行代码的PHP学习笔记汇总
PHP实现定时执行任务的方法
PHP实现图片旋转效果实例代码
PHP实现图片裁剪、添加水印效果代码
PHP实现绘制3D扇形统计图及图片缩放实例
PHP中echo,print_r与var_dump区别分析
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
PHP中的output_buffering详细介绍
安装ImageMagick出现error while loading shared libraries的解决方法
php实现的click captcha点击验证码类实例
php中unserialize返回false的解决方法
PHP提示Cannot modify header information - headers already sent by解决方法
MyEclipse常用配置图文教程
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
Win7 64位系统下PHP连接Oracle数据库
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Win2003+apache+PHP+SqlServer2008 配置生产环境
windows的文件系统机制引发的PHP路径爆破问题分析
©2014-2024 dbsqp.com