目录
钥匙要点
作曲家
开发服务器现在正在聆听端口8080上的连接,因此,一旦我们通过此Web服务器(https:// localhost:8080/decorator.php)请求Decorator.php文件,我们就应该看到以下内容:
即使代码似乎完美地运行,测试也会失败。我们可以通过仅运行失败测试来进一步检查:
结论
>
psysh允许您通过在您的.psysh.php中创建.psysh.php文件来自定义其配置。主目录。在此文件中,您可以设置配置选项,例如默认值包括,错误级别和命令历史记录大小。您还可以添加自定义命令或清洁剂。
psysh的一些高级功能是什么?
首页 后端开发 php教程 互动php与psysh调试

互动php与psysh调试

Feb 19, 2025 am 10:15 AM

互动php与psysh调试

是上午1:00,您的Web应用程序的交付截止日期为8小时……而且行不通。 当您尝试弄清楚发生了什么时,您将代码填充var_dump()和die()到处都在查看错误在哪里…

>

>你很生气。每次您想尝试返回值或变量分配时,都必须更改源代码,执行应用程序并查看结果……最终,您不确定是否已将所有这些var_dump从代码。这种情况很熟悉吗?

>

钥匙要点

    PSYSH是PHP的功能强大的REPL工具,可以通过允许立即进行互动和执行PHP代码来增强调试,类似于浏览器中的JavaScript控制台。 PSYS的安装可以在全球或使用Composer进行全球完成,并且支持在运行时检查和操纵代码的一系列命令。> 通过使用``ls',show'''和`help'之类的命令,开发人员可以检查变量,查看方法定义并直接在控制台中获取有关代码的详细信息。
  • > PSYS可以直接集成到PHP脚本或单元测试中,以提供实时调试环境,这对于识别和修复复杂应用程序中的错误特别有用。
  • >该工具在命令行接口和内置的PHP Web服务器中提供了无缝调试体验,尽管它与Apache等外部Web服务器不兼容。
  • >
  • > psysh进行救援
  • PSYSH是一个读取的印刷循环(或repl)。 您可能在通过浏览器的JavaScript控制台之前使用了一个卧式。 如果有的话,您知道它具有很大的力量,并且在调试JS代码时可能会很有用。
  • >谈论PHP,您之前可能已经使用过PHP的Interactive Console(PHP -A)。在那里,您可以编写一些代码,并且一旦按Enter:,该控制台将立即执行它
  • 不幸的是,交互式外壳不是一个替补,因为它缺少“ p”(打印)。 我必须执行回声语句才能查看$ a的内容。 在真实的补充中,我们将在将值分配给它后立即看到。
  • >
>您可以在Composer g需要的情况下在全球安装PSYSH,或者下载PSYSH可执行

作曲家

>直接下载(Linux/Mac)

php -a
Interactive shell

php > $a = 'Hello world!';
php > echo $a;
Hello world!
php >
登录后复制
登录后复制
登录后复制
登录后复制
>此外,您可以在本文稍后看到的作曲家每个项目中都包含它。

现在让我们玩一点psysh。

主要帮助将是您最好的朋友。这将为您提供各种命令及其解释的原因:

>

composer g require psy/psysh:~0.1
psysh
登录后复制
登录后复制
登录后复制

基本上,一个替补可以做的是:

>
wget psysh.org/psysh
chmod +x psysh
./psysh
登录后复制
登录后复制
登录后复制

>请注意,如果我们将PSYS与PHP的交互式控制台进行比较,则PSYSH在分配后立即打印出$ A a值。

>

一个更复杂的示例可以如下:

php -a
Interactive shell

php > $a = 'Hello world!';
php > echo $a;
Hello world!
php >
登录后复制
登录后复制
登录后复制
登录后复制
>我定义了say()并调用它。 您看到的这两个null是因为函数定义和执行都没有返回值(函数回荡值)。 此外,在定义功能时,提示从>>>更改为....

>

我们可以定义类并实例化吗?

composer g require psy/psysh:~0.1
psysh
登录后复制
登录后复制
登录后复制
>当我实例化foo时,构造函数返回对对象的引用。 这就是为什么Psysh打印。 现在让我们看看关于psysh和对象的有趣的东西。

>

wget psysh.org/psysh
chmod +x psysh
./psysh
登录后复制
登录后复制
登录后复制
如果您忘记了类Foo定义的哪种方法,则您现在有了答案。 您是否使用过Linux OS或Mac命令行接口?那么您可能会熟悉LS命令。 还记得-la选项吗?

./psysh                                                                                                                                             

Psy Shell v0.1.11 (PHP 5.5.8 — cli) by Justin Hileman                                                                                                                                                                              
>>>
登录后复制
登录后复制
甜,不是吗?

与Web应用程序集成时,PSYS的真实力量会闪耀,所以让我们构建一个。

演示应用

>我将实施一个快速应用程序来展示装饰器设计模式。这种模式的UML类图如下:


>如果您对UML或设计模式不了解,则不必担心本文不需要理解它们。 互动php与psysh调试

>也为此项目创建了一组测试用例。 这些测试用例可以由Phpunit运行。同样,您不必熟悉单元测试就可以理解本文。

>

可以在https://github.com/sitepoint-examples/psysh

上找到此小应用程序的完整源代码

首先,让我们定义我们的composer.json文件以声明对psysh的依赖性:

作曲家安装后,您应该很好。

>
>>> help

  help      Show a list of commands. Type `help [foo]` for information about [foo].      Aliases: ?
  
  ls        List local, instance or class variables, methods and constants.              Aliases: list, dir
  
  dump      Dump an object or primitive.
  
  doc       Read the documentation for an object, class, constant, method or property.   Aliases: rtfm, man 
  
  show      Show the code for an object, class, constant, method or property.
  
  wtf       Show the backtrace of the most recent exception.                             Aliases: last-exception, wtf?
  
  trace     Show the current call stack.
  
  buffer    Show (or clear) the contents of the code input buffer.                       Aliases: buf
  
  clear     Clear the Psy Shell screen.
  
  history   Show the Psy Shell history.
  
  exit      End the current session and return to caller.                                Aliases: quit, q
登录后复制
登录后复制
请查看来自文件public/decorator.php的以下源代码。它将实例化简单的窗口,装饰窗户和标题为窗户的对象,以展示装饰器图案:

我们可以通过PHP的CLI(命令行接口)执行代码,或者如果配置了网络服务器。 我们也可以使用PHP的内部Web服务器。

>
>>> help ls

Usage:

ls [--vars] [-c|--constants] [-f|--functions] [-k|--classes] [-I|--interfaces] [-t|--traits] [-p|--properties] [-m|--methods] [-G|--grep="..."] [-i|--insensitive] [-v|--invert] [-g|--globals] [-n|--internal] [-u|--user] [-C|--
category="..."] [-a|--all] [-l|--long] [target]

Aliases: list, dir

Arguments:

 target             A target class or object to list.
 
 
Options:

 --vars             Display variables.
 
 --constants (-c)   Display defined constants.
 
 --functions (-f)   Display defined functions.
 
 --classes (-k)     Display declared classes.
 
 --interfaces (-I)  Display declared interfaces.
 
 --traits (-t)      Display declared traits.
 
 --properties (-p)  Display class or object properties (public properties by default).
 
 --methods (-m)     Display class or object methods (public methods by default).
 
 --grep (-G)        Limit to items matching the given pattern (string or regex).
 
 --insensitive (-i) Case-insensitive search (requires --grep).
 
 --invert (-v)      Inverted search (requires --grep).
 
 --globals (-g)     Include global variables.
 
 --internal (-n)    Limit to internal functions and classes.
 
 --user (-u)        Limit to user-defined constants, functions and classes.
 
 --category (-C)    Limit to constants in a specific category (e.g. "date").
 
 --all (-a)         Include private and protected methods and properties.
 
 --long (-l)        List in long format: includes class names and method signatures.
 
 
 Help:
 
 List variables, constants, classes, interfaces, traits, functions, methods, and properties.
 
 Called without options, this will return a list of variables currently in scope.
 
 If a target object is provided, list properties, constants and methods of that target. If a class, interface or trait name is passed instead, list constants and methods on that class.
 
 e.g. 
 
 >>> ls
 >>> ls $foo
 >>> ls -k --grep mongo -i
 >>> ls -al ReflectionClass
 >>> ls --constants --category date
 >>> ls -l --functions --grep /^array_.*/
 >>>
登录后复制
登录后复制
在CLI

中调试 通过命令行界面执行上述代码的执行方式将如下所示:

>

>我们如何与psysh互动? 只需添加psyshell :: debug(get_defined_vars());您要调试应用程序的代码上的任何位置,通常在哪里插入var_dump()语句:

>

<span>>>> $a = 'hello';
</span><span>=> "hello"
</span><span>>>></span>
登录后复制
登录后复制
保存文件后,我们将获得以下输出:>

>脚本的执行将被暂停,我们现在有PSYS的提示可以进行。我将get_defined_vars()作为参数传递给psyshell :: debug(),所以我可以访问shell中的所有定义变量:
>>> function say($a) {
...     echo $a;
... }
=> null
>>> say('hello');
hello
=> null
>>>
登录后复制
登录后复制
>

让我们检查$ window变量:
php -a
Interactive shell

php > $a = 'Hello world!';
php > echo $a;
Hello world!
php >
登录后复制
登录后复制
登录后复制
登录后复制

在应用程序中将psys添加到一个很好的是,我们可以检查实例化对象的源代码。>

composer g require psy/psysh:~0.1
psysh
登录后复制
登录后复制
登录后复制
so,$ window是SimpleWindow的一个实例,它实现了窗口界面……我想知道窗口界面的源代码看起来像…

>

wget psysh.org/psysh
chmod +x psysh
./psysh
登录后复制
登录后复制
登录后复制
>为什么简单的窗口和装饰窗口具有相同的输出?让我们检查一下$ DecoratedWindow对象。

>

./psysh                                                                                                                                             

Psy Shell v0.1.11 (PHP 5.5.8 — cli) by Justin Hileman                                                                                                                                                                              
>>>
登录后复制
登录后复制
这个对象比简单的窗口“重”,因此源代码可能很长……让我们仅查看render()方法的源代码:

>

调用getWindowReference()方法,然后返回Render()方法的结果。 让我们检查getWindowReference()来源:
>>> help

  help      Show a list of commands. Type `help [foo]` for information about [foo].      Aliases: ?
  
  ls        List local, instance or class variables, methods and constants.              Aliases: list, dir
  
  dump      Dump an object or primitive.
  
  doc       Read the documentation for an object, class, constant, method or property.   Aliases: rtfm, man 
  
  show      Show the code for an object, class, constant, method or property.
  
  wtf       Show the backtrace of the most recent exception.                             Aliases: last-exception, wtf?
  
  trace     Show the current call stack.
  
  buffer    Show (or clear) the contents of the code input buffer.                       Aliases: buf
  
  clear     Clear the Psy Shell screen.
  
  history   Show the Psy Shell history.
  
  exit      End the current session and return to caller.                                Aliases: quit, q
登录后复制
登录后复制
>

此方法正在返回对象的WindowReference属性,正如我们从上面的LS -AL命令看到的那样,它是Acmepatternsdecoratorsimplewindow的实例。 当然,我们本来可以研究DecoratedWindow :: __ construct()的工作方式,但这是我们可以检查的另一种方式。
>>> help ls

Usage:

ls [--vars] [-c|--constants] [-f|--functions] [-k|--classes] [-I|--interfaces] [-t|--traits] [-p|--properties] [-m|--methods] [-G|--grep="..."] [-i|--insensitive] [-v|--invert] [-g|--globals] [-n|--internal] [-u|--user] [-C|--
category="..."] [-a|--all] [-l|--long] [target]

Aliases: list, dir

Arguments:

 target             A target class or object to list.
 
 
Options:

 --vars             Display variables.
 
 --constants (-c)   Display defined constants.
 
 --functions (-f)   Display defined functions.
 
 --classes (-k)     Display declared classes.
 
 --interfaces (-I)  Display declared interfaces.
 
 --traits (-t)      Display declared traits.
 
 --properties (-p)  Display class or object properties (public properties by default).
 
 --methods (-m)     Display class or object methods (public methods by default).
 
 --grep (-G)        Limit to items matching the given pattern (string or regex).
 
 --insensitive (-i) Case-insensitive search (requires --grep).
 
 --invert (-v)      Inverted search (requires --grep).
 
 --globals (-g)     Include global variables.
 
 --internal (-n)    Limit to internal functions and classes.
 
 --user (-u)        Limit to user-defined constants, functions and classes.
 
 --category (-C)    Limit to constants in a specific category (e.g. "date").
 
 --all (-a)         Include private and protected methods and properties.
 
 --long (-l)        List in long format: includes class names and method signatures.
 
 
 Help:
 
 List variables, constants, classes, interfaces, traits, functions, methods, and properties.
 
 Called without options, this will return a list of variables currently in scope.
 
 If a target object is provided, list properties, constants and methods of that target. If a class, interface or trait name is passed instead, list constants and methods on that class.
 
 e.g. 
 
 >>> ls
 >>> ls $foo
 >>> ls -k --grep mongo -i
 >>> ls -al ReflectionClass
 >>> ls --constants --category date
 >>> ls -l --functions --grep /^array_.*/
 >>>
登录后复制
登录后复制
用嵌入式服务器调试

不幸的是,不支持通过像Apache这样的Web服务器进行调试。但是,我们可以使用PHP的嵌入式服务器调试应用程序:

开发服务器现在正在聆听端口8080上的连接,因此,一旦我们通过此Web服务器(https:// localhost:8080/decorator.php)请求Decorator.php文件,我们就应该看到以下内容:

我们可以像我们对Cli
<span>>>> $a = 'hello';
</span><span>=> "hello"
</span><span>>>></span>
登录后复制
登录后复制
>一样开始玩PSYSH

进行单位测试调试
>>> function say($a) {
...     echo $a;
... }
=> null
>>> say('hello');
hello
=> null
>>>
登录后复制
登录后复制

作为一个好的开发人员,您应该为代码编写单元测试,以证明其正常工作。在项目的文件中,您会找到测试文件夹,如果安装了PHPUNIT,则可以在其内部运行测试。

>
>>> class Foo
... {
...     protected $a;
...
...     public function setA($a) {
...         $this->a = $a;
...     }
...
...     public function getA() {
...         return $this->a;
...     }
... }
=> null
>>> $foo = new Foo();
=> <Foo #000000001dce50dd000000002dda326e> {}
>>> $foo->setA('hello');
=> null
>>> $foo->getA();
=> "hello"
>>>
登录后复制

即使代码似乎完美地运行,测试也会失败。我们可以通过仅运行失败测试来进一步检查:

>我们具有生成错误的测试,文件和行。 让我们看一下标题为windowtest.php
>>> ls $foo
Class Methods: getA, setA
>>>
登录后复制

如果您不熟悉phpunit,请不要过分关注该代码。 简而言之,我正在设置所有内容,以测试标题window :: addtitle()方法,并期望收到一个非空价值。
>>> ls -la $foo
Class Properties:

  $a   "hello" 
  

Class Methods:

  getA   public function getA()
  setA   public function setA($a)
登录后复制

>那么,我们如何使用psysh检查发生了什么?只需像以前一样添加shell :: debug()方法。

>
{
    "name": "example/psysh",
    "authors": [
        {
            "name": "John Doe",
            "email": "john@doe.tst"
        }
    ],
    "require": {
        "psy/psysh": "~0.1"
    },
    "autoload": {
        "psr-4": {"Acme\": "src/"}
    }
}
登录后复制

我们准备好摇滚了!

>因此,在$ rs中,我们应该有一个字符串;让我们看看我们真正拥有的。
<span><span><?php
</span></span><span><span>chdir(dirname(__DIR__));
</span></span><span>
</span><span><span>require_once('vendor/autoload.php');
</span></span><span>
</span><span><span>use Acme<span>\Patterns\Decorator\SimpleWindow</span>;
</span></span><span><span>use Acme<span>\Patterns\Decorator\DecoratedWindow</span>;
</span></span><span><span>use Acme<span>\Patterns\Decorator\TitledWindow</span>;
</span></span><span>
</span><span><span>echo PHP_EOL . 'Simple Window' . PHP_EOL;
</span></span><span>
</span><span><span>$window = new SimpleWindow();
</span></span><span>
</span><span><span>echo $window->render();
</span></span><span>
</span><span><span>echo PHP_EOL . 'Decorated Simple Window' . PHP_EOL;
</span></span><span>
</span><span><span>$decoratedWindow = new DecoratedWindow($window);
</span></span><span>
</span><span><span>echo $decoratedWindow->render();
</span></span><span>
</span><span><span>echo PHP_EOL . 'Titled Simple Window' . PHP_EOL;
</span></span><span>
</span><span><span>$titledWindow = new TitledWindow($window);
</span></span><span>
</span><span><span>echo $titledWindow->render();</span></span>
登录后复制

> null值,难怪测试失败了……让我们检查标题Window :: AddTitle()的源代码。 如果我们执行LS命令,我们可以看到我们可以通过$ titledwindow对象获得该对象的方法。
php public/decorator.php 

Simple Window
+-------------+
|             |
|             |
|             |
|             |
|             |
+-------------+

Decorated Simple Window
+-------------+
|             |
|             |
|             |
|             |
|             |
+-------------+

Titled Simple Window
+-------------+
|Title        |
+-------------+
|             |
|             |
|             |
|             |
|             |
+-------------+
登录后复制
php -a
Interactive shell

php > $a = 'Hello world!';
php > echo $a;
Hello world!
php >
登录后复制
登录后复制
登录后复制
登录后复制

有错误。该方法是回荡值而不是返回值。 即使该应用程序似乎可以正常工作,通过单元测试和PSYSH,我们发现了一个缺陷,现在我们可以修复它。

>

结论

本文并不是要详尽地展示所有潜在的PSYS所具有的。 您应该尝试其他一些很酷的功能(例如“ doc”)。 仅PSYS可能不是很有用,但是如果与其他工具和您的聪明调试功能相结合,则可以证明是宝贵的资产。

>常见问题(常见问题解答)关于与psysh

进行交互式PHP调试

什么是psysh,它如何在PHP调试中起作用?它提供了一个交互式命令行接口,您可以在其中执行PHP代码并立即查看输出。 PSYS对于调试特别有用,因为它允许您逐步浏览代码,检查变量并进行交互式测试更改。这就像与您的代码进行对话一样,这可能会导致更好地理解和更快的错误分辨率。

>如何安装PSYSH进行php调试?

psysh可以使用作曲家,A PHP的依赖关系管理工具。您可以通过运行Command Composer Global需要PSY/PSYS进行安装。安装后,您可以简单地在终端中键入psysh来启动PSYS。确保将全局作曲家二进制文件包括在您的路径中,以便您的系统可以找到PSYSH可执行文件。

>我如何使用psysh调试我的php代码?

,您可以插入psysh();在您的代码中的任何时候,您都想开始交互式调试会话。当您的代码执行达到这一点时,PSYS将打开一个交互式外壳,允许您检查变量,执行代码并逐步浏览您的代码执行。

>

我可以使用psysh在PHP中进行单位测试?是的,PSYSH对于PHP中的单位测试非常有用。您可以使用PSYS在测试执行过程中的任何时刻进行交互调试,检查变量和状态。这对于理解为什么测试失败可能特别有用。

>

我如何自定义PSYSH配置?

psysh允许您通过在您的.psysh.php中创建.psysh.php文件来自定义其配置。主目录。在此文件中,您可以设置配置选项,例如默认值包括,错误级别和命令历史记录大小。您还可以添加自定义命令或清洁剂。

>

psysh的一些高级功能是什么?

psysh具有许多高级功能,可以帮助您更有效地调试PHP代码。其中包括使用运行时执行代码,自动分号插入,名称空间支持,读取线支持,异常处理等。 PSYS还支持变量,功能,类,甚至PHP内置关键字的选项卡完成。

psysh如何处理错误和异常?

psysh具有强大的错误和异常处理机制。当发生错误或异常时,PSYSH将显示详细的堆栈跟踪,帮助您确切地了解错误发生的位置和原因。您还可以在任何时候使用WTF命令来显示最后一个异常堆栈跟踪。

>我可以将psysh与我喜欢的php框架一起使用吗?

是的,PSYSH可以很好地与大多数PHP框架,大多数PHP框架,包括Laravel,Symfony和Zend框架。一些框架,例如Laravel,甚至包括PSYSH开箱即用。您可以通过报告错误,建议功能或提交拉力请求来为该项目做出贡献。在贡献之前,请确保阅读该项目的贡献指南。

>

>我在哪里可以找到更多资源来了解PSYSH?

>

>官方PSYS网站及其GitHub存储库是找到资源的最佳场所关于psysh。它们包括详细的文档,用法示例和可用命令列表。您还可以在各种PHP和开发人员博客上找到教程和文章。

>

以上是互动php与psysh调试的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

解释PHP中晚期静态结合的概念。 解释PHP中晚期静态结合的概念。 Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

自定义/扩展框架:如何添加自定义功能。 自定义/扩展框架:如何添加自定义功能。 Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

See all articles