Editing files directly on remote server.

Hi all, new to Phpstorm here, testing it out on trial version and very interested in buying the full pro version. It's been lots of fun configuring it for CI and theming it, all in all I'm blown away I haven't been using Phpstorm earlier.

However, there is one huge problem I have and I'm either blind or somehow this functionality just isn't there.

We have a server with over 30 sites on, totaling well over 100,000 files all in all. Now, whenever I try to create a remote project it starts to download all the files locally without me asking of it, I just want to be able to edit the files directly on the server, like in Aptana and Phpdesinger, which I've been using for a long time but the development of those IDE's just isn't going anywhere and they just don't come close to PHPstorm, Phpstorm blows them both out of the water except for this one thing.

My question is, how do you turn this off? It is , for a lack of a better word, mental, to dl 100,000 files on 6 different machines. I don't see why this functionality is forced on the user when seemingly such a core and simple feature is disabled.

To paint a picture: Imagine the project tree on the left = ftp dir, you open files directly from the remote server and when you save it's automatically uploaded.

The way I'm doing it now is I got filezilla running and phpstorm set to default prog to open with, when I close the file in phpstorm, filezilla detects it and uploads the file. This is painful to do though :/

Sorry for my bad english, it's my fourth language, I hope I provided enough information.

1
20 comments

Hi Mike,

You cannot edit files directly on remote site (like, via FTP). The whole idea of PhpStorm (to be precise, the IDEA platform, which is a basement for every other IDE from JB) is to create/edit your code locally and then deploy to the production server. PhpStorm needs FAST access to project files in order to most of it features to work (code completion, code inspections & validations, code navigation etc), that is why PhpStorm does not even officially supports a mode when you access your files over network folder (very often it become slow and unresponsive, random lookups for no obvious reason etc). That is the current state of things.

If you actually want to edit files remotely, you can do it in this way (not really a solutions, but something better than nothing).
1) create band new LOCAL project
2) File | Settings | Deployment -- create new deployment server (FTP) and make it default for this project
3) Settings | Deployment | Options -- configure to automatically upload changed files
4) Tools | Deployment | Browse Remote Host
Now you can download individual file and edit it. Once you make the changes and save it will automatically be uploaded back to FTP (obviously, local copy will stay).

Just keep in mind, most likely most of the features will not work or you will see a lot of warnings (to a some degree it depends on your codebase, frameworks/libraries used and how you configure your project).

With the above approach (setup empty project first and only then download files from FTP) you can easily bypass current limitations/inconveniences of the Crete New Project Wizard (like, inability to easily exclude specific folders (like, temp, cache, logs) from from transfer project files step).

This is how it works at the moment. There are quite a few tickets on Issue Tracker that addressing these moments, so situation may become better in a future.


See related topics, like these:
http://devnet.jetbrains.net/thread/287045
http://youtrack.jetbrains.net/issue/WI-1398

2
Avatar
Permanently deleted user

Thanks for the swift reply Andriy.

It's a pitty there are such limitations in place, sadly it's not feasable to do it the way you described, it would almost seem that the developers behind PHPStorm did everything they could to prevent remote editing, because even with this trick, instead of just pressing "enter" on a file to open it, you have to right click, download it, switch to project tree, find the file, and then open it :p

I think you get my point, in a production environment , this is not acceptable, more time would be spent opening files than anything else :(

I don't want to argue on how code completion works perfectly fine in live remote editing in a number of IDE's(actually, I would be hard pressed to find a IDE that does not support this out of the box or with a plugin) since there is no point to it as it seems to be a technical limitation of the IDEA platform. Sadly, I can't imagine myself ever wanting, needing or in any way benefiting from having to download my projects on any computer I touch just to work with them. 15 years ago, yes, I could understand that, but in 2011 not having such basic functionality is a dealbreaker for me. I do think PHPstorm is absolutely the best IDE in all other areas, and it's sad we wont be able to change to it, I would kill to have PHPdesigners ftp-support integrated into PHPstorm *drool*.

Best wishes & good luck,
Mike C.

1
Avatar
Permanently deleted user

Hi Mike,

If you have a decent speed connection to  your web server via a mapped drive you can easily setup php storm to  work on the code directly. Just go to "file->open directory" and  browse to the mapped drive and select your website root on the server. You can then  forget about setting up any kind of deployment/server mappings as all  your work will be done directly on the server anyway. I've a feeling  you've been using the "file->new project from existing files" option  which as you've found, will grab the files to your local machine. So  avoid using that and open the directory on the server directly. As far  as PhpStorm is concerned the project is on just another drive on your  PC. I've got this working very well even though my UAT/production  servers are linux based and my dev machine uses Windows. I just  installed ExpanDrive which can map linux disks to Windows. It's  fantastic.

I'm not going to start lecturing on why a developer  shouldn't edit directly on a production server - I'm sure you know the  risks. What you will need to be aware of though is that PhpStorm will  create .idea folder on your server which you and/or the release team may  not be happy with, especially if it gets bundled automatically with the  other files by an automated release process.

Lastly, I have never noticed  a problem with code completion, inspections or any other part of PhpStorm caused by working in this way. Like I said, in practice PhpStorm has no idea you are working on a mapped drive, so long as your connection is fast enough.

I hope that convinces you to stay with PhpStorm!

-James

1

Hi Mike and James.

Do not forget that work with mounted folder is officialy unsupported in all jetbrains products. They reject all bugs about speed, freezes, etc. in this case.

1
Avatar
Permanently deleted user

I think what would bridge all of these needs is Dreamweaver-style functionality, where you see the remote server files, and can double-click on them, they download, and open. You then edit, and when you save, it uploads again. I posted a similar question to the JetBrains forums a few days ago. That was my dominant paradigm before using Php Storm, and I'm surprised it's not possible given how close the functionality is to actually doing it. This would save me a lot of time on an ongoing basis. Thanks!

0

Sure thats possible.

* Turn on automatic uploads
* open the remote host panel
* choose the file you want to edit, right click it and select "download from here"
* edit it then hit refresh in your browser (which will cause the IDE to loose focus so it will auto-upload)

But the thing that this wont have that is the topic of the thread is all the connection knowledge from the rest of the system that is usually scanned and helps with the error checking.

0
Avatar
Permanently deleted user

To rewarm this feature request:
Maybe it would be even enough to (re-)download a file before it is opened. So when I'm editing e.g. a file on one computer, saving it (means saving on the remote server) and then openening the same file on another computer, the file is first downloaded from the remote server and so I "always" have the current file status at least of all open files...

1
Avatar
Permanently deleted user

Damn, a remote file "editor" (without all the nice IDE features) would be very handy. When I upload a Drupal site, the first thing I have to do is make a few small changes to a settings file, I don't want to make them locally because I still need to develop locally. And these usually aren't massive projects that I need version control or project setups for, I just like to do them, make the tweeks needed then forget about them (but have them accessible quickly from my list of ftp accounts if neccessary).

0
Avatar
Permanently deleted user

I agree with this feature request. It would be nice to just edit a file on the remote server. Coda does this quite well.

So if not that, then perhaps an easy alternative.
How about... since PhpStorm already has an the ability to "upload on save", why not have an option to "download on open"?

Or... simply add an option to the File menu to "Download and Open", then the user could create a keyboard shortcut.

0
Avatar
Permanently deleted user

I also vote for the feature.
- Create a warning informing that it's just syntax highligting.
- We need a directory listening
- If we double click a file, download that file and open
- On save upload it

That's it.

Case:

You need to change 4-6 files.
You open FTP with FileZilla, then you open and edit files with Sublime.
At last you return to FileZilla and I click "Upload modified file".
Then you browse in filezilla, open again in Sublime, return to FileZilla ... such a hassle.

Just syntax, maybe with just the HTML automcomplete features. Would completely do the trick.

0
Avatar
Permanently deleted user

Jonathan, welcome to vote for the ticket in the tracker: http://youtrack.jetbrains.com/issue/WI-1398
We have the main discussion there. Thank you in advance!

0
Avatar
Permanently deleted user

Thanks, I didn't knew about that.


0
Avatar
Permanently deleted user
Any news on this important feature for many people? When that's finally been implemented?

Очень нужна блин эта функция 8(
1
Avatar
Permanently deleted user

no news??? 4 years later, the feature is still not here?
PhpEd does it, dreamlweaver does it...
please add this feature!

0
no news???

Heh? Do you really expect someone will be updating few years old forum post with current status?

If anything -- you should have checked actual ticket status (just a 3 posts above yours)

In any case:

0
Avatar
Permanently deleted user

that would not happen if you would not wait so many years to add such obvious feature!!

0
that would not happen if you would not wait so many years to add such obvious feature!!

And .. what it has to do with me? ?:|   I'm not working for JB...

0

If you are on Windows, RDP and running IJ on the server side does work quite good.

0

Actually it's not an issue of editing files directly on a production server, but rather doing development on a staging site. Real world scenario, I work on my Pc (Windows 10), but have a dedicated Dell Poweredge T610 server for development. All my dev sites are setup on the server, using LAMP, and all sites are publicly available for my clients to be able to review or test at their leisure (IP restricted of course). So this is the business requirement and reasoning.

I need to be able to edit files directly on the server, preferably through SCP like when using WinSCP, and definitely not through FTP, although if push comes to shove I would accept that as a solution for file transfer.

So why can this not be achieved or am I barking up the wrong tree? This is a legitimate requirement, that has solid business reasoning behind it. And as the developer, it should be up to me to decide whether I edit files directly on a server, be it staging or production, rather than be limited by the app, surely...?

0

@Michael

1. This IDE is built around "local code first, the rest is just a copy of it" idea.

2. In order for the IDE to offer code completion for your own code / from the libs used in the project, the IDE must index those files (which means download it and analyze). It cannot do it from a remote location. It cannot offer any Refactoring/Replace in Files etc functionality on not accessible files.

Sure, you can have a mapped drive/network path/remote filesystem .. but that will be slow...

3. You can use the IDE to do a quick edits on a remote files: the Remote Edit functionality is available since mid 2015: https://blog.jetbrains.com/phpstorm/2015/04/remote-edit-in-phpstorm-9-eap/

4. If this has to be SCP then you can use your WinSCP and configure it to open files using the IDE.

 

The suggested workflow is:

  1. Make a local copy of the whole project
  2. Setup deployment and especially auto deployment -- once file is saved it will automatically be uploaded to your remote location.
  3. The IDE supports FTP/SFTP/FTPS/locally-accessible-path. From the next 2021.3 version you will be able to use rsync for a faster bulk upload.
  4. https://www.jetbrains.com/help/phpstorm/deploying-applications.html

 

P.S. Projector project and have your IDE running on your actual server but you use it locally?

Also check: https://intellij-support.jetbrains.com/hc/en-us/community/posts/4408736479250-Remote-Development-SSH-Without-Downloading-Files and https://youtrack.jetbrains.com/issue/IDEA-226455

0

Please sign in to leave a comment.