问题描述
理想情况下,它使用PHPStorm部署机制-但欢迎提供所有答案。例如制作bash文件,然后将scp文件覆盖(然后使用PHPStorm执行)。
我正在寻找一种方法,只需按以下命令即可:CMD
+ OPT
+ CTRL
+ J
-然后将所有标记为文件。
我的项目具有以下所示的结构。我已经标记了要上传的文件(x):
project
|- subfolder
|- subsubfolder
|- assets
| |- css (x)
| |- js (x)
| |- admin (x)
| |- img
|
|- foo.PHP
|- bar.PHP
|- style.css (x)
|- bundle.js (x)
|- other.PHP
|- other-1.PHP
Attempt1
我已经尝试过:“将更改的文件自动上传到默认服务器” ==“始终|在显式保存...” -这非常神奇。但是,如果设置不正确-则可能造成混乱。
解决方法
好的。我就是这样做的。最后!!!我多年来一直在寻找这个(毫不夸张)。我现在对它太恼火了,我深入研究了@LazyOne 提出的建议 (
我使用的是 PhpStorm v. 2020,我使用的是 Mac。
步骤 1 - 安装 SSHPASS
这是第一个障碍。那里有几个不同的水龙头。 This one 为我工作:
brew install hudochenkov/sshpass/sshpass
这是必要的,以避免在执行 scp
命令时提示输入密码。
第 2 步 - 让 SCP 从终端开始工作
从 PhpStorm 内部调试很烦人。所以我建议从终端开始,让 SCP 命令工作。它相对于太多东西,所以它可能因主机而异。
请注意,SCP 使用 SSH 复制文件,应启用 SSH 以使其工作。
这是一个对我有用的命令:
sshpass -p 'mypassword' scp style.css app.js SERVER_USER@SERVER_IP:public_html/wp-content/themes/my_theme_name/
这会将两个文件复制到给定的目的地。
为什么我不使用 SSH 密钥?
我在一个有主用户的服务器上,我可以将我的 ssh-key 添加到它 - 这样就可以访问服务器。但我不能为单个实例做到这一点。
第 3 步 - 制作 shell 脚本
我制作了一个名为 uploader.sh
的脚本并添加了以下内容:
#!/bin/bash
sshpass -p 'mypassword' scp myfile.css anotherfile.js athirdfile.php SERVER_USER@SERVER_IP:public_html/wp-content/themes/my_theme_name/
然后我转到“运行”>>“编辑配置”并添加一个新的 Shell 文件。
注意!!记得取消选中“在终端中执行”。原因是无论身在何处都能继续工作真是太好了。如果您在终端中执行它,那么光标将在终端中完成。如果未选中,则不会这样做。
在这里你可以看到我的配置:
第 4 步 - 运行和测试
现在转到“运行”>>“运行”并选择您刚刚添加的那个。然后你应该看到一个这样的窗口:
要再次运行最新的“运行”,您只需按 CMD
+ r
。
砰!
步骤 5 - 将 uploader.sh 添加到 .gitignore
现在,您服务器的密码以纯文本形式存储在您机器上的一个文件中。出于安全目的,这很糟糕。因此,如果您正在为核发射编写后端代码,那么您可能不应该这样做。
但请记住将 uploader.sh
文件添加到您的 .gitignore
文件以避免将其上传到存储库。