How to set up a simple web server(Windowws XP Pro) - networking

As a heads up, I have some experience programming on Windows and other devices, but I have almost zero experience doing web anything, so I'm sure this is simple/easy to find online and I just don't know what I'm doing.
I have a computer on my home network that is connected to the internet(I can VNC into it from online if that helps) and I want to set it up so that I can connect to this PC online and access a web page stored on the PC.
This will be used by two people tops, so I'm not concerned about the number of connections or that kind of thing, I just want to be able to look at this page from online. I'm not sure what to call this, but I guess I want to have own webpage on my home PC that I can access to do stuff remotely.
Basically, I want to be able to go to http://{my-pc-ip}/webpage.html and see it online. If it helps, this is largely a learning exercise for me, I want to experiment and play around with what I can do through a webpage on my home network, through an online web page interface. Like maybe start a program on my home machine using a button the page, but do this from a computer connected over the Internet(this stuff I'll figure out myself, I just don't know how to set up the online stuff).

this is quite simple. You can use either IIS which is shipped with your XP Pro or use free and open source solutions:
XAMPP - http://www.apachefriends.org/en/xampp-windows.html. I've been using this for years. Very simple. The last step of installation is just to secure MySQL and FTP (if needed at all). PHP is shipped so you can start doing web development without extra hassle.
Lighttpd - http://www.lighttpd.net/. Another FOSS webserver, which is very light-weight.
There are a few more but Apache is the most popular so you can just go ahead with XAMPP which is very mature and has large community of users.
Lastly, remember to relax your firewall allow access to your IP address from LAN & VNC (whatever you needed). Some materials to get things done:
http://www.microsoft.com/windowsxp/using/networking/security/winfirewall.mspx
http://support.microsoft.com/kb/875357
http://technet.microsoft.com/en-us/library/bb877979.aspx
http://members.shaw.ca/nicholas.fong/vnc/
Enjoy doing web!

Not really programming related, but none-the-less, WAMP is by far the easiest solution out there.
http://www.wampserver.com/en/

To expose your PC as a web server you need to do couple of steps:
Have external ip (static).
Configure the firewall to allow incomming connection to your PC to port 80 (if you need SSL then port 443 too).
Set up a web server: you can use IIS (if WinXP is not Home edition), Apache server or smallest possible HTTP server like ihttpd.
Put the pages into your root directory.
That is the basic explanation of the steps to do.

For basic house-holding tasks like temporarily sharing static files on a lan i have used HFS which is only 600K, has a gui, adds itself to the explorer context menu, and yes, it is free with source code available.

Related

How to test/reproduce bad network behavior?

On Windows, I've used NEWT in the past, but it's difficult to use, not current (but I can find old copies on non-MS sites), and difficult though possible to degrade just the app's view of the network without messing up everything else on the machine like the VPN connection and NAS volumes.
On Mac, the Network Link Conditioner that is available with Xcode is far too limited and in particular doesn't model bursts, which is my current immediate interest.
I'm also interested in Windows programs running in a VMware VM, and that's already going through an emulated network connector. I wonder if that can be made to do the traffic shaping?
In summary, can someone suggest a tool that I ought to be using for this?
I guess http://henrydu.com/blog/how-to/simulate-a-slow-link-by-linux-bridge-123.html should work on your mac. It uses traffic control with ifconfig, something you might want to google for.

How to distribute ASP.NET app on lightweight hardware (such as NAS)?

I want to ship a piece of hardware to clients that they plug in to their network via Ethernet or USB. This device contains an ASP.NET web application that they access via a web browser on any PC in their network.
This needs to be a small device that costs less than $500, meaning it can't be a full server with a Win2008 server license. This would be repeated hundreds or thousands of times - once for each new customer.
Are there external hard drives or NAS devices that can run as an IIS/ASP.NET web server?
Thanks,
Roger
If you stick with a PC setup, you might be able to use a desktop OS and IIS Express. It should support everything you want, you might even be able to get this on a cheap netbook.
I'm sure you could build a small PC based an an embedded motherboard, or even a mini-itx board. But, this is a programming Q&A site and not really the place to ask about building servers.
If you're looking into keeping it cheap I would highly recommend looking into Mono which is free and runs ASP.Net very well. If you have any Windows-specific things you'd need to possibly change those but hopefully you wouldn't have those on a website.
You should look into converting your app to Mono.Net running on a virtualized environment. The OS and the runtime environment would be open source and would allow you to freely distribute it.
Mono.Net
Virutal Box - VM Enviornment
Ubuntu Linux OS
Buy a netbook with windows 7 home premium on it as that bundles IIS7. If you need any more "capacity", then you should look at bigger hardware anyway.

Replacement for Hamachi for SVN access

My company has been using Hamachi to access our SVN repository for a number of years. We are a small yet widely distributed development team with each programmer in a different country working from home. The server is hosted by a non-techie in our central office. Hamachi is useful here since it has a GUI and supports remote management.
This system worked well for a while, but recently I have moved to a country with poor internet speeds. Hamachi will no longer connect 99% of the time - instead I get a "Probing..." message that doesn't resolve. It's certain to be a latency issue, as the same laptop will connect without problems when I cross the border and connect using a different ISP with better speeds.
So I really need to replace Hamachi with some other VPN/protocol that handles latency better. The techie managing the repository is not comfortable installing and configuring Apache or IIS, so it looks like HTTP is out. I tried to convince my boss to go for a web hosting company, but he doesn't trust a 3rd party with our source.
Any other recommended options / experiences out there for accessing our SVN repos that would be as simple as Hamachi for setup; but be more tolerant of network latency issues?
Perhaps it's a bit much to ask of your team, but if you have a distributed team then you could switch to a distributed version control system (eg. Mercurial or Git). These don't need to use the network so much and you won't suffer from latency problems. It is an entirely new paradigm though and your team's development processes will have to change, so you might not consider it appropriate in your case.
First I should ask why you need a VPN in the first place. Subversion can operate over HTTPS, so as long as you open the proper port on the server there shouldn't be any security or connectivity issues.
Assuming that you do need a VPN, I find it difficult to believe that an administrator uncomfortable with Apache would be more comfortable installing a whole new VPN system (much more complicated and tricky, in my estimation).

How to Protect program from using on the SERVER?

I have a progam this is a converter for .NET that can be used in other .NET projects.
I have two kinds of license:
Developer license for DESKTOP software
Developer license for WEB server deployed software.
How I can protect my program if client buy (1) license he CAN NOT use it on the SERVER.
Disclaimer: I don't know anything about .Net, other than how to spell it, and I'm not completely sure about that.
It seems like one difference between a person using your file converter on their desktop and using it on a web server is that only a single instance will be running at a time on the desktop; a web page will probably have multiple instances, once per concurrent request. This seems like something you could enforce in software, and also something you could easily write into a license agreement.
Does IIS run with a graphical console on Windows? If it doesn't, and your desktop version does, maybe you could detect that?
Ultimately, though, if someone wants to get around your server/desktop distinction enough, they're going to; they could, for example, have the web server send the document to a desktop machine, and have the desktop send it back to the server. So, at some point, you'll have to give in and either ignore it or to say that's a problem for legal to handle.
If it is desktop software (I'm not sure by the question with the tag), you could use the Environment object to check what OS the code is running on and stop it running on Server Technology. This won't help if they run a server using XP or the like though, but it's a start.

What program can I use to remotely help clients?

I have a lot of people that ask me to fix their computers. Usually it is "slow computer" or "my computer has pop-ups," etc. In other words they have viruses and spyware. I thought I could use a remote program to do it, instead of them brining their computer to me or me traveling to their house..
I thought of UltraVNC, though I'm not sure how I would get them to use it. What I would like to have is a program they can download from my website.
What program would you recommend for this? Remote Desktop? VNC? Something else? I'm happy to pay a small fee if necessary to make things as seamless as possible. Word of mouth is valuable and a good referral for an easy to work with computer person (me) is worth that monthly or one time fee.
I have Vista, most will have Vista Home Premium or XP Home. I have Vista Home Premium and Mac OS X. I can use Linux if necessary. I just don't have it installed right now.
Thanks.
EDIT: Is there an alternative to copilot? I like it but I'm afraid to stake everything on one provider.
https://www.copilot.com/
It's made to be simple so even the most novice computer users can figure it out.
Copilot helps you fix someone's computer problems by letting you connect to their computer, see what they see, and control their mouse and keyboard to help fix the issue.
It's nice because they just go to the site and enter the code you give them. The installation is simple from there.
(Modified)
LogMeIn has a free version that works very well. It runs in the user's system tray and you can login and control their computer as long as they have the program running. The free version has a few less features, but they're mostly luxuries instead of necessities.
Team Viewer is a desktop sharing remote control support tool. It is free for non-commercial, personal use.
There are a few different options:
Remote Desktop: Nice interface, integrates with Windows very well (I had no trouble connecting to my Vista desktop from my XP laptop). I think your client would need to have Windows XP pro; XP home does not have the Remote Desktop Server.
RealVNC: Nice interface, the free version is very useful. Encrypted connections are available with the non-free version.
There are others (like Copilot), but I have only used Remote Desktop and RealVNC.
With either of these, you need to make sure port-forwarding is setup if they have a router, and that the firewall whitelists the program.
Windows XP has built-in "Windows Assist" which lets you send an invite to another Windows machine (typically via e-mail) and allows you to remotely control the machine with them watching. This is a nice option because it is already built into Windows (albeit not as well known as RemoteDesktop or LogMeIn).
The advantage over Remote Desktop is that the user can see what you are doing to their machine and control can be passed back and forth.
This link has the steps to do this.

Resources