PhpStorm 2021.3 Help

对常见部署问题进行故障排除

本部分提供了PhpStorm中部署常见问题的解决方案和变通方法列表。

收集 PhpStorm 部署日志

如果本节未解决您的问题,请联系我们的支持工程师。如果要求提供部署日志,请按照说明收集它们。

收集部署日志

  1. 选择帮助 | 在主菜单中配置调试日志。

  2. 在打开的自定义调试日志配置对话框中,根据您遇到的问题添加以下行:

    • 部署/同步问题:#com.jetbrains.plugins.webDeployment

    • 与 SSH/SFTP 相关的问题:#com.intellij.ssh

    收集日志

  3. 单击确定并重现该问题。

  4. 通过选择帮助 |找到日志文件。在资源管理器中显示登录(适用于 Windows 和 Linux)或帮助 | 在 Finder 中显示登录(适用于 macOS)。

    如有必要,您可以手动查找日志:

    句法

    %HOMEPATH%\.<产品><版本>\system\log

    例子

    C:\Users\JohnS\.PhpStorm2021.3\system\log

    句法

    ~/Library/Logs/<产品><版本>

    例子

    ~/库/日志/PhpStorm2021.3

    句法

    ~/.<产品><版本>/system/log

    例子

    ~/.PhpStorm2021.3/system/log

    最近的日志文件名为idea.log;旧文件名以数字结尾,即idea.log.1idea.log.2等。在大多数情况下,您只需要最近的一个。

  5. 将日志文件附加到问题论坛主题

一般故障排除

部署缓慢或失败

部署可能是一项资源密集型操作,尤其是在项目或部署服务器包含大量目录和文件的情况下。在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,导航到Build、Execution、Deployment并探索以下可以加快部署的配置选项:

  • 从部署中排除不需要的目录(例如,图像)。这可以从部署:排除路径选项卡页面完成。

  • 选项页面上,清除覆盖最新文件以跳过上传不需要上传的文件。

  • 根据服务器的不同,在高级 FTP 设置中切换主动和被动传输模式可能会有所帮助。这可以通过在服务器的部署:连接选项卡中切换被动模式来完成。

文件传输变得无响应

如果 PhpStorm 尝试通过IPv6解析IPv4主机,则可能会发生这种情况。默认情况下,PhpStorm 仅侦听传入的 IPv4 连接。要确保禁用 IPv6,请检查 PhpStorm JVM 选项

  1. 选择帮助 | 从主菜单编辑自定义 VM 选项。

  2. 在打开的.vmoptions文件中,确保该-Djava.net.preferIPv4Stack=true行存在。

  3. 重新启动 PhpStorm。

否则,要启用 IPv6 支持,请删除该-Djava.net.preferIPv4Stack=true行。在这种情况下,请确保将主机的 IPv6 条目添加到/etc/hosts文件中。

下载/上传操作不可用

由于缺少映射,下载/上传操作可能不可用。如果您要下载的文件或文件夹未在任何映射中配置,PhpStorm 将不会下载它。映射可以按照将项目文件夹映射到服务器上的文件夹和访问它们的 URL 地址中的描述进行配置。

对于某些操作,需要在“设置/首选项”对话框的“部署”页面上选择默认部署服务器。

部分文件夹未部署

未部署文件夹的常见原因是它们被明确排除。要解决此问题,请在远程主机工具窗口中右键单击给定文件夹,然后从上下文菜单中选择从排除项中删除路径。完成此操作后,将部署该文件夹。

这也可以从“设置/首选项”对话框 ( )的“部署”页面进行配置。打开服务器的排除路径选项卡并删除排除路径。请注意,应检查源文件夹和目标文件夹。也可以在“按名称排除项目”下的“选项”页面上按名称排除文件夹。Ctrl+Alt+S

在项目之间共享部署配置

部署服务器在 IDE 级别进行配置:它们可用于所有项目并且可以在它们之间共享。

请注意,只有名称和连接详细信息(在部署:连接选项卡选项卡上指定)在项目之间共享:映射和排除路径是项目特定的,必须单独配置。使用这种方法,连接详细信息只需输入一次,而映射和排除路径可以为每个项目配置,共享连接详细信息。当项目共享相同的部署服务器并使用相同的连接设置时,这可能很有用。如果项目之间的连接设置不同,则必须为每个项目单独配置它们。

如有必要,您可以通过选中Deployment: Connection 选项卡上的Visible only for this project复选框将服务器设置为在单个项目中可见。

IDE 设置不允许我配置映射

默认新项目设置用于配置新项目的默认设置,不影响当前打开的项目。要配置当前项目的设置,请使用Settings/Preferences对话框Ctrl+Alt+S

同一文件夹中的子文件夹可以有不同的部署设置吗?可以将本地文件夹部署到多个位置吗?

上传文件夹和配置映射时,请注意以下事项:

  • 您可以指定特定文件夹到部署服务器上不同路径的映射。这可以在服务器的部署:映射选项卡上进行配置。

  • 您可以将特定文件夹和文件排除在上传/下载之外。这可以在“部署:服务器的排除路径”选项卡上进行配置。

  • 您不能一次将相同的文件夹(或子文件夹)上传到不同的站点。需要为每一个创建单独的部署配置,并逐个上传到每个站点。

如果这是您想要做的,我们建议使用功能强大的工具自动化该过程。例如,Phing有一个可以从 PhpStorm 使用的FTP任务。在 PhpStorm 中,您可以使用Sync with Deployed...命令并为每次上传从可用的部署服务器中进行选择。

我无法为 Sync With Deployed to My Server 菜单项分配键盘快捷键

无法将键盘快捷键直接分配给Sync With Deployed to <server name>命令,只能分配给通用Sync with Deployed to...命令,然后会显示一个带有服务器列表的弹出菜单。有关详细信息,请参阅配置键盘快捷键

如果您确实希望为特定部署服务器分配键盘快捷键,则可以录制宏并为其分配快捷键:

  1. 选择编辑 | 宏 | 开始录制宏并开始录制宏。

  2. 选择工具 | 部署 | Sync With Deployed to <server name> 并关闭同步窗口。

  3. 通过选择Edit |停止录制宏 宏 | 从主菜单停止宏录制。

  4. 设置宏名称,例如Sync with <server name>

  5. Settings/Preferences对话框 ( Ctrl+Alt+S) 中打开,选择Keymap并找到Macros节点。从刚刚录制的新同步宏的上下文菜单中,选择添加键盘快捷键并提供所需的快捷键。

如何使用 PhpStorm 部署数据库?

使用 PhpStorm 部署数据库有两种方法:

我可以在上传之前对我的文件运行脚本或可执行文件吗?

诸如缩小 CSS 、优化图像、使用IonCube编码 PHP 文件等是您可能希望在上传发生之前执行的操作。执行此操作的最佳方法不是在开始上传时运行它们,而是在文件更改时使用PhpStorm中的文件观察器运行它们。当需要将它们上传到部署服务器时,请改为上传处理过的文件。

请注意,必须清除“选项”页面上的“跳过外部更改”复选框才能使其正常工作。

有时文件不会自动上传

默认情况下,如果文件被某些外部进程(VCS、转译器等)更改,PhpStorm 会上传文件。如果未上传文件,请确保选项页面上的自动上传更改的文件到默认服务器设置为始终,并清除跳过外部更改复选框。

我可以运行部署前和部署后操作吗?

可以使用运行/调试配置。您可以创建一个假的运行/调试配置,或者应该是最后一步的运行/调试配置,然后在启动前添加所需的步骤。

作为替代方案,我们建议使用Phing或任何其他构建系统来执行复杂的步骤序列。

FTP 疑难解答

FTP 问题:无效的后代文件名“http:”

配置部署服务器或使用项目设置中的测试连接按钮时,将显示Invalid descendent file name "http:"错误。请注意,名称中所有带有冒号:的文件名都将被视为无效。

如果项目中存在名称中包含http:的文件,则会发生这种情况。PhpStorm 用于连接 FTP(Apache Commons VFS)的库无法读取包含此类文件的文件夹的内容,从而导致操作失败。唯一的解决方案是从项目中删除名称中包含http:的文件。

PhpStorm 似乎连接到服务器但无法列出文件或执行上传

这可能是因为部署服务器需要所谓的被动 FTP 连接。要设置此模式,请在所选服务器的部署:连接选项卡中选中被动模式复选框。

使用 Git checkout 更改分支时部署文件

使用 Git checkout 在分支之间切换时,有几种方法可以部署文件:

  • 一种方法是将部署配置为始终上传文件和外部更改。为此,在选项页面上,将自动上传更改的文件到默认服务器设置为始终并清除跳过外部更改复选框。请注意,这将在切换分支时将所有文件上传到服务器。

  • 使用git-ftp。它执行最少的上传,还能够镜像文件和目录删除。

FTPS 故障排除

PhpStorm 无法与 FTPS 服务器建立连接

如果 FTPS 服务器配置为使用 TLS 1.0 / TLS 1.1,则 PhpStorm 无法连接到它并显示以下错误消息:

WARN - deployment.ui.WebServerConfigForm - 无法连接到“<deployment-server>”上的 FTPS 服务器。org.apache.commons.vfs2.FileSystemException:无法连接到“<deployment-server>”上的 FTPS 服务器。

这是因为 PhpStorm 支持通过 TLS 1.2 及更高版本连接到服务器。不支持使用 TLS 1.0 和 TLS 1.1,因为这些协议已被弃用并被视为不安全。

作为一种解决方法,您可以通过调整 PhpStorm JVM 选项来启用 TLS 1.0 / TLS 1.1 支持。请注意,使用过时的协议可能并且将会给您的环境带来安全风险,并将其视为最后的选择。

  1. 使用以下内容创建文件custom.java.security :

    jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \包括jdk.disabled.namedCurves
  2. 选择帮助 | 从主菜单编辑自定义 VM 选项。

  3. 在打开的.vmoptions文件中,添加以下行:

    -Djava.security.properties=${PATH_TO_CREATED_FILE}/custom.java.security

    替换{PATH_TO_CREATED_FILE}为创建的custom.java.security文件的路径。

  4. 重新启动 PhpStorm。

最后修改:2021 年 11 月 29 日