Announcement: You can find the guides for Commerce 7.5 and later on the new Elastic Path Documentation site. This Developer Center contains the guides for Commerce 6.13.0 through 7.4.1.Visit new site

This version of Elastic Path Commerce is no longer supported or maintained. To upgrade to the latest version, contact your Elastic Path representative.

Setting up an FTP Server

Setting up an FTP Server

This section explains how to set up an FTP server on the Commerce Manager Server to handle files uploaded from the Commerce Manager, such as product images and CSV import files.

If you do not already have an FTP server installed on the server where the Commerce Server web application is deployed, you must install one. There are many FTP server software packages available. On Linux, you can use ProFTPd or vsftpd. On Windows, you can use CrossFTP.

Note: FTP May Fail to Connect

At the time this document was written, a bug existed for Java based clients running on Windows 7 machines that restricted clients from making FTP connections. Windows has a hotfix for this issue, which is located here: http://support.microsoft.com/kb/2754804

Configuring the FTP server

  1. Create an FTP user for the Commerce Manager to use.
  2. Set the FTP user's home directory to the assets directory, which is specified in the COMMERCE/SYSTEM/ASSETS/assetLocation setting in Commerce Manager.
  3. Verify that the FTP user has read/write permissions on the assets directory and its subdirectories.

Configuring the VFS settings in Commerce Manager

The Commerce Manager client uses the VFS setting values in the database to establish a connection to the FTP server. Log in to the Commerce Manager and modify the following settings:

Setting Description

COMMERCE/APPSPECIFIC/RCP/ASSETS/vfsHost

The hostname of the FTP server

COMMERCE/APPSPECIFIC/RCP/ASSETS/vfsPassword

The password of the user on the FTP server

COMMERCE/APPSPECIFIC/RCP/ASSETS/vfsPort

The port of the FTP server (default is 21)

COMMERCE/APPSPECIFIC/RCP/ASSETS/vfsProtocol

The protocol to use for connecting to the FTP server (default is ftp)

Note:

In production, only ftp is supported. For development, you can use other protocols supported by Apache Commons VFS, such as sftp or file.

COMMERCE/APPSPECIFIC/RCP/ASSETS/vfsRootpath

The directory on the FTP server where assets are uploaded. Generally, this should be the same as the assets directory specified in the COMMERCE/SYSTEM/ASSETS/assetLocation setting in Commerce Manager.

Note:

Some FTP servers, such as vsftpd, require that this directory be relative to the default directory on login. For example, if the default directory for the user testadmin is /home/testadmin and the assets directory is /home/testadmin/ep/assets, set the vfsRootpath to ep/assets.

COMMERCE/APPSPECIFIC/RCP/ASSETS/vfsUsername

The FTP user account

Note:
  • Changes to the VFS settings only take effect after the Commerce Manager is restarted.
  • If you are running the Commerce Manager client on the same machine as the Commerce Server web application, when choosing a CSV for an import job, make sure that the CSV file is not located in the directory specified by COMMERCE/APPSPECIFIC/ASSETS/vfsRootpath. The import will fail due to a write conflict because the Commerce Manager server is attempting to save the uploaded file in the directory that already contains it.

Using SFTP

You can also use SFTP, however some settings may require modification depending on the versions of sshd and vsftp. For vsftp 2.0.4 and sshd 4.2, COMMERCE/APPSPECIFIC/RCP/ASSETS/vsfRootPath must be set to the full (absolute) path of the assets directory from the root of the file system. Unlike FTP, it does not resolve paths relative to the user's home directory.

Alternatively, if you are using sshd 5 or later, you can automatically change users to their home directories on login with a configuration similar ot the following:

Subsystem sftp internal-sftp
Match group sftponly
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp