loading

This ultimate purpose of this tutorial is to explain how to host your own cloud server at home. This allows you to access your documents, pictures, videos, music, and other media from anywhere as long as you have an internet connection. This guide also serves as an update to my previous guide, which can be found here. My old guide was written almost two years ago and was in dire need of updating. As I have learned more about Linux, I have discovered new tricks and more efficient methods of hosting a cloud. The following list describes the major updates in this guide:

  • Software: Ubuntu Server 14.04 64-bit
  • Easier file transferring between server and client
  • Fixed many permission issues
  • Fixed some potential security issues
  • Developed automated scripts to backup data to the server from the client
  • Updated configuration steps for Apache2
  • For those who read my previous cloud guide, I included a software called Ampache, which allowed music to be streamed from the cloud. I will not be including this software configuration initially in this guide. Ampache is currently undergoing major changes and I do not want to write the configuration before the changes are complete.
  • Other minor fixes

Although there are many updates in this guide, the overall concept remains the same. By the end of this guide, you should be able to host a cloud from your home using free software and cheap hardware. Finally, I will attempt to explain everything with as much detail as possible.

Let's get started with prerequisites.

Step 1: Prerequisites

1. Media you wish to upload to the cloud. The device the media is currently stored on will be called the client from now on.

2. A server. The server does not need to be particularly powerful unless you intend to have a huge amount of traffic accessing it. I find that old Dell computers work extremely well as cloud servers. The main parts in the server you need to worry about are the hard drive and memory. The hard drive will store the data on the cloud. The size of the hard drive limits how much data can be stored on your cloud. A large amount of memory in your server is not essential, but can help when transferring large files. I would recommend at least 1gb of memory in a cloud server.

3. Ubuntu Server 14.04 LTS. This is the software that will be used to run the cloud. This software is command line based, meaning there is no GUI. If that worries you, don't panic! Learning to use the command line is exciting. Assuming you follow the instructions in this guide, you should have no problems. I will not be explaining how to download and burn Ubuntu to disc in this guide, but if you need help, check out Step 2 of my previous guide.

4. A monitor. This is needed during the initial configuration of the server. Once the configuration is complete, you can take the monitor, keyboard, and mouse away.

Also, be sure to place your server next somewhere near an Ethernet connection to the router. It is important to have an Ethernet connection as opposed to Wi-Fi because it is much faster and more reliable, which is helpful if you are streaming media such as movies.

Next, we will install Ubuntu Server 14.04 LTS to the server.

Step 2: Installing Ubuntu

1. Begin by inserting the CD/USB with Ubuntu Server into the server. Be sure the server is set to boot from USB. If you do not know how to boot from CD/USB, please see the guide here. Ubuntu Server will load and the installation process will begin.

2. First, you will be presented with the language screen. Highlight your language and press Enter to continue.

3. The Ubuntu Server boot screen will appear next. This screen has serveral options for installing and configuring Ubuntu Server. Highlight the Install Ubuntu Server option and press Enter to continue.

4. Next, highlight the appropriate language in the list and press Enter to continue.

5. On the next screen, highlight your location and press Enter to continue.

6. The next screen will ask you whether or not you would like Ubuntu to detect your keyboard layout. You are more than welcome to do this, but I usually choose not to. For those using a standard American keyboard, you should not need to use this tool. Press Enter to continue.

7. The next screen is a keyboard configuration prompt. Highlight the type of keyboard you are using and press Enter to continue.

8. Once the keyboard layout is selected, Ubuntu may ask you for a more specific keyboard layout based on the previous selection. In my case, Ubuntu wanted to know just which form of English (US) keyboard I was using. Highlight the appropriate option and press Enter the continue.

9. Next, Ubuntu will ask you to give your server a host-name. The host name refers to how the name the server will be known by on the network. In my cast, I gave my server the host-name "ubuntu" for simplicity's sake. You can give your server whatever host-name you like, however, keep in mind all commands used in this guide will be based on the host-name "ubuntu". Press Tab and then Enter to continue.

10. The server will then ask you to enter your name in the field. You can put whatever name you would like in this field as it doesn't really have any significance whatsoever. I chose to enter "server" in this field. Press Tab and then Enter to continue.

11. Next, the installer will prompt you to enter a username for the server. The username is the log in credential used to access the server. In my example, I chose the username "server". You can give your server whatever username you would like, however, keep in mind all commands used in this guide will be based on the username "server". Press Tab and then Enter to continue.

12. The password prompt will appear next. Enter a password for the user you just created in the previous step. Press Tab and Enter to continue. The next prompt will ask you to re-enter your password. Once finished, press Tab and Enter to continue.

13. The next prompt will ask you if you would like to encrypt your home directory. If your computer is stolen, the thief will not be able to access your files. Encryption adds an extra layer of security to your server, but can also slow down performance. I chose not to encrypt my home directory in this example. Press Enter to continue.

14. Next comes the disk partitioning tool. The options you are presented with on your installation may be a bit different than mine since I am using a virtual machine in the example. Assuming your hard drive contains no other operation systems or partitions, you should be good to highlight "Guided - use entire disk and set up LVM" or something similar to that. Press Enter to continue.

15. The next prompt will ask you to select this hard drive you wish to partition. If you only have one hard drive installed in the server, it will be the only one displayed. If you have multiple hard drives installed in the server, be sure to choose the correct disk. Highlight the appropriate option and press Enter to continue.

16. The next screen will ask to confirm your partitioning selections. Review the selections you made and Press Tab and then Enter to continue.

17. (Optional) If you are using a virtual machine to install Ubuntu Server like I am in this example. The next prompt will ask prompt you to enter the percentage of the volume you selected to use for Ubuntu. Enter the appropriate amount and press Tab and Enter to continue.

18. (Optional) If you are using a virtual machine, the next prompt will ask you to confirm your choices before formatting the drive. Review your selections and press Tab and Enter to continue.

19. If you plan to use a proxy with your Ubuntu Server, enter it on the following prompt and press Tab and Enter to continue. If not, just press Enter to continue.

20. Ubuntu will then prompt you to choose how you would like automatic updates to be installed. Choose whichever option you would like. I would strongly recommend you choose to install security updates automatically. Highlight to appropriate option and press Enter to continue.

21. Next, a software selection prompt will appear. This prompt lists many software packages commonly used in conjunction with Ubuntu Server. In our case, we need to install OpenSSH and LAMP Server. Press space on each of those two packages, then press Tab and Enter to continue.

22. Ubuntu will then install all the package you chose along with other necessary packages. During this process, the installer will prompt you to enter a password for MySQL. Enter a password and press Tab and Enter to continue. Another prompt will ask you to re-enter your password. Once finished, press Tab and Enter to continue. Please note, you do not have to enter a password for MySQL, however, I strongly recommend you chose to use a password.

23. Next, Ubuntu will ask you if it can install GRUB to the master boot record. GRUB is the tool Ubuntu uses to load its operating system. It can also be used as a recovery tool. If you have no other operating systems loaded on the server, highlight Yes and press Enter to continue. If there are other OS'es on the server, decide which bootloader you would like to used and make the appropriate selection on this screen.

24. Finally, Ubuntu will finish the installation process and prompt you to reboot the server. Press Enter to continue.

At this point Ubuntu Server 14.04 LTS should be successfully installed. Next, additional packages will be installed to add extra functionality to the server.

Step 3: Configure Apache2

Now, Apache2 needs to be configured. This configuration allows the automated scripts to run without running into permissions issues. To begin, turn on your Ubuntu server. Once the server is booted, the terminal will prompt you for a username. Enter the username you created earlier. In my example, I would enter server. Next, enter the password you created for the user. Please note, nothing shows up on the screen when a password is entered. Once successfully logged in, type:

sudo apt-get install apache2-utils

This package will install various utilities available for use with Apache 2. Once that is complete, the default ports apache uses for the web-server need to be changed. By default, Apache 2 listens for web traffic on port 80. Because many ISP's block incoming traffic on port 80, the default port needs to be changed. If the port is not changed from port 80, the web-server will not be accessible from an outside network, which defeats the purpose of a cloud. To change the default port number type:
cd /etc/apache2

then:

sudo nano ports.conf

This command will open the file named ports.conf. The line that says Listen 80 needs to be changed to Listen 8080. This changes the port apache2 listens on from port 80 to 8080. Most ISP's do not block incoming traffic on this port. Once finished, press Ctrl+O and then Crtl+X to save the file and exit nano.

There is another file that needs to be edited to confirm the change from port 80 to 8080. Type:

cd sites-enabled

then

sudo nano 000-default.conf

Change the line that says VirtualHost 80 to VirtualHost 8080. Once finished, press Ctrl+O to save and then Ctrl+X to exit.

Next, to ensure there are no permissions issue when automatically copying files from a client to the server, the default directory Apache2 operates on needs to be changed. To change the default directory, the userdir module needs to be installed and activated. To do this, type:

sudo a2enmod userdir

Once the installation finishes, type:

sudo service apache2 restart

This will restart the apache2 service and update the default path apache2 uses.

Next, type cd to change the directory to the home directory. Then type:

mkdir public_html

This will create the folder apache2 uses. Next, restart apache2 one more time to ensure the changes are made.

Type:

sudo service apache2 restart

Finally, create the folders to store the media that will eventually be placed on the cloud. To do this, type:

mkdir public_html/documents

mkdir public_html/pictures

mkdir public_html/movies

mkdir public_html/music

This will create directories for documents, pictures, movies, and music.

Apache2 is now configured, but before the web-server can be tested, the router needs to be configured for port forwarding.

Step 4: Configure the Router

In order to access your cloud from an outside network, port 8080 must be forwarded to the IP address of your server. If port forwarding is skipped, the router will continue to block incoming traffic on port 8080.

To port-forward, the following information is needed:
The router's default gateway
The server's local ip address.

To find the default gateway of the network, type the command route. The default gateway of the router will be displayed in the Gateway field. The gateway will be used to access the router configuration utility.

To find the local ip address of the server, type the command ifconfig. Assuming your server is connected the router via a wired connection, the ip address of the server will be listed under the eth0 connection. Look for the field that says inet addr. The number that follows that address is local ip address of the server. It should look something like 192.168.xxx.xxx, where the x's can be any number between 0 and 255. Write this number down.

Open a web browser and type the default gateway address in the address bar. The router configuration utility of your specific brand of router should open. Most likely, the router will ask for a username and password before any changes can be made to the configuration. A quick Google search can usually yield the default username and password of your router.

Once logged in, look for a port forwarding tab on the webpage. My router's port forwarding page was listed under Applications & Gaming and then Single Port Forwarding.

In my example, the router requires me to enter the external and internal port number, and the IP address to forward traffic from that port to. In the external and internal port number columns I entered 8080. In the To IP address column I entered 192.168.2.186, which was the local IP of my server. Your configuration should be extremely similar to this.

Once finished, click save to save the settings. This should be the only thing that needs to be configured on most routers. If you have a external firewall connected to your network, you may need to allow traffic through on port 8080.

Now that the router is port forwarding traffic to the server, it's time for a test. To access your server from an outside network, I recommend using your phone's 4G service. To test the server, one last ip address is necessary. On a client connected to the local network, type "what is my ip address" into Google. Google will then display your public ip address. On your 4G connected phone, type the following into the address bar of a web browser:

PublicIPAddres:8080

Where the PublicIPAddress is your public ip address. The 8080 part tells the web browser to access the webpage on port 8080 instead of the default port 80.

If apache2 is configured correctly an apache2 welcome page should be displayed. If this is the case, you are ready to move on to the next step. If you do not see an apache2 page, be sure you are using the correct IP address and have followed the steps above correctly. If you are still having issues, please leave a comment below.

To access the documents directory created earlier, you can type:

PublicIPAddress:8080/~Username/documents

Replace Username with the username of your server. In my example, I would enter server. The remaining part of the address is the folder you want to access. For example, if I wanted to access a folder who's directory was ~/public_html/movies/UP!/, I would type:

PublicIPAddress:8080/~server/movies/UP!/

Although apache2 is configured, it is not very secure. Currently, anyone could access all the files on the webserver. To prevent this from happening, a username and password authentication system will be implemented in the next step.

Step 5: Secure the Server

To prevent the entire world from accessing the media on your cloud, password authentication needs to be implemented. To begin, change directories to public_html by typing:

cd ~/public_html

Then

sudo nano .htaccess

Do not forget the '.' before the htaccess. The dot hides the file from users. This file will tell the webserver that a username and password are required to access the cloud. Nano will open a blank file called .htaccess when the above command is entered. In the window type:

AuthType Basic
AuthName "Password Required"
AuthUserFile /home/Username/.htpasswd
require valid-user

Be sure to replace the username with username of your server. In my example, the username is server.

Once finished, press Ctrl+O to save and Ctrl+X to exit. The next file that needs to be created is .htpasswd. This file will contain a list of the approved log in credentials for the cloud.

First, type cd to change the directory to the home directory.

Next, type:

htpasswd -c /home/Username/.htpasswd User

Be sure to replace the username with the username of your server, just like above. Also replace the word User with any name you would like. The named specified in the User field is used as the username for the cloud. In my example, I use the name admin. Once entered, the server will create the .htpasswd file, and prompt you for a password for the specified user. Enter and confirm your password to continue.

All folders inside the public_html directory are now secured by password authentication.

To add another user to the credential list, DO NOT enter the same command as above, instead type:

htpasswd /home/Username/.htpasswd User

If you type the same command as above, the .htpasswd file you create initially will be overwritten.

To test the password authentication on the web-server. Open a web browser and enter:

PublicIPAddress:8080/~Username/

A box should appear prompting you to enter a username and password in order to access the content on the page. Enter the username and password created earlier, and the content on the page should become available. Please note, all directories inside of the public_html folder do not need a .htaccess file. Because the parent directory has the .htaccess file, all directories beneath it will require authentication for access.

Now that the cloud is secured, you can now safely start adding media to the server.

Step 6: Map Public IP Address to a Domain Name

This step is entirely optional. The purpose of this step is to create a free domain name which maps your public IP address to a domain name. The reason behind this is simple. IP Addresses are difficult to remember, and occasionally, an ISP will change your public IP address. This step will make your public IP Address static, and map it to a domain name. Like I said before, this step is completely optional.

To begin creating a domain name, open this website, and create an account. The account is needed to create a domain name. Once the account is created, log into the website and click the button that says Subdomains on the left side of the page. Next, click the [Add] button. The page that opens is where the domain name will be created.

Leave the Type of Subdomain as A.
In the Subdomain box, enter the name you want to call your website. For example, I will call my website apples.
In the Domain box, choose the domain you want your website to reside under. The option you choose here does not really matter as long as you choose a public domain. In my example, I chose mooo.com
In the Destiantion box, enter your public IP address. To find this address, type "what is my ip address" into Google.

Finally, click Save. The domain should now be mapped to your public ip address. Whenever you wish to access your website, you can now access it using the subdomain and domain names you selected. For example, to access your movies you would type:

www.SubDomainName.Domain.com:8080/~Username/movies/

Where the subdomainname, domain are the names you chose above. If I chose apples as my subdomain name, and mooo.com as my domain, I would enter those names in their respective areas.

Once this step is complete, it is time to transfer media from your client to the server.

Step 7: Transfer Media (Linux)

In this step, the media residing on the client machine will be transferred to the newly created cloud. They are many different ways to transfer media to the cloud: copy and paste, drag n' drop, or FTP. While each of the options are great and work well, they aren't automated. Each time any media is updated on the client machine, it must be manually transferred to the server. To solve this issue, an automated script is needed. I have attached the script I use to this step. My client machine runs Linux, so this is a Linux script. If you are running Windows are your client machine, you can use a software such as FileZilla to manually transfer your files to the server.

To begin, download the script and place it in the /home folder on the client machine. Open the script and edit it to meet the needs of your client machine. In the script there are four rsync commands. Each one corresponds to a media folder: one for documents, photos, media, and music. Below is a description of each element in the script:

rsync -u -r -v -e ssh --progress --delete --chmod=D775 /path/to/your/media/documents/* YOUR_SERVER_NAME@YOUR_DOMAIN NAME:~/public_html/documents/ --exclude=.htaccess --exclude=.htaccess~

rsync - rsync is the service used to transfer the media to the server.

-u - This option skips copying files if they are newer on the server. If for some reason there was a newer file on the server than on the client machine, it would not be overwritten on the server.

-r - This option copies all files recursively.

-v - This option basically tells rsync to let you know what it is doing as opposed to outputting no data to the terminal. Verbosity can be increased by adding additional dashes in front of the v.

-e - This command followed by ssh tells rsync to copy the files over SSH. This option ensures security if files are being copied over the internet. In order to use this option successfully, SSH must be configured on the server. You must also be able to SSH to the server without using a password. A quick Google search should lead you to a tutorial on how to accomplish both those tasks. If you are only copying files over a local network, this command really is not necessary.

--progress - This option shows the progress rsync is making during the copying process.

--delete - This option will delete files on the server if they are no longer on the client machine. This means that if you accidentally delete a file on the client machine, run the script, and want to retrieve that file off the server because you didn't mean to delete it in the first place, it won't be there.

--chmod=D775 - This option gives each file the proper permissions for cloud hosting. If this option is taken out, folders within the cloud directories will not show up on the website.

/path/to/your/media/documents/* - This is the path to your documents folder. The /* at the end of the command ensures all files within the documents folder are transferred. Change the script to match the path to each of your media directories.

YOUR_SERVER_NAME@YOUR_DOMAIN NAME:~/public_html/documents/ - This command is the path to the server directory the files will be copied to. Replace YOUR_SERVER_NAME with the name of your server. In the case of this guide, it would be server. Replace YOUR_DOMAIN_NAME with the domain name you created in the previous step. Finally, replace /documents/ with the appropriate media folder you are copying to.

--exclude=.htaccess --exclude=.htaccess~ - Because the --delete option is in place, these files could potentially be deleted off the server because they are not on the client machine. However, since these files protect the server, they should not be deleted. This command keeps them from being deleted.

To run the script, type:
./rsync_backup

If there you get a permission denied error type:
chmod 755 rsync_backup

At this point, the script should run and all media will be transferred to the server. To automate the script, try creating a cron job. Another quick Google search should yield a simple tutorial on how to accomplish that.

The script can be downloaded from my github page located here.

Step 8: What's Next?

Now that your cloud server is up and running, there are many different projects, software, and scripts to implement on your server. You can try creating a VPN server with my guide here. You can also set up streaming from your server to any machine using XBMC. That procedure is descried in previous cloud guide here. Also, you can try your hand at web developing, and create your own website. Should you wish to stream your music from the cloud, there is an excellent opensource music streaming software called Ampache.

The possibilities are incredibly numerous. If you have an idea of something you wish to put on your server, chances are, there is a tutorial for it somewhere on the Internet, and if there isn't, try venturing into uncharted territory. Please feel free to leave any questions or comments below as I try to answer all of them as best I can.

<p>Hi, I am trying to set-up my own home cloud/server and was wondering why you would use 14 instead of 16? Thanks C :)</p>
<p>anyone know to set this up with a pair of HDD's in a RAID 1 configeration</p>
<p>Very cool! I've been looking for a free alternative to subsonic! Do you happen to know if Ampache can be used to stream from a raspberry pi or other embedded iot device? </p><p>Would be great if music can be streamed from an esp8266/esp32, or other simple network chip!</p>
<p>Hi, </p><p>This was very helpful.<br>I am just stuck with the file transfer.<br>I am using FileZilla. when i try connecting it is stuck with &quot;Connection established, waiting for welcome message...&quot; <br> it gets disconnects after few seconds..</p>
<p>Thanks, defiantly one of the better tutorials I have ever followed through. working....no problems. however I was under the impression I was hosting &quot;owncloud&quot; not &quot;<em>my own cloud</em>&quot; I will take that one on the chin :(</p><p>Great idea for another tutorial would be establishing Raid HD's and sharing to the cloud you just made?</p><p>Keep up the good work</p>
<p>thanks for tutorial, but i need help<br>1. i can't access with my publicipaddress at other devices, but i can access locally to my local ip with port 8080, when i want to access **.*.*.**:8080/~server<br>forbidden coming out</p><p>2. i already do port forwarding to my local ip address, but still can't access it, or i must use another port? can i?</p><p>pls help jayredge :)</p>
<p>If you're like me, the WAN address on your router is actually on the NAT of the ISP.</p><p>So you don't actually have a public IP address. if the address reported on sites like &quot;whatsmyip&quot; report something different than your WAN address, you'll need to ask/buy an external IP</p>
<p>apache2-utils will not install from the default installation. For that Do a nano /etc/apt/sources.list (edit sources file to add a new source)</p><p>Then at the end add the source</p><p>deb http://cz.archive.ubuntu.com/ubuntu trusty-updates main</p><p>The do a sudo apt-get update.</p><p>After that run</p><p>sudo apt-get install apache2-utils</p><p>this will install apache2</p>
<p>Any possible ways for Windows Server please?</p>
<p>Any possible ways for Windows Server please?</p>
<p>this is very helpfull but can u please reply how can i get it from any network ?</p>
<p>Where is the script?</p>
<p>Great Instructions. Got it all working. Thank you for the guide, very helpful indeed. <br><br>Because my ability to make this work is limited to your guides. I am, of course, only capable of getting those specific directories working.<br><br>I have an external hard drive connected via USB 3.0 and would like to be able to just share the entire drive.</p>
<p>hello..i need your help when i m installing apache 2 i am facing some problems that i have shown in the attached image..kindly please help me to solve this problem.. </p>
<p>Hi jayredge,</p><p>First of all thank you for the great tutorial. However, I can't get it running properly... I hope you can help me.</p><p>I've followed your instructions step by step, but whenever I go to PublicIPAddress:8080/~MyUser I keep getting &quot;Forbidden; You don't have permission to access /~MyUser on this server.&quot;</p><p>How can I solve that?</p><p>Thanks in advance</p>
<p>Dear,</p><p>Firstly, we have made an awesome guideline in configuring cloud server. </p><p>Would you please share your email ID/Skype ID so that i can communicate with you if I face any issues. Because, I am going to configure this cloud server in my office environment which I need your help to configured it.</p><p>Please share I shall be very thankful to you </p>
Hi no matter what i do it keeps timing out when i try to go to ipaddress:8080 i have opened port on router and modem and still nothing
<p>Hi! Can you tell me why I cant download the file rsync_backup? :))</p>
<p>Hi. Not quite sure how this works, when using userdir. I've installed OwnCloud on a virtual machine, and added a second disk (located on another diskstorage, than the Ubuntu server), that I want to use for the OwnCloud storage part. I mounted the second disk at /var/www and created folder html and copied index.html file to new folder. How does it work when users are created. How do I ensure, that all the storage goes to the second disk, instead of the Ubuntu disk? Should I mount it to public_html instead (not sure that will work). I'm okay with the users being located on the local Ubuntu disk. Just want all the user data to be stored on the second disk.</p><p>Br</p><p>Frank</p>
You could also use owncloud (owncloud.org)
<p>Can I just plug my external drives to the server and instead of having the client pc and the server pc.</p>
<p>Any chance anyone knows how to setup FileZilla with our servesr?</p>
<p>I wanted to do this also and had some trouble at first, be sure to open up port 22 on your router. that is the port filezilla using to SSH into your server. After doing that simply enter your ip address into the quick connect bar under host, enter your user name and password, use port # 22. that should get you connected.</p>
I could port forward using port 22, but I can't open that on my modem because my ISP won't allow it. <br><br><br>My username and password... Would that be the one we made during jayredge's guide to sign into our servers or is there some other user name and password?
<p>navigate to /etc/ssh/ and then sudo nano ssh_config scroll down until you see the port number. delete the # symbol at the front and change the port to your choosing. don't forget to ctrl o to save, ctrl x to exit. you also might want to make a back file before you change things. then restart.</p>
<p>Thank you very much dreaddead76, I will try it as soon as I get a chance and reply back with my results!</p>
<p>The user name and password will be what you used in place of (server user) in the guide</p>
<p>Hey dreaddead76, I port-forwarded the using port 25, and then I followed your instructions of going into ssh_config. I restarted the server and tried quick connect with my server and the server admin password we set following jayredge's guide.</p><p>I tried the quick connect and I get &quot;Could not connect to server&quot; then I tried setting up through the Site Manager, and nothing still. Any further advise? </p><p>Please and thank you!</p>
<p>Make sure ubuntu's firewall is not blocking your port with:</p><p>sudo ufw allow 25</p>
<p>Tried sudo ufw allow 25</p><p>Also I tried following this guide as well: <a href="https://help.ubuntu.com/12.04/serverguide/ftp-server.html" rel="nofollow">https://help.ubuntu.com/12.04/serverguide/ftp-serv...</a></p><p>&quot;ECONNREFUSED - Connection refused by server&quot; still pops up. Any chance you have screenshots or something I can visually follow? Maybe I'm setting it up incorrectly</p>
<p>We're getting closer, Sounds like you still have port issues check this config file and make sure its set to your port: sudo nano /etc/ssh/sshd.config be sure you put the d in after ssh this should fix your problem. This will change the listen port for ssh. </p>
<p>Okay, so I was finally able to log in using one of the accounts I made via this tutorial: <a href="https://gist.github.com/joshellington/2224420" rel="nofollow">https://gist.github.com/joshellington/2224420</a></p><p>However, I'm not exactly sure how to have the 4 user accounts I made for me and my friends share a few folders. Trying to Step 7 (Symbolic Link) but not really sure I'm doing this part correctly</p>
<p>make sure the permissions are set the same for all users on the folder you want to share. </p>
<p>I tried a different approach. In the Site Manager I'm using my cloud IP address with my 80 port. Tried User and Password and I'm stuck in &quot;Connection established, waiting for welcome message&quot; Then the connection times out</p>
<p>I'm unable to download the rsync_backup file. Is there a problem with the link or can I get it somewhere else? It keeps saying &quot;request forbidden by administrator rules. I have a pro account not sure what the problem is. I'm stuck at this point, can you help?</p>
<p>I just e-mailed instructables support because I have no idea why that error is occurring. </p>
<p>Thanks for the reply, and the great guide it is much appreciated. Can you give me the commands to add apache users to groups, and also maybe how to change the apache user passwords? I would like some folders visible to some groups and not to others.</p>
<p>Nevermind I figured it out, thanks.</p>
I was rather shocked too, but who understands these people?<br><br>One final for this buddy. How do I setup filezilla to my site?
<p>I got the apache2 server up and running on laptops but not android phones. On two different laptops everything tested working ok when trying to play music from the server. But when I try to play music from a android phone (tried on android galaxy s2 and another android phone) it would pop up a error message saying phone doesn't support that kind of file. But the file is mp3 so I know it supports it.</p><p>The first time i used the old guide (fumbled through) and got it working and it worked on android phones too. Then I broke it trying to troubleshoot a problem getting ampache working. Once i got the apache2 server back up, I started having the problem with android phones.</p><p>So my question is, which step controls or is tied to file recognition that may affect the above issue? Why would it affect android phones and not a laptop?</p><p>Also when I set things up and it uses default port 80 the test.php works fine. After making the changes to get everything working on port 8080, the site works and I can login and play music from another pc off network, but when i go to localhost:8080/test.php i get </p><p>The requested URL /test.php was not found on this server.</p><p>I'm not sure how to solve this. When everything was setup as default using port 80, localhost/test.php displayed results showing configuration as expected. But now that im using 8080, I'm not sure how to verify test.php (which is in www).</p>
<p>As far as the test.php goes, I believe there is a port setting in the php5 files that needs to be changed from 80 to 8080. As far as the .mp3 thing is concerned I honestly have no idea why your phone would not support that format. Did you try setting up ampache on Ubuntu 14.04?</p>
Hello thanks for your reply<br><br>Yes I'm trying to set it up on Ubuntu 14.04. The phone thing is crazy. Tried on two android phones and no luck. Just keeps saying the file format is unsupported. I tried to download and got a message that the download keeps failing.<br><br>Do you know the file name and folder inside php5 that will work for changing php5 setting?<br><br>
<p>I believe the php configuration file is located in /etc/php5/apache2/php.ini</p>
<p>Hey jayredge, I've tried about a million things, considering we have similar routers. I followed your guide to the letter. I have a linksys E2500 and I single port-forwarded exactly as instructed. I have had zero success pinging my server from my phone. I've run out of ideas at this point.</p>
<p>So you were able to successfully Ubuntu Server? Are you able to access the Apache2 default page? Sometimes pinging is blocked by default on many routers. If you wanted to ping a device on an internal network from an external network, such as your phone, the router would most likely reject your request. If you wanted to ping your server from an external network, you would need to open the port on your router. </p>
<p>Actually jayredge, does it matter it's not port 8080? Could I use port 80? Turns out Optimum (my spiteful provider) closes all prots except 80 and 25.</p>
<p>I'm shocked that an ISP keeps port 80 open, but yes you totally can use port 80 if it is open.</p>
Yeah, I was able to internally reach the default page. Also I'm using the latest version 14.04. <br><br>I don't know what other setting I can change on my router. Followed your guide to the the T.

About This Instructable

124,805views

202favorites

License:

More by jayredge:How to Host Your Own Cloud v2.0 Host Your Own Virtual Private Network (VPN) with OpenVPN How to Access your Media from Anywhere by Hosting your Own Cloud! 
Add instructable to: