<p>The actual web root name doesn’t matter. Usually it’s “public_html” or something similar, and Craft’s “public” folder is only meant to <em>represent</em> that folder.</p>

<p>There are no references to the public/public_html folder within Craft itself; it’s the other way around: The index.php file within public/public_html is the one referencing Craft, via its <code>$craftPath</code> variable.</p>

<p>So here’s what you need to do:</p>

<ol>
<li><p>Upload the craft/ folder to your web server, ideally on the same level as your public_html/ folder rather than inside it, but if you don’t have permission to do that, inside public_html/ is OK.</p></li>
<li><p>Upload the public/index.php file into your public_html/ folder</p></li>
<li><p>Upload the public/htaccess file into your public_html/ folder and rename it to .htaccess</p></li>
<li><p>Open up public_html/index.php and make sure the <code>$craftPath</code> variable is a valid path to the craft/ folder, wherever it is.</p></li>
</ol>

CC BY-SA 3.0
2014-08-20T13:48:00.053Z
I did the first two steps and the website seems like this http://efcgroup-demo.co.uk/ but as soon as I copy .htaccess file it says "Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log."
Jai
CC BY-SA 3.0
2014-08-20T13:52:57.353Z
There must be something in your .htaccess file that is causing that error. The one that Craft ships with only has the code we’ve published [here](http://buildwithcraft.com/help/remove-index.php), which is pretty defensive.
Brandon Kelly
CC BY-SA 3.0
2014-08-20T14:13:45.423Z
Thanks Brandon. It looks like it was a problem with .htaccess file and managed to sort it with this link https://github.com/h5bp/html5-boilerplate/issues/1012
Jai
CC BY-SA 3.0
2014-08-20T15:24:31.617Z
Glad you got it sorted!
Brandon Kelly
CC BY-SA 3.0
2014-08-20T12:22:41.967Z
2014-08-20T12:22:41.967Z
Brandon Kelly
<p>All, we have a website built by third party company and they gave us the pack which includes cms, craft and MySQL database. But our hosting server is hardcoded to run the website from public_html folder (can't change this). Could you tell me how can change cms references to public_html? Tried to copy everything under cms folder to public_html only to see misconfiguration errors. Let me know if you need more info. </p>

CC BY-SA 3.0
2014-08-20T11:35:18.393Z
The craft directory should be above public_html if possible, otherwise it needs changing in the config.
Shane Hudson
<error-message>
change the root directory references
# change the root directory references

(Asked by: username_0 on 2014-08-20)

All, we have a website built by third party company and they gave us the pack which includes cms, craft and MySQL database. But our hosting server is hardcoded to run the website from public\_html folder (can't change this). Could you tell me how can change cms references to public\_html? Tried to copy everything under cms folder to public\_html only to see misconfiguration errors. Let me know if you need more info.

**Tags:** error-message

> **Comments:**
> **username_1**: The craft directory should be above public_html if possible, otherwise it needs changing in the config.  

---

## 1 answers

### Answer by username_2 on 2014-08-20. Score: 6

The actual web root name doesn’t matter. Usually it’s “public\_html” or something similar, and Craft’s “public” folder is only meant to *represent* that folder.

There are no references to the public/public\_html folder within Craft itself; it’s the other way around: The index.php file within public/public\_html is the one referencing Craft, via its `$craftPath` variable.

So here’s what you need to do:

1. Upload the craft/ folder to your web server, ideally on the same level as your public\_html/ folder rather than inside it, but if you don’t have permission to do that, inside public\_html/ is OK.
2. Upload the public/index.php file into your public\_html/ folder
3. Upload the public/htaccess file into your public\_html/ folder and rename it to .htaccess
4. Open up public\_html/index.php and make sure the `$craftPath` variable is a valid path to the craft/ folder, wherever it is.

> **Comments:**
> **username_0**: I did the first two steps and the website seems like this http://efcgroup-demo.co.uk/ but as soon as I copy .htaccess file it says "Internal Server Error  The server encountered an internal error or misconfiguration and was unable to complete your request.  Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.  More information about this error may be available in the server error log."  
> **username_2**: There must be something in your .htaccess file that is causing that error. The one that Craft ships with only has the code we’ve published [here](http://buildwithcraft.com/help/remove-index.php), which is pretty defensive.  
> **username_0**: Thanks Brandon. It looks like it was a problem with .htaccess file and managed to sort it with this link https://github.com/h5bp/html5-boilerplate/issues/1012  
> **username_2**: Glad you got it sorted!  

---

