Do you want to host a website yourself for free? There are plenty of web hosting companies to choose from, and some offer free hosting. However, free hosting services tend to have a lot of limitations, such as limited storage space, bandwidth, downtime, and lack of features. One way to get around this is to host your own website on your computer for free. You can do so using a free program called MAMP on Windows and Mac , or LAMP on Linux . MAMP and LAMP will create a local server on your computer that you can use to host your own website. This wikiHow article teaches you how to host your own website locally for free.
Things You Should Know
- You can download and install MAMP to host a website for free on Windows and Mac .
- You can install LAMP to host a website server on Linux . On Linux, you will need to install Apache, MySQL, and PHP separately using the Terminal.
- There are also free web hosting services on the internet, although free web hosting has limitations.
Steps
Preparing to Host a Website
-
Make sure your internet service contract allows hosting. Many internet service providers (ISPs) expressly forbid personal hosting unless you have a business plan, which often costs significantly more than a standard use plan. This shouldn't be an issue if your site only generates a few hits per month, but any kind of significant traffic will draw attention to your hosting.
- If your ISP prohibits home hosting, either upgrade your plan to one that allows hosting or switch to a different ISP before you continue.
- Failing to heed your ISP's policy for home hosting can result in anything from getting your internet turned off to having to pay fines.
-
Ensure that your equipment can handle hosting. In order to host a website, you must have a computer on and connected to the Internet 24 hours per day, seven days per week. This is easier to accomplish with a secondary, older computer than it is with your primary computer.
- Restarting your computer to update will occasionally be necessary. During these updates, your website will be inaccessible.
Advertisement -
Update your computer. Ensure your computer is up-to-date with the latest operating system, security features, and drivers. Make sure you update Windows , macOS , or your Linux system before continuing.
- Also make sure you have a decent antivirus program , and firewall to protect your computer. You'll need to make sure port 80 is open behind your Firewall .
-
Move your website's source code onto your computer. This includes your HTML, CSS, and PHP files. You'll also need to move any media files, such as pictures and videos to your computer. If your website's source code isn't already in a file on your computer, copy it from your web service's settings into a text document on your computer and save it as a PHP or HTML file.
- If the website's source code is stored on your computer, make sure you know where to find it.
- If you haven't yet programmed your website , you'll need to do so before continuing.
- The main webpage for your website should be saved as "index.html" or "index.php."
Setting up Hosting on Windows
-
Download MAMP for Windows. MAMP is a free website hosting application that works on both Windows and Mac machines. Use the following steps to download MAMP:
- Go to https://www.mamp.info/en/ .
- Click Free Download
- Click the MAMP & MAMP PRO button below the Windows icon.
- Wait for the installation file to finish downloading.
-
Double-click the MAMP setup file. It looks like a white elephant on a grey background. By default, your downloaded files can be found in your Downloads folder.
- If prompted, click Yes on the Windows control access pop-up window.
-
Complete the setup process. Use the following steps to do so:
- Click Next on the Welcome page.
- Uncheck the "MAMP PRO" box and click Next
- Check "I accept the agreement" and click Next
- Select an install location and click Next
- Select a Start menu location and Next .
- Check or uncheck "Create a desktop shortcut" and click Next .
- Review the installation and Start menu location and click Install .
-
Copy your website's source code document. While MAMP is installing, find the document on your computer that you pasted the website's source code into earlier. To do so:
- Press Windows Key + E to open File Explorer.
- Open the Document's folder.
- Select the document by clicking it.
- Press Ctrl + C to copy it.
-
Double-click the MAMP icon. It resembles a white elephant on a grey background.
- Make sure you aren't clicking the setup icon here.
- If you see a warning about port 80 appear; click Cancel on the warning window to dismiss it.
- If Windows Defender asks if you want to allow access to MAMP, click Allow Access .
-
Click MAMP . It's the first option in the menu bar at the top.
-
Click Preferences… . This gear-shaped icon is on the left side of the MAMP window. Doing so opens the Preferences window.
-
Click the Ports tab. It's at the top of the Preferences window.
-
Click MAMP default . It's at the bottom of the page next to "Set Web and MySQL ports to:"
-
Click the Server tab. It's at the top of the Preferences window.
-
Click Open . This button is near the bottom of the window.
-
Press Ctrl + V to paste your source code documents. The source code document will appear in the MAMP root folder. This is the location where you can store your website files.
-
Click OK on the MAMP window. This will save your settings.
-
Close and re-open MAMP. To do so, click the MAMP button and then click Exit . Then double-click the MAMP icon to restart it.
-
Click Start Servers if needed. If MAMP's servers don't start automatically, click Start Servers . It's on the right side of the MAMP window. Doing so will start the MAMP server with your website's source code and port preferences. Your website should now be live; people will be able to access it by entering your public IP address into a search engine. You can also add a domain name to make your website easier to access.
- Unless you pay for a static IP service, your local IP address—and, by extension, your website's address—will change from time to time.
- You cannot use your local IP address to view the website from your own network, since entering it will just take you to your router's page.
Setting up Hosting on Mac
-
Find out if your Mac has an Intel processor or an Apple Silicon processor. In order to download the correct version of MAMP, you will need to know what type of processor your Mac has. You can find out what your Mac model is by clicking the Apple icon and clicking About this Mac . Most older Mac models have Intel processors. The following Mac models have Apple Silicon chips: [1] X Research source
- MacBook Pro (2021 or later).
- MacBook Pro (13-inch, M1, 2020 later).
- MacBook Air (2022 or later).
- MacBook Air (M1, 2020 or later).
- iMac (2021 or later).
- Mac mini (2020 or later).
- Mac Studio (2022 or later).
- Mac Pro (2023 or later).
-
Download MAMP for macOS. MAMP is a free website hosting application that works on both Windows and Mac machines. To download MAMP:
- Go to https://www.mamp.info/en/ .
- Click Free Download
- Click the MAMP & MAMP PRO (Intel) if you have an Intel processor. Click MAMP & MAMP PRO (Apple) if you have an Apple Silicon processor.
- Wait for the file to finish downloading.
-
Double-click the MAMP setup file. It is a ".pkg" file with an icon that resembles a brown box.
- If you receive a warning message that says the file can't be opened, verify the download before continuing.
-
Complete the MAMP installation process. Use the following steps to do so:
- Click Continue on the introduction page.
- Click Continue on the "Read Me" page.
- Click Continue on the License agreement page.
- Click Agree .
- Click Install .
- Enter your Mac's username and password, then click Install Software .
-
Wait for MAMP to finish installing. This process will likely take around five minutes.
- Click Ok on any prompts the installer requests access to.
-
Open Finder. It's the icon that resembles a blue and white smiley face. It's in the dock at the bottom of the screen.
-
Go to your website's source code documents. Click the folder in which the source code document that you copied or created earlier is located.
- You may have to click through several folders to get to the document, depending on where you saved it.
-
Copy the documents. Hold Shift and click the documents and folders to select them, then click Edit and click Copy .
-
Open MAMP. Click the MAMP icon, which resembles a white elephant on a grey background. You can find it in the Applications folder.
- If you can't find MAMP, click the magnifying glass icon in the upper-right corner and type "MAMP" in the search bar.
-
Click Preferences… . This gear-shaped icon is on the far-left side of the MAMP window.
- If you receive an error window, first click OK to exit the window.
-
Click the Ports tab. It's at the top of the Preferences window.
-
Click the MAMP default button. You'll find this at the bottom of the page next to "Set Web and MySQL ports to:"
-
Click the Server tab. It's the third tab at the top of the page.
-
Click Open in Finder . This will open the server location in Finder.
-
Press ⌘ Command + V to paste your source code document. This folder will be the location of your website and all of its files.
-
Click OK . It's at the bottom of the page. This saves your settings.
-
Close and re-open MAMP. To do so, click MAMP in the menu bar at the top and then click Quit MAMP .
-
Click Start . It's on the right side of the MAMP window. Doing so will start the MAMP server with your website's source code and port preferences. Your website should now be live; people will be able to access it by entering your public IP address into a search engine. You can also add a domain name to make your website easier to access.
- Unless you pay for a dynamic IP service, your local IP address—and, by extension, your website's address—will change from time to time.
- You cannot use your local IP address to view the website from your own network, since entering it will just take you to your router's page.
Using Linux Ubuntu
-
1Press Ctrl + Alt + T to open the Terminal. You can install LAMP on Linux using the Terminal. The Terminal has an icon that resembles a black screen with a white cursor. You can click the Terminal icon in the Apps menu, or use the keyboard shortcut to open the Terminal.
-
2Update the software repository. Before you begin, make sure the software repository is up-to-date. To do so, enter the following command and press Enter .
- sudo apt update .
-
3Install Apache. Apache is the HTTP server software you will be using. To install Apache, enter the following command and press Enter :
- sudo apt install apache2 -y
-
4Check if Apache is installed correctly. The Apache server status should start running automatically. When you check the server status, it should return the output "Active: (running)" next to "Active." Enter the following command and press Enter to check the server status:
- sudo service apache2 status
- Press Ctrl + C to exit the service status screen.
-
5Check to make sure the UFW firewall has the Apache profiles. When you check the UFW firewall, it should return "Apache Full" as the output. Enter the following command and press Enter to check the Apache profile:
- sudo ufw app list
-
6Check that the Apache Full profile allows traffic on Ports 80 and 443. When you enter the following command, it should return "80, 443/tcp" below "Ports." Enter the following command and press Enter .
- sudo ufw app info "Apache Full"
-
7Go to localhost in a web browser. All you need to do is open a web browser and type "localhost" in the address bar. This should display the Apache Ubuntu default page with the message "It works."
-
8Install MySQL. MySQL is a relational database system. Enter the following command and press Enter to install MySQL:
- sudo apt install mysql-server -y
-
9Install PHP. PHP is a server-side scripting language that integrates well with MySQL. PHP is usually the final layer of LAMP (Linux, Apache, MySQL, and PHP). Enter the following command and press Enter to install PHP:
- sudo apt install php libapache2-mod-php php-mysql -y
-
10Modify the Apache server files. By default, Apache looks for an "Index.html" index file. Modify the "dir.conf" file so that Apache looks for the "Index.php" file instead. Use the following steps to do so:
- Type sudo nano /etc/apache2/mods-enabled/dir.conf and press Enter .
- Delete "index.php" in the line after "DirectoryIndex."
- Re-enter "index.php" first after "DirectoryIndex" and before "index.html."
- Press Ctrl + X .
- Press y .
-
11Install additional PHP modules (optional). If you want to install additional PHP modules, type apt-cache search php- and press Enter to see a list of all available modules along with a short description of each. Use the arrow keys to navigate the list. Type the name of a module and press Enter to see a full description. To install a module, type sudo apt install [module name] and press Enter . [2] X Research source
-
12Copy your website source code file. To do so, open the Files app and navigate to where you have the source code files for your website saved. Right-click the documents and folders and click Copy .
-
13Navigate to the Apache Index folder. Use the following steps to do so:
- Open the Files app.
- Click Other locations in the menu bar to the left.
- Click Computer .
- Click var .
- Click www .
- Click html .
-
14Paste your web page source code files. To do so, right-click and click Paste . This pastes your website files into the Apache server folder. This is the folder where you can save your website pages and files.
- Your website should now be live; people will be able to access it by entering your public IP address into a search engine. You can also add a domain name to make your website easier to access.
Adding a Domain Name
-
1Register a domain name. If you want people to access your local website using a domain name instead of your public IP address, you will first need to register a domain name . You can do so using services like GoDaddy.com , Namecheap.com , Domain.com , HostGator.com , Bluehost.com , Sauarespace.com , and more. [3] X Research source
-
2Log in to your domain registrar website. Go to the website you used to purchase your domain name. Log in with the username and password associated with your account.
-
3Select the option to manage domains. Your domain registrar should have an option that allows you to manage your domain names. Click this option.
-
4Click the DNS section for your domain name. This will probably be a button that says DNS , DNS settings , or similar below your domain name. Click the option to modify the DNS settings for your domain name.
-
5Click the option to add a DNS record. This will be a button that says Add , Add Record , or something similar.
-
6Select an "A" type record. This is the type of record that points a domain name to an IP address.
- If you are using an IPv6 address, select an "AAAA" type record instead.
-
7Type @ as the host. The "@" is a shorthand for the domain name. For example, if your domain name is "www.mywebsite.me", the "@" symbol is shorthand for the "mywebsite.me" portion of the domain name.
-
8Add your public IP address to the record. This goes in the field that indicates what the host points to. Just enter the numeric portion of your IP address with the dots (.). You don't need to add "http://" or "https://" or anything like that.
-
9Add another record. To do so, click the button to add a new record and select an "A" type record, or an "AAAA" type record for an IPv6 address.
-
10Type www as the host. This will create a record for your full domain name. For example, if your domain name is "www.mywebsite.me", this will create a record for the entire domain name.
-
11Add your public IP address to the record. This goes in the field that indicates what the host points to. Just enter the numeric portion of your IP address with the dots (.).
-
12Save the records. To do so, click the button that says Save or Add Records or similar. This will save both records with your domain name pointing to your public IP address. Internet users can access your website by typing the domain name into their web browser. [4] X Research source
- Allow 24 hours for the domain records to be updated and to take effect.
Community Q&A
-
QuestionHow do I host a webpage on a purchased domain?MicheleTop AnswererThe server where you bought the domain probably offers hosting services but usually at a cost. If you want to do it for free, have your domain redirected to whatever free web service you decide to use for your website. Remember, free sites are limited in the number of pages and can have a lot of ads. On the other hand, hosting your own website as in Method 2 above, or having your site hosted where you bought and keep the domain, allows you to pretty much create as many pages as you want, without any advertising you don't put up for yourself.
-
QuestionWhat should I do if when I put in the IP address but it says, "invalid IP address"?Community AnswerCheck if you got the IP correct; IPv4 changes once in a while when wireless.
-
QuestionCan I still add or edit things to my HTML website after I've already published it?MicheleTop AnswererWebsites can always be edited, as many times as you like. You just have to go back into whatever you used to create the website, edit it, then republish it.
Tips
- While MAMP gives you the option of resetting its ports automatically, you can also manually open port 80 in your router's firewall.Thanks
- Web hosting is incredibly cheap (some services come in at under $4 per month), and web-hosting services offer protection from attacks that personal hosting may not be able to fend off. As such, web hosting is a far better route than home hosting if you're able to spare an extra few bucks per month.Thanks
Warnings
- For self-hosted sites, your site will go down if you lose your internet connection, your computer loses power, or your system crashes.Thanks
- Note that if you host your website on your PC, your site is likely to respond more slowly than traditionally hosted sites.Thanks
Expert Interview
Thanks for reading our article! If you’d like to learn more about digital marketing, check out our in-depth interview with Anar Kazimov .
References
About This Article
Reader Success Stories
- "These editors did a fantastic job in writing what is the most clear and conclusive guide to hosting my own website. They were even over-specific in reminding the user not to type in the quotation marks." ..." more