14

I have read about the advantages of using a BitNami stack for LAMP development, now I am wondering if there are any drawbacks to using BitNami vs manually installing PHP, MySQL, and Apache separately. I use Mac OS but I would be interested on how it applies to both Mac and Windows. Any thoughts?

Chase Florell
  • 46,378
  • 57
  • 186
  • 376
webworm
  • 10,587
  • 33
  • 120
  • 217

6 Answers6

15

There are 3 common drawbacks to Bitnami vs. a native LEMP/LAMP stack:

  1. File paths. Because Bitnami is a container approach to web stacks, it installs everything in Ubuntu (or whatever Linux distro) under the /opt/bitnami directory. So, many developers who are used to customizing their stack using nano or vim editors (via the Bash shell) quickly discover that you first have to figure out where all the different configuration files of your stack modules reside, etc. Even after you figure those out, most of the online tutorials and documentations you might find will not apply to your stack.

  2. Lockdown. This could be seen as either an advantage or a disadvantage, depending on your perspective (and situation). The entire point of using a containerized approach is to have more control of the stack environment, which can improve compatibility, predictability, security, and otherwise. However as @team-life mentioned, this can quickly become frustrating when you are trying to use "standard" Bash shell commands or even the MySQL CLI, e.g. when trying to analyze or replicate your stack, etc. To put it simply, logging into shell on a server where Bitnami is installed is not in fact logging into the actual shell :)

  3. Upgrades. At the end of the day, Bitnami (and other containers, like Docker) are adding another "layer" to your stack, and thus, more bloat. For some users this "bloat" is justifiable, and preferable (for example, very large companies who require across-the-board uniformity). But what many developers discover with Bitnami and containers is upgrading your stack can be rather janky. For all the alleged advantages in terms of environment "stability", it turns out that upgrading your stack can actually introduce quite a bit of instability and unpredictability, often to the extent of canceling out the benefits. As @domi mentioned, all upgrades run through Bitnami (and not Ubuntu mirrors, etc) meaning you are bound to their versions and release schedules; you are also often required to completely re-install the stack again...

Ultimately, containers are a recent trend that have become very popular among so-called "enterprise" and "corporate" in-house teams, but it is one of those things that might not be the best features for smaller agencies or independent developers to embrace.

That is why native LEMP stacks like SlickStack (my project) are gaining momentum.

This Reddit thread has a few other AWS-specific comments as well.

Jesse Nickles
  • 1,435
  • 1
  • 17
  • 25
14

I am one of the developers of BitNami. Whether to use a native stack or a BitNami stack depends on what you are trying to do. Installing the individual items separately should be exactly the same as running our installer, and the whole purpose why we put the installers together is so you would not have to :) In the case of Mac, one of the advantages of BitNami is that you can have more up-to-date components and multiple installations. A disadvantage / difference is that the applications and path will be different than the typical ones so if you are using third-party tutorials or documentation, it may not work right away

Daniel Lopez
  • 3,297
  • 2
  • 30
  • 29
  • If all I have to worry about is making sure the path names are corrected from tutorials and the like then it sounds like BitNami might be the way to go. Can you expound a little more on the up-to-date components and multiple installations on the Mac? Thanks! – webworm Mar 07 '12 at 14:29
  • Apple tends to ship older versions of language runtimes like Ruby, Python, etc. Regarding multiple installations, what I meant is that because the stacks are relocatable and you can choose the install path, you can have multiple side by side installations (one for each project for example) – Daniel Lopez Mar 08 '12 at 06:51
  • 3
    It's not actually exactly the same. On a Bitnami stack, we can't upgrade PHP without rebuilding the full setup. Which is a huge nogo with the bitnami approach. Security wise, it's cleary a weakness. – cedbeu Feb 06 '21 at 07:07
5

BitNami uses paths that will be very different from the industry standard ones so if you are trying to login to a server to do some task, it will take you a lot of time to understand their custom-made-folder-structure. And that's a big drawback. When you login to a unix server, you know where the files and paths are, maybe you have one or two options, that are standard. BitNami uses a completely different one. Chaos ensues.

  • 3
    Bitnami Engineer here. We use the same directory structure for every application of our catalog. All the app's and required components' files are inside the installation directory you set when using our installers (or /opt/bitnami if you use a cloud instance). You can find different folders there: apps has the applications' files, apache2 has the files of Apache, mysql has the files of that database, ... We have a guide in our documentation that explains this https://docs.bitnami.com/installer/faq/linux-faq/get-started/understand-directory-structure/ – Jota Martos Jul 03 '19 at 08:33
4

Bitnami - ease of use, validated components - known working good configuration.

Disadvantage - Patches and updates. you cannot update packages for security like you can for native install. Any bulletins must be addressed by the bitnami team, who may/will roll out an update to address issues. The bitnami updates are full stack upgrades, meaning you can't just upgrade a single component (php for example) - you need to upgrade the whole bitnami stack, and the often recommended method is to backup your application database, install a parallel bitnami stack that has the latest updates, then restore or migrate to the new installation.

Some will tell you that you can shoehorn patches into bitnami stacks, but it's not at all recommended, will lead you off the stack and most likely cause you down stream issues.

3

I'm a happy bitnami stack user. It's a great stack. I can describe many advantages.

The draw back of using bitnami stack is the update cycle. For example on Debian/Ubuntu based system, you can not use the standard apt-get update/upgrade.

That means some security updates might not get to your system as fast as your standard cron (automated periodic) update mechanism.

To upgrade the system you will need to create backup, install a new stack, then import the backup to the new stack. Which might not be an ideal procedure.

Some people categorize that as non-production-environment.

Domi
  • 156
  • 3
2

Bitnami evidently is unable to use certain commands from their mysql command line. I'm finding this very frustrating. Here is some stuff I found out.

  1. It puts you into its own bash shell bash-4.2#
  2. mysql>SHOW MASTER STATUS returns -> (nothing) doesn't seem to work
  3. rcmysql start or stop doesn't work from mysql> you have to shell out of where your at and run the ctlscript.sh which is a pain.
  4. Just to get to command line you have to run ./use_lampstack
  5. I'm guessing that they are giving us a very paired down mysql group of commands because there will be less for them to support and less for people to jack up.

So this came up for me because I was trying setup replication. I was following directions from someone who had a "regular" install. It was difficult to follow because most of the commands he was suggesting didn't work from the bitnami mysql> command line. So while I really like the uniformity of Bitnami and the modular nature of it I have run into a snag trying to setup replication.

Team Life
  • 21
  • 1