# Getting files onto a shared host

> How your files reach the server, where they have to live, what permissions they need, and the limit that bites before storage ever does.

Source: https://cwp.sg/tutorials/files/  
Author: Ben Johnson  
Last verified: 2026-09-21

**In short:** - You upload files over FTP, or through the file manager in your hosting panel. - Your site's files must live in the public folder, usually called public_html. - Files should be 644 and folders 755. Never use 777. - The limit you hit first is the file count, not the megabytes. - Use FTP over TLS, not plain FTP, so your password is not sent in the clear.

Everything on your website is a file the server sends to visitors. Getting those
files onto the server, into the right place, with the right permissions, is one
of the first things you do and one of the most common places to get stuck. This
page is the map of the whole job.

There are only a few moving parts: how the files get there, where they must live,
what permissions they carry, and the limits you are working inside. Get those
four right and uploading stops being mysterious.

## How files get onto the server

There are two ways. The first is FTP, using a program on your computer that
connects to the server and copies files across. The second is the file manager
built into your hosting panel, which works in the browser with no software to
install.

Use whichever suits the job. The file manager is quick for a single change. FTP
is better for uploading a whole site at once. Either way, use the secure version
of FTP, over TLS, so your username and password are encrypted on the way. Plain
FTP sends them readable, and on a shared server that is a real risk. The full
setup is in [upload a site with FTP](/tutorials/upload-a-site-with-ftp/).

## Where your files have to live

The server only shows the world one folder, and everything outside it is
invisible to visitors. That folder is usually called `public_html`, sometimes
`htdocs` or `www`. Your home page has to be inside it, named `index.html` or
`index.php`, or the site shows a blank page or the host's placeholder.

This trips people up constantly: they upload their site to the account's top
level, one folder above `public_html`, and nothing appears. The files are there.
They are just in the one place the server will not serve. If a fresh upload shows
nothing, this is the first thing to check.

There is one more place files can hide. If you upload a folder and then browse to
its address, the server looks inside for a home page. No `index` file, and you get
either a blank page or, if the host allows it, a bare list of your files for the
whole world to read. Naming the home page correctly is what turns a folder of
files into a working page.

## What permissions files need

Every file carries permissions that say who may read, write, or run it. For a
normal website the answer is fixed: files are `644`, folders are `755`. That is
all you need, and it is the same on every shared host.

The number you must never use is `777`, which lets anyone on the server write to
your files. Shared hosts block scripts with `777` permissions outright, and it is
a genuine security hole. The full explanation, and how to fix permissions that
are wrong, is in [file permissions](/tutorials/file-permissions/). Permissions
set too low show up as a [403 Forbidden](/errors/403-forbidden/) error, because
the server is not allowed to read the file it is meant to serve.

## The limit that bites first

People assume they will run out of storage. They almost never do. What they run
out of is the number of files, called inodes. A free plan might allow tens of
thousands of them, which sounds like plenty until a single content system with
its caches and backups uses most of them on its own.

This matters because the file count fills up quietly. Your disk usage looks fine,
and then new uploads start failing for no obvious reason. Knowing the real limit
is an inode count, not a megabyte count, saves you an afternoon of confusion.

## Getting it all onto the host, in order

If you are putting a site online for the first time:

1. Connect over FTP with TLS, or open the file manager.
2. Upload your site into `public_html`, not above it.
3. Make sure the home page is `index.html` or `index.php`.
4. Confirm files are `644` and folders are `755`.
5. If nothing loads, check the folder and the file name before anything else.

That is the entire job. Each step is a linked how-to, and the two that catch most
people are the folder in step two and the home-page name in step three.

---

Content Website Platform (cwp.sg) operates the free hosting it writes about; see https://cwp.sg/about/ for the methodology and the commercial disclosure.
