I was wondering if I could create my own apache web server on my Arduino Uno, just like I did on my raspberry pi - https://www.raspberrypi.org/documentation/remote-access/web-server/apache.md

Anyone have any idea about this? From my research it seems like I cant achieve the same results on an arduino uno.



You can only make a very, very, very basic webserver, that won't be able to handle more than a few requests per second.

You also need to add something like an ethernet shield, and probably an SD card reader. Which would make it about the same price as a Pi.

It's possible, but very limited, not practical in most cases, and not that much cheaper.

  • Indeed - essentially, whatever you use as a network interface ends up being a better "computer" than the Arduino, so you might as well just run your code on that instead. And with things like the ESP8266 port of the Arduino environment, it doesn't even require much of a thought shift to do so. Apr 20 '16 at 19:23

I do recall someone actually managing to run Linux on an Arduino. It was quite impressive, involving a very large amount of external DDR RAM and bit-banging the interface to it. Basically emulating a virtual computer within the Arduino. I can't find the original post though - it's been lost in time...

So yes, technically it is possible to run Linux, and thus Apache, on an Arduino.

Is it recommended to even think about trying to do something like this though?

Certainly not.

The Arduino is a microcontroller, not a computer. It is designed for controlling things (hence its name) not for general computing tasks.

It can, though, run its own web server software - that is, you can connect some form of network interface (Ethernet, WiFI, etc) and implement a very very basic web server. It can't really do much, and all interactivity has to be hard coded into it in C++. There doesn't (yet) exist any simple scripting engine or anything like that (PHP, etc) and you are very limited on how much you can implement (lack of memory) as regards anything fancy.

In general a web server running on an Arduino is used as a back-end to a proper web server and interacted with using Ajax calls or other similar methods. More commonly though a web interface is shunned in favour of much lighter weight protocols or push technologies like MQTT.


No you can't. Apache (or any web server of similar functionality) will require:

  • tens to hundreds of megabytes of RAM
  • about 50 megabytes of storage
  • an actual operating system

Perhaps you can get the required storage with the SD shield, but it's practically impossible to get enough RAM or run a suitable OS on arduino.


Yes, you can make a web server. Here is the tutorial.

You do not need Apache to create a web server.


While you can't make an apache web server with an Arduino Uno, you can if you access the linux module of the Arduino Yun board. I in fact did this and with some testing realized that it can't handle more than a few packet requests per second. Although a raspberry pi is much cheaper and more capable than a re-programmed Yun if you want a "Mainstream" server (Namely one Arduino Yun is $75.00 while a Raspberry Pi model 3 B is $35.00 at the time of this writing.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.