Creating a Remote Server Configuration
To configure access to the server in this setup, you need to specify the following:
Connection settings: server host, port, and user credentials.
The server configuration root folder and the URL address to access it.
Correspondence between the project root folder, the folder on the server to copy the data from the project root folder to, and the URL address to access the copied data on the server. This correspondence is called mapping.
Specify the name, type, and visibility of a server configuration
Open the Deployment page by doing one of the following:
In the left-hand pane that lists all the existing server configurations, click Add and select the server configuration type depending on the protocol you are going to use to exchange the data with the server.
FTP: choose this option to have PhpStorm access the server via the FTP file transfer protocol.
SFTP: choose this option to have PhpStorm access the server via the SFTP file transfer protocol.
FTPS: choose this option to have PhpStorm access the server via the FTP file transfer protocol over SSL (the FTPS extension).
Click the Use as Default to have PhpStorm silently apply the current configuration in the following cases:
Select the checkbox to restrict the use of the configuration to the current project. Such configuration cannot be reused outside the current project. It does not appear in the list of available configurations in other projects. For example, if this checkbox is selected in an SFTP configuration, you cannot use its SSH credentials for configuring a remote interpreter.
Specify user credentials defined during registration on the host
Specify the registration mode:
To login in a regular mode, specify the login in the User name field.
To enable anonymous access to the server with your email address as password, select the Login as anonymous checkbox.
Specify the way to authenticate to the server:
For FTP server, type your password and select the Save password checkbox to have PhpStorm remember it.
For SFTP server, choose the way to authenticate to the server. Do one of the following:
Password: to access the host with a password. Specify the password, and select the Save password checkbox to save the password in PhpStorm.
Key pair (OpenSSH or PuTTY): to use SSH authentication with a key pair. To apply this authentication method, you must have a private key on the client machine and a public key on the remote server. PhpStorm supports private keys that are generated with the OpenSSH utility.
Specify the path to the file where your private key is stored and type the passphrase (if any) in the corresponding fields. To have PhpStorm remember the passphrase, select the Save passphrase checkbox.
See the Generating a new SSH key and adding it to the ssh-agent tutorial for details on working with SSH keys.
For FTPS server, specify your username and password. In the Advanced settings area, choose the security mechanism to apply.
Choose Explicit to have the explicit (active) security applied. Immediately after establishing connection, the FTP client on your machine sends a command to the server to establish secure control connection through the default FTP port.
This method is selected by default.
Choose Implicit to have the implicit (passive) security applied. In this case, security is provided automatically upon establishing connection to the server which appoints a separate port for secure connections.
Note that this method is considered deprecated, and using it is discouraged.
Enable connection to the server and specifying the server configuration root
Specify the host name of the FTP/SFTP/FTPS server to exchange data with and the port at which this server listens.
The default values are:
21 for FTP and FTPS
22 for SFTP
In the Root path field, specify the server configuration root relative to the root folder on the server. This folder will be the highest one in the folder structure accessible through the current server configuration.
Do one of the following:
Accept the default / path, which points at the root folder on the server.
Type the path manually.
Click and select the desired folder in the Choose Root Path dialog that opens.
Click the Autodetect button and have PhpStorm detect the user home folder settings on the FTP/SFTP server and set up the root path according to them. The button is only enabled when you have specified your credentials.
In the Web server URL field, type the URL address to access the server configuration root. The server configuration root is the highest folder in the file tree on the local or remote server accessible through the server configuration. For in-place servers, it is the project root.
Both the HTTP and the HTTPS protocols are supported.
Click in the field to make sure that the specified server root URL address is accessible and points at the correct Web page.
Map local folders to folders on the server and the URL addresses to access them
Configure mappings, that is, set correspondence between the project folders, the folders on the server to copy project files to, and the URL addresses to access the copied data on the server. The easiest way is to map the entire project root folder to a folder on the server. The project folder structure in this case will be repeated on the server, provided that you have selected the Create Empty directories checkbox in the Options dialog. For more details, see Configuring Synchronization with a Web Server and Customizing Upload/Download.
Switch to the Mappings tab.
In the Deployment Path field, specify the folder on the server where PhpStorm will upload the data from the folder specified in the Local Path field. Type the path to the folder relative to the server configuration root.
If the folder with the specified name does not exist yet, PhpStorm will create it, provided that you have selected the Create Empty directories checkbox in the Options dialog. For more details, see Customizing Upload/Download.
Overloading the deployment destination by configuring nested mappings
You can configure separate mappings for a specific folder under your project root to have the contents of this folder synchronized with another location on the remote host.
Suppose you have configured the mappings as follows: