How to Set Up a File Download Server on Ubuntu with Apache

Jobin J
3 min readMay 10, 2024

--

Introduction

In today’s digital age, the need for easy and secure file sharing is more important than ever. Whether you’re sharing documents, media files, or software packages, having a dedicated file download server can streamline the process and improve efficiency. In this guide, we’ll walk you through the step-by-step process of setting up a file download server on Ubuntu using the Apache web server.

Prerequisites

Before we begin, make sure you have the following:

  • Access to an Ubuntu server instance (this can be a physical server or a virtual machine).
  • Basic familiarity with the Linux command line.
  • Administrative privileges to install software and configure system settings.

Step 1: Install Apache

The first step is to install the Apache web server. Open a terminal and run the following command:

sudo apt update
sudo apt install apache2

This will install Apache on your Ubuntu server.

Step 2: Configure Firewall

Next, we need to configure the firewall to allow incoming traffic to the Apache web server. If you’re using UFW (Uncomplicated Firewall), you can allow Apache traffic by running the following command:

sudo ufw allow 'Apache'

This will allow HTTP and HTTPS traffic to reach your Apache server.

Step 3: Create a Directory for Files

Now, let’s create a directory where our files will be stored. You can choose any directory you like, but for this example, we’ll use the default Apache web root directory:

sudo mkdir /var/www/html/downloads

This command creates a new directory named “downloads” inside the Apache web root directory.

Step 4: Upload Files

Upload the files you want to share to the “downloads” directory using your preferred method. You can use SCP, SFTP, or any other file transfer method you’re comfortable with.

For demonstration purposes, let’s create some sample files in the “downloads” directory. You can create sample files using the following command:

sudo touch /var/www/html/downloads/demo.txt

This command creates a new file named “demo.txt” inside the “downloads” directory. You can repeat this step to create multiple sample files if needed.

Step 5: Configure Apache

Next, we need to configure Apache to serve files from the “downloads” directory. Open the Apache configuration file in a text editor:

sudo nano /etc/apache2/sites-available/000-default.conf

Inside the <VirtualHost> block, add the following lines:

<Directory /var/www/html/downloads>
Options +Indexes
AllowOverride None
Require all granted
</Directory>

Save the file and exit the text editor.

Step 6: Restart Apache

To apply the changes we’ve made to the Apache configuration, restart the Apache web server:

sudo systemctl restart apache2

Step 7: Access Files

You can now access the files hosted on your Ubuntu server by navigating to the following URL in your web browser:

http://your_server_ip/downloads

Replace “your_server_ip” with the IP address of your Ubuntu server. You should see a list of files available for download.

Conclusion

Setting up a file download server on Ubuntu with Apache is a straightforward process that can greatly simplify the file sharing process. By following the steps outlined in this guide, you can create a efficient platform for sharing files with colleagues, clients, or friends.

(NOTE : While the setup described provides a basic level of file sharing functionality, it may not be considered fully secure for all use cases.)

Happy file sharing!

--

--