Phpstorm Scp



我有一个phpstorm项目,通过ssh进行远程部署(ubuntu服务器16.04)
要测试我的php项目,我通过ssh隧道(putty)连接到远程服务器:
其中动态端口转发D1024用于浏览器代理
xdebug应该使用远程端口转发r9000 localhost:9000
我将phpstorm配置为使用xdebug:
并使其能够监听php调试连接:
远程服务器上的xdebug似乎已启用:
这是浏览器中phpinfo()的xdebug部分
这是命令行php-i的xdebug grep:
我的浏览器正在发送正确的cookie,因为xdebug helper firefox扩展启用了debug:
这是我在/etc/php/7.1/mods-available/xdebug.ini中的xdebug配置
这是xdebug.log的内容
当我执行我的项目时,通过浏览器(ssh隧道)导航它,phpstorm中不会发生任何事情(即使我在脚本的一开始就设置了断点)
我错在哪里?
也许我在putty中设置的两端口转发互相干扰?我该怎么解决?

Phpstorm Specified Url Is Not Reachable

最佳答案

putty tunnel配置中有一个错误,是locahost而不是localhost编写的

I'm changing my dev environment quite frequently, always looking for the current best option. While Windows with ddev was an ok option for TYPO3 development, since I'm doing Shopware including frontend development with lots of files in node-modules and corresponding file watchers, that setup has become too slow to comfortably work with. Now I finally found a setup based on Windows and WSL2 with Ubuntu that is a pleasure to work with, with all the benefits of having Linux as development environment seamlessly embedded into the Windows host system.

In this post I'm describing how to set all that up.

Hi, I want to work remotely. I have a server and I want to connect through SSH/SCP/SFTP/FTP or whatever:) to the remote system and work completely remotely. (I don't want to copy the source to my.

Goals:

  • Usable PHPStorm with fast file sync
  • Common development tools (git, ssh, tests) running
  • No restarts, no dual-boot, no weird workarounds, no file mounts or nfs
  • Running system.d, ssh agent and snap on Ubuntu
  • Seamless integration into Windows

For example consider the following screenshot:

  • Firefox is running on Windows
  • Chromium is running on Linux
  • The Windows Terminal App is running an Ubuntu Bash
  • PHPStorm is running on Linux

1. Install WSL2 with Ubuntu 2020

First of all, you need to enable WSL2 and install Ubuntu. If you already have WSL2 enabled, get Ubuntu from the Microsoft store. Otherwise, find a tutorial here: https://www.omgubuntu.co.uk/how-to-install-wsl2-on-windows-10

  1. Open your project in PhpStorm and open the DataSource window: Click on View - Tool Windows - Database; Click on the Database sidebar, click on new - Datasource - MySQL The configuration window will appear; Step 2: configure the ssh tunnel. Open your terminal. Cd /path/to/your/project.
  2. PhpStorm 2020.1.2 is now available!This second minor update for PhpStorm 2020.1 introduces support for WSL 2 and also contains important bug fixes.
  3. A unified UI for SSH configurations. Previously, if you had to configure Deployment via SFTP, add a remote PHP interpreter via SSH, or use an SSH terminal, you had to configure an SSH connection for each, even if you were using the same server for all of them. PhpStorm 2020.1 introduces a unified UI for configuring SSH connections.

2. Install x410 as display manager

To be able to seamlessly integrate Windows and Linux you will need a display manager / XServer. I use (and recommend) X410 (https://x410.dev/). It's currently available for less than 10 Euro in the Microsoft store and 'simply works'.

After installing X410, add the following line to your .bashrc:

connecting your Ubuntu bash with the XServer.

If you want to get even more out of the XServer, check out the Cookbook on its website (https://x410.dev/cookbook/) - for example I added the XServer to the autostart.

3. Use keychain as ssh agent

Having an ssh agent available and loading your ssh key by default makes working with ssh or git much easier. To use your SSH key in Ubuntu, copy it to ~/.ssh/id_rsa:

Then install keychain as SSH agent and manager:

To load the key automatically and start the agent, add the following line to your .bashrc:

(of course, you can add / load other keys here, too)

More info or other ways to add SSH authentication can be found at https://medium.com/@pscheit/use-an-ssh-agent-in-wsl-with-your-ssh-setup-in-windows-10-41756755993e

4. Install Docker and enable WSL2 support

Current docker installations support WSL2 already. If you already have Docker installed, you can enable WSL2 integration, otherwise install it first. You can select the distributions where you want to use docker. After enabling, you might need to restart your WSL2 distribution to have it available.

5. Use 'systemd' hack to use snap (optional - be careful)

I wanted to be able to use snap for installing tools like node and PHPStorm - to make that possible, I needed to get systemd functional. There is no official support for running systemd on WSL2, however there are 'hacks' / 'workarounds' to make it work. Take a look before you leap and use with caution:

There may be other / updated ways to get it running at this point, keep an eye on https://github.com/microsoft/WSL/issues/5126

Once that's done, snap should be running:

6. Install PHPStorm with Snap

Now we are finally ready to install PHPStorm.

EAP:

Stable:

see also https://blog.jetbrains.com/phpstorm/2017/12/install-phpstorm-with-snaps/

Try starting PHPStorm by running phpstorm in your terminal. As I'm lazy, I added the following alias to .bashrc:

7. Install inotify for PHPStorm file watchers

PHPStorm will probably complain about file sync being slow when you start it - that's because we did not install inotify yet, which PHPStorm can utilize. To do so, type:

As the default amount of files a user can watch is pretty low - especially if you are doing anything frontend related ;) - you can increase that number by adding the following line in /etc/sysctl.conf:

and applying the change:

For more info see https://blog.jetbrains.com/idea/2010/04/native-file-system-watcher-for-linux/
For debugging the file watcher see https://confluence.jetbrains.com/display/~roman.shevchenko/Debugging+native+file+system+watcher+for+Linux

Success!
You now have a running Ubuntu with PHPStorm incl. fast file sync.

-- Optional --

🐵 Random Stuff 🐵
The following section contains additional things I did to customize my environment and make it more fun to use - just in case someone is interested.

8. Install PHP / Composer / Node locally

Scrolling

As I'm doing quite a bit of development directly based on a local PHP server and nothing else, run Cypress acceptance tests via Node in PHPStorm etc. it's important for me to have my tools 'at hand' without the need to start or run a docker container.

Phpstorm scp sync

I additionally installed PHP7.4 via apt (apt install php7.4-*), composer via the recommended install script and node via snap install node.

9. Recommendation: Use Windows Terminal - with Emoji Support 🐱🐱🐱

As a terminal application I'm using the new Windows terminal - it's fast and has some nice features like tabs for different terminals (you can mix and mash Ubuntu and Powershell for example), colored tabs and - most important: EMOJIs!

Get it from the Windows Store: https://www.microsoft.com/de-de/p/windows-terminal-preview/9n8g5rfz9xk3

10. Customize your prompt and git environment (PS_1)

As you might have seen I'm a big fan of customizing your bash prompt and displaying git status information directly. To do that, I'm using the brew formula bash-git-prompt. To install, first install linuxbrew and then tap the formula

See https://docs.brew.sh/Homebrew-on-Linux and https://formulae.brew.sh/formula/bash-git-prompt

11. Scaling issues

Depending on your system, you might have scaling issues when using Linux GUI Apps. In my case, adding the following to vars helped:

12. Install ddev on Ubuntu

I'd recommend installing and using ddev on Ubuntu, too - to install (if you installed linuxbrew in step 10):

See https://ddev.readthedocs.io/en/stable/#installation for more in-depth instructions.

13. Setup GPG TTY for signed commits

When using Git with signed commits from Ubuntu you may need to set a TTY for GPG to allow unlocking your key.

Add the following line to your .bashrc:

14. Bonus: Set keyboard layout to Dvorak on WSL2/X410

Some might know I'm using Dvorak as keyboard layout - to do so in Ubuntu GUI apps add the following to profile or .bashrc:

Phpstorm Scope

That's it
I hope some of it is useful - if you have any questions or feedback let me know via Twitter (https://twitter.com/sasunegomo) or TYPO3 Slack (@susi)