内容概要
- 利用lnmp安装ftp功能
- 基于vscode开发调试php程序
1 验证lnmp安装结果
- 输入命令
lnmp restart
如下图,即lnmp运行正常。
lnmp运行良好
-
访问lnmp搭建的web网站。打开宿主机浏览器,输入虚拟机访问地址(比如192.168.56.101,这个地址可以通过虚拟机中使用“ip address”命令,查看eth1的inet获知),回车如下图即说明lnmp运行正常。
可以访问lnmp搭建的web服务器
仅输入lnmp,可以浏览lnmp所有可用功能。
lnmp功能列表
2 基于lnmp安装pureftpd
- 一个ftp服务器。有了这个ftp服务器,宿主机就可以向虚拟机传送文件了。
- 在lnmp的源代码路径下执行ls,可以看到pureftp的安装脚本。
cd /home/src/lnmp1.6/
ls
pureftp安装脚本
- 执行安装脚本
./pureftpd.sh
安装成功如下图:
pureftpd安装成功
3 使用ftp功能
3.1 确定ftp功能处于运行状态
- 输入
lnmp pureftpd status
,如下图:
ftp功能运行中
否则,输入lnmp pureftpd start
开启ftp功能。
3.2 创建ftp用户及对应的目录
pureftpd的工作原理是:
- 创建一个ftp用户
- 为此用户指定一个目录
- 此用户便可通过ftp软件访问这个目录(上传、下载)
- 输入
mkdir /home/ftp
,创建一个ftp目录,稍后使用。 - 输入
chmod 777 /home/ftp
,将ftp目录使用权限全部放开,否则访问可能出问题,这样当然很危险,不过开发的话,无所谓。存在更科学发方法,请自查。
- 输入
lnmp ftp
,既可以看到与ftp相关的操作命令。 - 输入
lnmp ftp add
,添加一个新的ftp用户,此过程中指定“用户名”、“密码”、“目录”即可,类似下图:
ftp创建完毕
3.3 使用ftp
-
在宿主机打开ftp工具,比如Filezilla,输入虚拟机ip以及ftp用户名、密码,就可以使用ftp向虚拟机传送文件了。如下图:
使用filezilla连接虚拟机ftp
4 安装XDebug
4.1 下载xdebug
- 进入预备目录
- 下载
wget https://github.com/derickr/xdebug/archive/xdebug_2_5.zip
4.2 编译xdebug
- 解压
unzip xdebug_2_5.zip
- 进入解压后的目录(一定是有文件的目录,解压后可能是嵌套一个目录,可用
ls
检查) - 执行
phpize
,成功后如下图:
phpize成功执行 - 执行
./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
- 执行
make && make install
,成功后如下图:
xdebug编译成功
4.3 配置xdebug
xdebug配置官网教程https://xdebug.org/docs/remote
这里需要先熟悉下vi的使用,可以参考https://www.runoob.com/linux/linux-vim.html,或https://www.cnblogs.com/jameslif/p/7751567.html。
至少熟悉vi的以下功能:
- 创建、打开、保存文档
- 查找
- 快速滚动到文档开头或结尾
- 移动光标
- 进入、退出编辑状态
- 在php.ini中添加启动代码。任意位置均可,通常在最后。
php.ini可能位于
/usr/local/php/etc/php.ini
[xdebug]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
- 每次编辑完php.ini后需要重启lnmp的服务
lnmp restart
。
4.4 检查xdebug是否运行正常
- 在宿主机浏览器输入
192.168.56.101
,回车。 - 页面里点
phpinfo
连接。 - 打开的页面中搜索
xdebug
,就可以看到关键信息是否正确,特别是4.3中配置那些参数。
5 使用VS Code调试PHP
5.1 添加ftp账号
科学的方法是通过lnmp创建vhost来进行一个新web服务(或网站)的开发,但需要一些额外配置,为了简单,我们将借用lnmp默认的网站目录进行实验、学习。
- lnmp默认的web服务器目录位于
/home/wwwroot/default
- 修改其访问权限
chmod 777 -R /home/wwwroot/default
- 若
chmod
出现关于.user.ini
权限问题,则如下调整一下:
1 先关闭文件保护,chattr -i /home/wwwroot/default/.user.ini
2 修改权限,chmod 777 -R /home/wwwroot/default
3 再开启文件保护,chattr +i /home/wwwroot/default/.user.ini
4 由phpMyAdmin不允许全开放,因此要把这个目录改755权限。chmod 755 -R /home/wwwroot/default/phpmyadmin/
- 使用
lnmp ftp add
将这个目录设置为一个ftp目录,并对应用户为default
,密码就还是简单的111111
吧。 - 使用宿主机ftp工具验证这个ftp已经可用。
5.2 为VS Code安装SFTP扩展
-
安装扩展
SFTP
5.3 在VS Code中通过SFTP访问虚拟机ftp
由于sftp必须基于一个vscode项目运行,所有我们要创建或使用一个项目。
-
在宿主机创建一个项目目录(最好为空)
-
用vscode打开这个项目目录,可以发现vscode左边栏出现sftp按钮
sftp按钮 -
如果配置过ftp连接,则点击sftp按钮后,列表为空。
-
通过view->command pallete(或使用快捷键)开启命令面板
命令面板 -
输入
开启sftp配置sftp:config
进行sftp配置
-
将配置内容替换为如下内容(注意实际应用时需要删除所有注释):
{
"name": "local vm default", // 注释:此ftp的显示名称,可随意。
"host": "192.168.56.104", // 注释:虚拟机的ip。
"port": 21,
"username": "default", // 注释:ftp用户名
"password": "111111", // 注释:ftp密码
"protocol": "ftp",
"passive": false,
"interactiveAuth": true,
"remotePath": "/",
"uploadOnSave": true,
"syncMode": "update",
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/.DS_Store"
],
"watcher": {
"files": "glob",
"autoUpload": true,
"autoDelete": true
}
}
- 成功的话,即可看到ftp的内容如下图:
ftp连接成功
此外,可以在虚拟机输入ls /home/wwwroot/default
,检查是否文件一致。
虚拟机上对应ftp目录的文件情况
5.4 将ftp内容同步到宿主机项目目录
-
保持vscode打开的是项目目录,进入文件浏览窗口,如下图:
项目目录 -
右键菜单,选择
同步文件sync remote -> local
,将ftp中对应文件同步到当前项目目录中,如下图:
成功后,类似下图:
同步成功
5.5 安装VS Code的PHP相关插件
- 安装
PHP IntelliSense
和PHP Debug
插件,如下图:
PHP IntelliSense和PHP Debug插件
5.6 测试php代码
- 通过vscodde,在项目根目录下创建me.php,并输入内容:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo '当前访问网页的ip为:' . $ip;
?>
- 保存后,sftp会自动将改文件上传到虚拟机对应目录,可以通过sftp窗口的刷新看到新上传的
me.php
文件,如下图:
修改保存me.php后,自动上传到虚拟机 - 在宿主机浏览器输入地址
192.168.56.101/me.php
,看到如下截图,标明me.php代码已经被执行:
执行me.php代码
5.7 调试php代码
-
配置PHP Debug,为调试器添加路径映射,具体过程如下:
1 打开调试界面
1/3 打开调试界面
2 打开调试配置文件
2/3 打开调试配置文件
3 在配置文件中添加路径映射,这样调试器就知道如何映射本地和虚拟机上的文件了。
3/3 添加路径映射 -
启动调试。
启动调试 -
添加断点。
添加断点 -
通过浏览器访问me.php网址,即可激活调试。
调试断点
附录
wget https://github.com/derickr/xdebug/archive/xdebug_2_5.zip
网友评论