美文网首页
19暑期学习-Day2

19暑期学习-Day2

作者: iqxtreme | 来源:发表于2019-07-06 17:39 被阅读0次

    内容概要

    • 利用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目录使用权限全部放开,否则访问可能出问题,这样当然很危险,不过开发的话,无所谓。存在更科学发方法,请自查。

    linux的用户、用户组与文件操作权限

    • 输入lnmp ftp,既可以看到与ftp相关的操作命令。
    • 输入lnmp ftp add,添加一个新的ftp用户,此过程中指定“用户名”、“密码”、“目录”即可,类似下图:
      ftp创建完毕

    3.3 使用ftp

    • 在宿主机打开ftp工具,比如Filezilla,输入虚拟机ip以及ftp用户名、密码,就可以使用ftp向虚拟机传送文件了。如下图:


      使用filezilla连接虚拟机ftp

    4 安装XDebug

    php 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扩展

    参考教程vs code配置ftp连接远程服务器实现代码文自动上传

    • 安装扩展


      SFTP

    5.3 在VS Code中通过SFTP访问虚拟机ftp

    由于sftp必须基于一个vscode项目运行,所有我们要创建或使用一个项目。

    • 在宿主机创建一个项目目录(最好为空)

    • 用vscode打开这个项目目录,可以发现vscode左边栏出现sftp按钮


      sftp按钮
    • 如果配置过ftp连接,则点击sftp按钮后,列表为空。

    • 通过view->command pallete(或使用快捷键)开启命令面板


      命令面板
    • 输入sftp:config进行sftp配置

      开启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 IntelliSensePHP 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

    相关文章

      网友评论

          本文标题:19暑期学习-Day2

          本文链接:https://www.haomeiwen.com/subject/wyjphctx.html