Uploading Files to Your Virtual Server

 

One of the most basic tasks you will need to perform as a Virtual Server Administrator is uploading files to your website. In most cases you will upload your content using File Transfer Protocol or FTP. You can alternatively upload content using a web content publisher.

Many web content authoring programs include built-in web publishing capability. In some cases this involves installing proprietary extensions on the Virtual Server (a la Microsoft FrontPage), other packages use the HTTP "PUT" method, but more commonly publishers will provide support for simple FTP. It is not necessary, however, to rely on your web content authoring program to publish to your site. You can compose your web content using any program and then FTP the content to your Virtual Server manually.

This page discusses the general information you will need to know to FTP content to your Virtual Server. More detailed steps are given to use several sepecific FTP clients. And, uploading content via other methods is also presented. The sections on the page are show below:

General Instructions for using an FTP Client
Using an FTP client to upload content to your Virtual Server is a very simple process. The following guidelines provide a general overview of uploading files to your Virtual Server.

  1. You will need an ftp client for your local machine. You can find many free and useful clients on the Internet. Search for "FTP client" in your favorite search engine- you will likely be overwhelmed by the amount of FTP clients available.

    If you use Windows, we have found WS_FTP to be very useful. For the Macintosh OS, Fetch is the most popular (and friendliest) FTP client available. Detailed FTP instructions for both of these popular FTP clients is given below.

  2. Connect to your Virtual Server via FTP using your login id and your login password that you received from Nihil Ultra. Do not login as anonymous, as you will not have access to the directories and files you need.
  3. When you login to your Virtual Server, you will be placed in your home directory (/usr/home/login_id). This is the same directory you find yourself in when you telnet to your Virtual Server.
  4. All html documents and graphics should be uploaded to the usr/local/etc/httpd/htdocs directory. Here you will find a file titled "index.html" - this is the default page that is displayed when you access your web site with a browser. You may upload your html documents and graphics to the usr/local/etc/httpd/htdocs directory, or into any subdirectory under the htdocs directory.

    If you transfer a file named test.htm to your htdocs directory, you can access that file using the following URL - http://www.your-domain.name/test.htm. If you make a subdirectory titled "documents" in your htdocs directory, and then transfer a file called info.html to that directory, it can then be accessed by the URL - http://www.your-domain.name/documents/info.html

    NOTE: If you do not want to use the filename "index.html" as your your default page you can do one of three things:

    1. upload your home page file (e.g. default.htm) into the htdocs directory, and then rename it to "index.html"
    2. establish a symbolic link to the file you uploaded to the htdocs directory (e.g. default.htm) by typing the following command:
         ln -s default.htm index.html  
    3. change the DirectoryIndex definition in the ~/www/conf/httpd.conf file on your Virtual Server (or the ~/www/conf/srm.conf file, if you Virtual Server was configured before Dec. 8, 1998) from index.html to the new name (e.g. default.htm).
  5. IMPORTANT: Be sure you ftp all your HTML files, as well as any text files such as cgi script source code in ASCII format! All your image files need to be tranferred in BINARY format. Your FTP program should allow you to select the file transfer mode, either ASCII or BINARY. Most FTP clients have an "Automatic" transfer mode option that can be set - when this option is selected the FTP client will automatically determine which file transfer mode to use when you upload or download files.

Uploading Files Using WS_FTP (MS Windows)
If you are using MS Windows,
WS_FTP is an extremely friendly, intuitive and easy-to-use client. Specific instructions about how to use WS_FTP are included below:

  1. Establish a connection to your Virtual Server by selecting the "Connect" button. Specify your company name as the "Profile Name", your domain name (or temporary domain name if your domain name has not yet been registered) as the "Host Name/Address", your login name as the "User ID", and your login password as the "Password".
  2. Once a connection is established, two columns will appear on your screen. The column on the left displays files on your computer while the column on the right represents directories and files on your Virtual Server.
  3. You will want to navigate to the "www/htdocs" or "usr/local/etc/httpd/htdocs" folder on your Virtual Server (the right side of the dialog). This is the directory where you will store your web content.
  4. Select the appropriate files or directories that you want to transfer from your computer (the left side) to your Virtual Server (the right side) by selecting them with your mouse. You can select more than one by holding down the shift key.
  5. Once these files are selected you simply hit the arrow "-->" pointing toward the right or toward the Virtual Server directory window. Be sure that all HTML documents and cgi script are transferred in ASCII mode. Graphics should be transferred in Binary format. The latest versions of WS_FTP provide an "Auto" toggle button you can select- WS_FTP will then automatically determine which mode to transfer the file (we recommend you use the "Auto" mode).

Uploading Files Using Fetch (Macintosh)
If you are using a Macintosh,
Fetch is probably the most popular FTP program available and is quite easy to use. Specific instructions about how to use Fetch are included below:

  1. Establish a connection to your Virtual Server by selecting the "New Connection" button under the "File" menu. Specify your domain name (or temporary domain name if your domain name has not yet been registered) as the "Host", your login name as the "User ID", and your login password as the "Password".
  2. You will want to navigate to the "www/htdocs" or "usr/local/etc/httpd/htdocs" folder on your Virtual Server. This is the directory where you will store your web content.
  3. To upload content to your Virtual server you can either drag files and folders from your desktop to the Fetch window or select the "Put File..." button and select files and folders.
  4. Be sure that all HTML documents and cgi script are transferred in ASCII mode. Graphics should be transferred in Binary format. Fetch also has a setting, "Automatic", that you can select- Fetch will then automatically determine which mode to transfer the file (we recommend you use the "Automatic" mode).

Using a Console FTP Client
Most operating systems (UNIX, NT, Windows 95) are shipped with a built-in FTP client that is accessed from a "console window". Many people don't use a console FTP client partly because they don't know one exists and partly because console FTP clients have a steeper learning curve. One you use, learn, and master a console FTP client you will very likely never use a graphical FTP client again. (It sounds crazy, but it's true for many people).

To use a console FTP client you will first need access to a "command prompt". This can be gained by opening a console window. You can do this in Windows 95/NT by looking in your "Start->Program" menu for "MS-DOS prompt" or "Command Prompt". You can also "Run" the command prompt executable by selecting "Start->Run" and entering the executable path "c:/windows/command/command.com" or "c:/winnt/system32/cmd.exe" (as the case may be).

Most UNIX environments use console windows and command prompts quite extensively and UNIX users are already comfortable using them (or should be). When you Telnet or SSH to your Virtual Server you are effectively open a command prompt remotely on your Virtual Server. So you can, in effect, use FTP from a command prompt on your Virtual Server to download a file from another remote host directly to your Virtual Server. For example, you may want to download software from XYZ, Inc. (ftp.xyz.com) and install the software on your Virtual Server. Instead of downloading the software from XYZ, Inc. to your office computer and then uploading it from your office computer to your Virtual Server (which can be quite slow on a 28.8), you can telnet to your Virtual Server and FTP the software from XYZ, Inc. directly to your Virtual Server (using high speed DS3's).

Now that you understand console windows and command prompts (or more specifically how to gain access to one), you need to understand how to use a console FTP client. To open up an FTP session at a command prompt simply type "ftp [remote host]", where [remote host] is the site you are attempting to contact (i.e. ftp.xyz.com). This is where is gets fun because you know can see what's going on "behind the scenes" when you were using a graphical FTP client.

When you open an FTP session with a remote host, you will more than likely be prompted for a username and password pair (sounds logical enough). After you have successfully logged into the remote ftp site, you can navigate around using the "cd" command to change your current working directory on the remote site. Type "ls" or "dir" to list the files in your current working directory on the remote site.

To upload from your local machine (or the machine from which you initiated the FTP session) to the remote host, you use the command "put". For example, to upload a file in your local working directory named "index.html" to your current working directory on the remote site, you would type "put index.html test.html". This will transfer the file "index.html" to the remote host and store it under the name "test.html". If you would like to store the local file as the same name on the remote host simply type something like "put index.html index.html" or simply "put index.html". To upload multiple files, use the command "mput" using wildcards such as "mput *.html". You may want to turn off the confirm prompt by typing the command "prompt" before you upload multiple files.

To download content from a remote host (or the machine to which you opened the FTP session) to your local machine, you use the command "get". For example, to download a file to your local working directory named "test.html" from your current working directory on the remote site, you would type "get test.html index.html". This will transfer the file "test.html" from the remote host and store it under the name "index.html" on your local computer. To download multiple files, use the command "mget" using wildcards such as "mget *.html". You may want to turn off the confirm prompt by typing the command "prompt" before you download multiple files.

As was mentioned in the General Instructions section, it is important to upload and download ascii text files such as HTML content in ASCII mode. Likewise, binary content such as gif/jpg images should be uploaded and downloaded in BINARY mode. To change your upload mode to ASCII simply type "ascii". To change your upload mode to BINARY simply type "binary". Other important FTP commands are summarized in the table below. Arguments for commands are indicated using brackets [ ]:

ascii Set the file transfer type to network ASCII.
binary Set the file transfer type to support binary image transfer.
bye
quit
Terminate the FTP session with the remote server and exit ftp. An end of file will also terminate the session and exit.
cd [remote-directory]
Change the working directory on the remote machine to remote-directory.
delete [remote-file]
Delete the file remote-file on the remote machine.
dir
ls
[remote-directory]
Print a listing of the directory contents in the directory, remote-directory. If no remote directory is specified, a listing of the current working directory on the remote machine is shown.
get [remote-file] [local-file]
Retrieve the remote-file and store it on the local machine. If the local file name is not specified, it is given the same name it has on the remote machine.
help [command]
Print an informative message about the meaning of command. If no argument is given, ftp prints a list of the known commands.
lcd [local-directory]
Change the working directory on the local machine. If no directory is specified, the user's current local working directory is displayed.
mdelete [remote-files]
Delete the remote-files on the remote machine.
mget [remote-files]
Expand the remote-files on the remote machine and do a get for each file name thus produced.
mkdir [remote-directory]
Make a directory on the remote machine.
mput [local-files]
Expand wild cards in the list of local files given as argu- ments and do a put for each file in the resulting list.
prompt Toggle interactive prompting. Interactive prompting occurs during multiple file transfers to allow the user to selec- tively retrieve or store files. If prompting is turned off (default is on), any mget or mput will transfer all files, and any mdelete will delete all files.
put [local-file] [remote-file]
Store a local file on the remote machine. If remote-file is left unspecified, the local file name is used.
rename [from] [to]
Rename the file from on the remote machine, to the file to.
rmdir [directory-name]
Delete a directory on the remote machine.