通过php artisan保持PHPStorm文件与服务器上生成的文件同步

时间:2015-07-31 08:50:03

标签: laravel phpstorm sftp artisan

我正在使用带有PHPStorm的Laravel和我通过SFTP连接的自定义服务器。问题是作为SFTP,它不同步。因此,每次我通过php artisan命令生成文件时,我都必须使用PHPStorm下载文件。我知道我可以通过使用Homestead和Shared文件夹来解决这个问题,但是这个项目需要一个自定义的VPS。

我知道没有SFTP"驱动"目前正在使用Windows。此外,服务器是远程的,而不是在同一网络上,因此Samba无法完成这项工作。

谢谢!

2 个答案:

答案 0 :(得分:2)

这是我使用的工作流程,您可能只需要执行以下操作,假设您已经设置了默认部署服务器。

编辑远程文件

如果您正在编辑远程文件而不是本地副本,不要;代替:

  • 创建项目文件的本地副本/ git clone /等。
  • 使用本地副本创建一个新的phpstorm项目。

设置同步

如果您已经在处理本地副本但只需要同步设置:

  • ctrl+shift+a
  • 输入deployment
  • 选择options
  • 将选项Upload changed files automatically [..]更改为always
  • 启用upload external changes

作为额外的奖励,这也会自动同步资产gulp watch

如果您尚未设置部署服务器

  • ctrl+shift+a
  • 输入deployment
  • 选择configuration
  • 使用您的连接方法创建一个新服务器。
  • 启用默认服务器(左上方列的最后一个图标)

重要:如果您没有选择服务器作为默认服务器,则无法自动上传更改。

另外,请不要忘记在配置菜单中设置排除项,我通常会将bower_componentsnode_modules排除在部署到我的服务器之外,并且只发送构建资产。 (但这取决于你)

编辑:不要远程运行命令,在本地运行它们并让它们同步回服务器。

答案 1 :(得分:0)

我在双方执行artisan命令......我在linux机器上这样做

<?php
unset($argv[0]);
$params = implode(' ', $argv);
$remoteOutput = shell_exec("sshpass -p password ssh -o StrictHostKeyChecking=no user@1.1.1.1 'php /path/to/artisan $params'");
if(!empty($remoteOutput)){
    shell_exec("php artisan $params");
}

保存并将其作为命令行工具添加到phpstorm ....在windows中我认为你可以使用PHP SSH库或其他东西。