I need a server, and I'm used to windows at home and in the office, but it seems that Unix / Linux is an option, but I don't really know what it is. I don't know which one to get, how do I choose? What kinds of questions do I need to ask my host (if applicable)? my system administrators? my programmers? is there anything else I should know?
Linux – How to choose between Unix / Linux and Windows in a Server environment
bsdlinuxwindows
Related Solutions
Linux distributions use the FHS: http://www.pathname.com/fhs/pub/fhs-2.3.html
You can also try man hier
.
I'll try to sum up answers your questions off the top of my head, but I strongly suggest that you read through the FHS:
- /bin is for non-superuser system binaries
- /sbin is for superuser (root) system binaries
- /usr/bin & /usr/sbin are for non-critical shared non-superuser or superuser binaries, respectively
- /mnt is for temporarily mounting a partition
- /media is for mounting many removable media at once
- /dev contains your system device files; it's a long story :)
- The /usr folder, and its subfolders, can be shared with other systems, so that they will have access to the same programs/files installed in one place. Since /usr is typically on a separate filesystem, it doesn't contain binaries that are necessary to bring the system online.
- /root is separate because it may be necessary to bring the system online without mounting other directories which may be on separate partitions/hard drives/servers
- Yes, /etc stands for "et cetera". Configuration files for the local system are stored there.
- /opt is a place where you can install programs that you download/compile. That way you can keep them separate from the rest of the system, with all of the files in one place.
- /proc contains information about the kernel and running processes
- /var contains variable size files like logs, mail, webpages, etc.
To access a system, you generally don't need /var, /opt, /usr, /home; some of potentially largest directories on a system.
One of my favorites, which some people don't use, is /srv. It's for data that is being hosted via services like http/ftp/samba. I've see /var used for this a lot, which isn't really its purpose.
On my cygwin environment the docker cert path is actually set as below and docker seems to work fine.
DOCKER_CERT_PATH=C:\Users\user\.docker\machine\machines\default
The following does indeed give an error
DOCKER_CERT_PATH=/cygdrive/c/Users/user/.docker/machine/machines/default
$ docker version
Could not read CA certificate "\\cygdrive\\c\\Users\\user\\.docker\\machine\\machines\\default\\ca.pem": open \cygdrive\c\Users\user\.docker\machine\machines\default\ca.pem: The system cannot find the path specified.
So try changing your DOCKER_CERT_PATH to regular Windows path format.
export DOCKER_CERT_PATH=C:\\Users\\Alexey\\.docker\\machine\\machines\\default
My docker version is 1.10.1, if the results are any different.
Best Answer
Ask your programmers what language you need to be using, this is the most important part. Not all languages work on Unix and Windows.
Take the language information to your Host, and ask them what environment it's supported in. You, also, need to ask your host whether the Sever will be Managed or Unmanaged. Managed means if you have any server problems the Host will fix them for you, if you put in a ticket with support (my $dayjob). Unmanaged means you're on your own. In the Managed scenario, you will get some kind of web interface control panel, such as cPanel or Plesk.
If you're unmanaged, you should have actual employed system administrators, ask them what they want. Or you need to be able to be a system administrator yourself.
If both windows, and *nix turn out to be suitable for your needs, go with the cheaper of the 2, if they both cost the same, find out what the admins (including the ones at the host) know better, or which department (windows or *nix) has more admins.