<p>Generally, you can make the Craft <code>public</code> folder whatever you want it to be. That allows you to deploy to any folder you like.</p>

<p>For example, I deploy to a <code>public_html</code> on one server, <code>public</code> on another and <code>web</code> on another server. Each of those directories are the web root of their respective site.</p>

<p>The only thing(s) within the <code>public</code> (or whatever you call it) directory is/are the index.php file (and whatever other js/css etc type files) you may have. As long as you can tell that file where the <code>craft</code> directory is (usually one level above the web root) - you should be golden!</p>

CC BY-SA 3.0
2015-08-10T14:06:19.740Z
2015-08-11T02:11:33.710Z
2015-08-11T02:11:33.710Z
Damon
<p>I have a website setup in Craft multi-environment config for git workflow with a development branch automatically deploying via deploybot from a bitbucket repository.   I want to add an additional live server for manual deployment via deploybot, but I'm concerned about the folder structure.  I know the <code>public</code> folder in Craft is just a stand in for <code>web_root</code>, but if I allow git to deploy to the server root, won't it try to make a new <code>public</code> folder by default?</p>

<p>Staging setup
<code>/home/user/public_html/staging/public/index.php</code></p>

<p>Live site 
<code>/home/user/public_html/index.php</code> instead of 
<code>/home/user/public/index.php</code></p>

<p>I have seen where I can add a symlink to point one folder to another, but I don't think I can point <code>public_html</code> to a new public folder as I have other subdomains stored in <code>public_html</code>.   Should I just rename <code>public</code> in my Craft files to <code>public_html</code> in the local and staging files, or can I symlink <code>public</code> to <code>public_html</code> without abandoning my existing files?</p>

<multi-environment>
public vs public_html for git workflow deployment in apache?
# public vs public_html for git workflow deployment in apache?

(Asked by: username_0 on 2015-08-10)

I have a website setup in Craft multi-environment config for git workflow with a development branch automatically deploying via deploybot from a bitbucket repository. I want to add an additional live server for manual deployment via deploybot, but I'm concerned about the folder structure. I know the `public` folder in Craft is just a stand in for `web_root`, but if I allow git to deploy to the server root, won't it try to make a new `public` folder by default?

Staging setup
`/home/user/public_html/staging/public/index.php`

Live site
`/home/user/public_html/index.php` instead of
`/home/user/public/index.php`

I have seen where I can add a symlink to point one folder to another, but I don't think I can point `public_html` to a new public folder as I have other subdomains stored in `public_html`. Should I just rename `public` in my Craft files to `public_html` in the local and staging files, or can I symlink `public` to `public_html` without abandoning my existing files?

**Tags:** multi-environment


---

## 1 answers

### Answer by username_1 on 2015-08-10. Score: 3 | Accepted answer

Generally, you can make the Craft `public` folder whatever you want it to be. That allows you to deploy to any folder you like.

For example, I deploy to a `public_html` on one server, `public` on another and `web` on another server. Each of those directories are the web root of their respective site.

The only thing(s) within the `public` (or whatever you call it) directory is/are the index.php file (and whatever other js/css etc type files) you may have. As long as you can tell that file where the `craft` directory is (usually one level above the web root) - you should be golden!


---

