Install and use Bitnami (website) programs on Puppy

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
humanise
Posts: 15
Joined: Fri 22 Apr 2011, 10:06
Location: Melbourne, Australia
Contact:

Install and use Bitnami (website) programs on Puppy

#1 Post by humanise »

Install and Use bitnami webserver programs on your Puppy Linux system.

A HowTo

Bitnami provides as free downloads a large number of open source Public Domain website programs. Bitnami packages up the programs with the webserver stack so that you just install the bitnami package and you have everything. You can run the webserver, performing development etc without even being connected to the internet or other network.

Website programs require a webserver and related software stack such as the LAMP stack. LAMP refers to Linux as the operating system, Apache as the Web server, MySQL as the relational database management system and generally PHP as the scripting language but sometimes Perl or Python is used instead of PHP. While LAMP is probably the most common stack, there are other webserver stacks.

I use a Precise 5.7.1 Puppy Linux which is the Long Term Supported Puppy Linux which is compatible with Ubuntu. My installation is a typical frugal installation, meaning that outside of the true Linux files loaded from the savefile (also called the Personal Storage File) plus other loaded SFS files, the file system is the underlying Microsoft Windows file system.

My computer is an old Microsoft Windows Vista computer which isn't particularly good but the Puppy Linux still ends being blazingly fast.

I consider Puppy a great platform for doing web software development. As most of the final production web servers are likely to be Linux platforms, trying to develop from within a Microsoft Windows environment, otherwise, invariably ends up causing problems. The very high speed of Puppy Linux, (ie Puppy is small and runs out of RAM) combined with its very Graphical User Interface (GUI) makes it a good choice of platform. It is a lot more GUI than most other Linuxs. That is, it feels closer to a standard Windows environment.

Puppy makes amazing use of compressed files, where it reads compressed files off the disk into RAM and extracts individual files on-the-fly as needed or from its caches etc. Programs run faster because they don't have to read from disk or when some files do have to be loaded, the size of the file is a lot smaller.

If you follow this how-to to the end you should be able to see how the use of this compressed file system in RAM makes a superb system for this type of software development. It is a good demonstration of the power of a squashed file system(sfs).

The use of directly loadable compressed packages means that Puppy can supply large optional packages. In particular, one of these referred to as devx sfs, provides just about any program development software that a typical Linux software developer would want.

Technically, bitnami webservers are able to be run as the final webserver. If you are connected to the internet, the current website is available to anyone on the internet using your current IP address. I'm not so sure that Puppy Linux is a good platform for running your final production website. I'm assuming with this how-to that people are using this for development and are later going to transfer the final result to some commercial hosting. Commercial hosting, is so cheap today that it doesn't make much sense to try to avoid it. Included in commercial hosting is various cloud solutions such as those shown at https://bitnami.com/cloud

Four problems with using bitnami programs on a typical frugal Puppy Linux are as follows:

1) The underlying Microsoft windows file system of the typical frugal install doesn't support either the permission flags or the file owner user and groups that Linux has. These are used within the linux versions of the bitnami programs, particularly by the database programs such as MySQL.

2) The full bitnami stacks, when installed, are very large. Due to 1) above, these stacks must be installed within the linux file system. The linux file system on Puppy typically exists in RAM memory and is effectively saved to a savefile (Personal Storage File) which is limited in size.

3) Puppy has traditionally been single user only. The latest Puppy versions have added some multiuser capability but the range of instructions have not included the instructions that bitnami attempts to use.

4) Some (but not all) of the bitnami installation programs require software not included in the base Puppy configuration.

The following provides methods to get over all these problems:

To get over 1) and 2) you need to ensure that you have space in your savefile. Examples of space used by various stacks I have tried are as follows:

Wordpress 4.5.2 714 M
Drupal 7 580 M
Drupal 8 759 M

You can read the current status and increase the size of the free space using

Menu ->> Utility ->> Resize personal storage file

There is a limit to how big this can sensibly be made, particularly for Version 5 or earlier Puppies. The new Version 6 Puppies handle far larger savefiles.

See the following for ways to reduce your other uses of the savefile:

http://murga-linux.com/puppy/viewtopic.php?t=62110

An alternative to the above methods of reducing the storage in your savefile is to make an alternative savefile. When Puppy Linux finds on booting that there are multiple savefiles it will ask the user which savefile to use. For more information on this see the following links:

http://puppylinux.org/wikka/HowToAvoidLoadingSaveFile
http://puppylinux.org/wikka/SaveFile

Another method may be to convert the Puppy system from using a file for the savefile to instead using a Directory. See the following:

http://murga-linux.com/puppy/viewtopic.php?t=93559
http://murga-linux.com/puppy/viewtopic.php?t=95922
http://murga-linux.com/puppy/viewtopic. ... 838#781838

The best way I found to get out the problems of 3) above, that is to allow bitnami to create users and groups, is to install a set of multiuser capabilities provided in the shadow-4.1.4.2.pet package. You can get more information and latest download link from:

http://www.murga-linux.com/puppy/viewtopic.php?t=47410

Download into any subdirectory of /mnt/home and just click it to install. This takes up less than 1M of the savefile.

The problems mentioned in 4) above were noted when I attempted to install 32 bit Drupal 7 or Drupal 8. The bitnami installation used perl scripts that attempted to use perl modules beyond that available in the installed perl of the base Puppy Linux. This was not a problem with the 32 bit Wordpress 4.5.2 that I used.

This is easy to overcome by loading the current devx sfs for your system. You need to download the one that is appropriate for your system. For example, for my precise 5.7.1 Puppy I use the devx_precise_5.7.1.sfs file. One current place to get them from is

http://smokey01.com/menu/iso.html

Note: It, like other sfs files, needs to be exactly in /mnt/home or the directory you installed Puppy from only. Once you have stored it at /mnt/home or your install directory you load it using the following:

menu ->> Setup ->> SFS-Load-on-the-fly

Note: This wasn't needed for Wordpress 4.5.2 but was required for both the Drupal installs that I tried.

With all the above sorted out you are now ready to install a bitnami package. I suggest to download from

https://bitnami.com/stacks

and download into any subdirectory of /mnt/home. By downloading to /mnt/home or a subdirectory of that, you don't have to modify the permission flags and you don't add to the use of the savefile.

After downloading, click on this file to perform the install. You may have to wait a few seconds before you see the bitnami install happening. It took 10 seconds for my laptop. Don't click it a second time.

When it asks where to install the software, it will probably give as a default

/opt/<package name>

where <package name> depends on the package you are installing.

For example, the default for the wordpress 5.5.2 I installed was

/opt/wordpress-4.5.2-1

Leave the install at this default. It has to be installed inside the Linux file system, not in /mnt/home or any subdirectory thereof. Complete the installation making sure that you record any user name and password that you input. I suggest that you use the Development option.

After completing the installation you are ready to run the software for simple try outs or demonstrations but for serious development work, I suggest that you continue through the rest of this Howto guide.

When running the application, both the application and phpmysql will have the password that you input but only the application will use the user name you previously input. The user name for logging into phpmysql is:

root

You should also have a bitnami control panel from which you can control starting up and shutting down the webserver and the data base. I suggest that you should make an icon on your desktop to be able to keep bringing up this control panel. Look for a file named manager-linux.run in the

/opt/<package name>

directory. You can just click this file to bring up the control panel but you are best to slide this onto the background desktop which will create an icon for it. In the same directory you will see a file named "uninstall" which you can click to uninstall the software.

If not up, bring up the bitnami control panel using the manager-linux.run icon. The middle tab at the top is called "Manage Servers". Use this to bring up the web servers and database by clicking the 'start all' button button at the bottom and wait for the web server and database to change to 'running' (green). Similarly use this to stop the web servers and database by clicking the 'stop all' button button at the bottom and wait for the web server and database to change to 'stopped' (red).

After starting the web server and database you bring up the application in your web browser by going to the address

http://localhost

or to the address:

http://127.0.0.1

From this page you should have a link to go to your application. There, you should be able to use the user name and password you input when doing the bitnami install to log in to the application as the administrator.

As installed at present, all of this software, which is very large, will be saved in your savefile if you do an ordinary shutdown or reboot, and will be restored when you next boot up.

For serious development you need a method of saving a copy of this system, particularly the data base, but it is normally too big to make another copy in the linux part of the system and if saved to /mnt/home it will lose permission flag information as well as user id and group id information. The savior to this problem is sfs (squashed) files. The use of these sfs files by Puppy Linux is amazing as it directly loads these into RAM and utilizes it directly in something like the sfs form combined with caches.

Making sfs files is one of the few applications on Puppy that there isn't a good GUI program for, or at least I haven't found it. I found the bash command line command to make sfs files a little strange as it doesn't allow them to be made in their original location. To overcome that and other problems I wrote the following bash command script for the Wordpress software I was using.

Code: Select all

#!/bin/bash
cat << EOF  >  /mnt/home/utils/xtermcommands
#!/bin/bash
mkdir -p /root/make-sfs/opt
echo Moving  /opt/wordpress-4.5.2-1 data.
mv /opt/wordpress-4.5.2-1/  /root/make-sfs/opt
echo Starting wordpress-4.5.2-1 sfs creation.
mksquashfs /root/make-sfs /mnt/home/wordpress-${1}.sfs
echo Moving Data Back.
mv /root/make-sfs/opt/wordpress-4.5.2-1/  /opt
echo Completed. 
EOF
xterm -hold -e /mnt/home/utils/xtermcommands
rm /mnt/home/utils/xtermcommands
Copy the above into a text editor (normally Geany on Puppy). You then need to modify the 'wordpress-4.5.2-1' throughout the script to reflect the installation directory of the package you have installed. You should also change the 'wordpress-' beginning of 'wordpress-${1}' to the name of your package

Make a subdirectory called /mnt/home/utils and save this to that subdirectory, naming the file 'Make-SFS'. Find this file with your file manager (normally ROX-Filer on Puppy) and slide this onto the background desktop in order to create an icon for it. You should use this multiple times.

Right click the 'Make-SFS' icon on the desktop and select 'edit item'. Fill in the 'Arguments to pass' parameter with 'Vers1'. This will be added to the 'wordpress-' with the '${1}' to create the full sfs file name.

Use the bitnami control panel to close down the web server and database. Close the bitnami control panel and Click the 'Make-SFS' icon on the desktop.

While executing, a window should open letting you see the results of executing this script. Close it when finished. You should now have a new sfs file in the /mnt/home directory. Notice that the size of this file is only something like a quarter of the size of the software that it contains.

You will want to delete the bitnami package installed in the /opt directory before trying out the new sfs. To do this you need to follow the following procedure:

1) Using the bitnami control panel, ensure that the package doesn't have the server and data base running. Close the bitnami control panel.

2) Ensure that you don't have an sfs file mounted providing this package. Check the sfs packages mounted with:

menu ->> Setup ->> SFS-Load-on-the-fly

While for this first time you won't have such a sfs package installed, later each time you use the above script you probably will and it is important that you unload this. You MUST unload it before deleting the software.

3) Delete the software from /opt

4) Mount the new sfs file using:

menu ->> Setup ->> SFS-Load-on-the-fly

Note how quick it loads. A very small fraction of the time it took the bitnami installer to load it. If you leave it mounted with this SFS-Load-on-the-fly it will be reloaded into RAM quickly at each boot up.

You should now check the free space in your savefile. Even though you have it loaded, it is no longer taking up space in your savefile. You can check this by holding your mouse over the top of a symbol near to the left of the clock near bottom right corner of the screen. Alternatively you can use:

Menu ->> Utility ->> Resize personal storage file

While working with large packages like the bitnami packages, these sfs files are a developer's dream but it is better for you to understand the interaction between the loaded sfs file and the savefile.

Before doing further work, I suggest that you make a copy of your personal savefile. You can get a small .pet program for this from the following links:

http://puppylinux.org/wikka/PupsaveBackup or
http://www.murga-linux.com/puppy/viewtopic.php?t=49999

While the sfs file is a read only file, Puppy makes it appear that it is read and write by keeping a copy of all files that have been modified. These will be stored in the savefile and reloaded on each bootup of Puppy.

Use the bitnami control panel (the original manager-linux.run icon will still work) to start the web server and database. In your browser bring up

http://localhost

and go to the application. Log on as administrator and create new content. For example, in Wordpress you could click 'Write your first blog post' or 'Add an About Page', enter some text for the Title then enter some text in the main editor part. Finally click on the Publish button. Check that the new data appears in the site.

After creating new content, check what happens when you unload the sfs software. Use the:

menu ->> Setup ->> SFS-Load-on-the-fly

to unload the software. Use the file manager (ROX-filer on Puppy) to look at where the software was installed. You should now find that a number of files remain in that install directory but it is only a small fraction of the total install. Included in these files is the database files. These files will be stored in the save file.

If like me you are human and consequently make mistakes while doing development, you need to know how to recovery from these mistakes. An example of this may be deleting a file from within the sfs file package. As the sfs file is a read only file, the implementation of this deletion is done using the personal savefile. Methods to restore such deletions are as follows:

1) Replacing the file(s) that has been deleted. You can obtain a copy of the deleted file(s) from the sfs file by mounting it separately. Just click on the sfs file and it will give you options which include the ability to mount it.

2) Direct modification of the personal save file. Your personal save file is in your install directory (either /mnt/home or an install directory in /mnt/home) with a .2fs or .3fs or 4fs extension, depending on which (ext2, ext3 or ext4) version of the linux file system you chose when installing Puppy. While you can mount the personal save file (by clicking it) to view it, the Puppy system will not let you modify it from within the same system as it is being used. In order to modify it, you need to load a different copy of Puppy such as booting off a CD or USB or having another copy of Puppy installed. Files with a .wh extension are Whiteout files used to implement the apparent deletion.

3) Restoring the last backup copy of your personal save file.

4) You can reduce this type of problem by changing Puppy to not automatically saving the personal savefile. Various methods for this can be found at the following links:

http://www.murga-linux.com/puppy/viewtopic.php?t=81911
http://www.murga-linux.com/puppy/viewtopic.php?t=82557


Note on development: Most of the final webservers are designed to run on Linux machines in their production environment. When you download additional modules or themes etc that are going to be added to the software under development, if you have to uncompress before adding to the software ensure that you uncompress within the linux file system, such as in a subdirectory of /root. If you uncompress under /mnt/home or some subdirector of /mnt/home, then the files will be modified. Problems related to this, such as changes to permission flags, tend to be the most common problem of people in their early website development.

Bitnami Programs

https://bitnami.com/stacks

Many of the bitnami stacks have multiple versions available. Additional to the full stack versions, there are module versions. These module versions allow you to install an additional web program when you have already installed a full stack version.

https://bitnami.com/stack/lamp/modules


Applications available (free download) from http://bitnami.com as at June 2016

Program - Program Type
------- ------------

WordPress - Blog
Joomla! - CMS
Redmine - Bug Tracking
Drupal - CMS
Eclipse Che - Developer Tools
Re:dash - Analytics
Moodle - eLearning
ReportServer Enterprise - Business Intelligence
Magento - e-Commerce
Parse Server - Developer Tools
ownCloud - Media sharing
Review Board+Power Pack - Code Review
LAMP - Infrastructure
Hadoop - Developer Tools
PrestaShop - e-Commerce
Neos - CMS
GitLab - Version Control
SEO Panel - Analytics
MediaWiki - Wiki
Let's chat - Chat
CMS Made Simple - CMS
WebMail Pro PHP - Email
Ruby - Infrastructure
Canvas LMS - eLearning
SugarCRM - CRM
Multicraft - Games
Alfresco Community - CMS
Mautic - Marketing Automation
phpBB - Forum
ERPNext - ERP
OpenERP - ERP
ProcessMaker Open Source Edition - BPM
Ghost - Blog
Simple Machines Forum - Forum
Django - Infrastructure
ReportServer Community - Business Intelligence
TestLink - Testing
HHVM - Infrastructure
DokuWiki - Wiki
eXo Platform Enterprise - Collaboration
Osclass - Online Classifieds
X-Cart - e-Commerce
Zurmo - CRM
Redmine+Agile - Bug Tracking
Code Dx - Application Security
Liferay - Portal Server
Invoice Ninja - Accounting
MEAN - Infrastructure
Open edX - eLearning
MAMP - Infrastructure
OrangeHRM - Human Resource Management
Open Atrium - Project Management
OroCRM - CRM
Apache Solr - Infrastructure
ProcessMaker Enterprise Edition - BPM
DreamFactory - Developer Tools
YouTrack - Bug Tracking
Tomcat - Infrastructure
Standalone Backendless - Developer Tools
Trac - Bug Tracking
Live Helper Chat - Chat
Jenkins - Continuous Integration
OpenCart - e-Commerce
JasperReports - Business Intelligence
Codiad - Developer Tools
Roundcube - Email
SimpleInvoices - Accounting
MODX - CMS
Sharelock - Password Management
Node.js - Infrastructure
Fat Free CRM - CRM
ResourceSpace - Photo Sharing
X2Engine Sales CRM - CRM
Dolibarr - CRM
Squash - Code Review
Review Board - Code Review
Refinery CMS - CMS
Gitorious - Version Control
CrushFTP - Media sharing
Subversion - Version Control
SilverStripe - CMS
Discourse - Forum
CouchDB - Database
concrete5 - CMS
Kafka - Developer Tools
Tracks - Planning
Elasticsearch - Search
TYPO3 - CMS
RabbitMQ - Developer Tools
Diaspora - Social Networking
phpList - Newsletter Manager
LAPP - Infrastructure
OpenProject - Project Management
Gallery - Photo Sharing
Railo - Application Server
Mantis - Bug Tracking
Memcached - Infrastructure
Sitecake - CMS
Phabricator - Bug Tracking
OXID eShop - e-Commerce
ActiveMQ - Developer Tools
Horde Groupware Webmail - Email
Gradle - Developer Tools
LimeSurvey - Poll Management
Mahara - Collaboration
OSQA - Forum
Noalyss - Accounting
CiviCRM - CRM
MyBB - Forum
Cassandra - Database
Piwik - Analytics
Pimcore - CMS
Tiki Wiki CMS Groupware - CMS
PostgreSQL - Database
Tiny Tiny RSS - News Aggregator
MongoDB - Database
Spree - e-Commerce
MySQL - Database
Redis - Database
JBoss AS - Infrastructure
Akeneo - Product Information Management
WildFly - Infrastructure
Odoo - ERP
Coppermine - Photo Sharing
Nginx - Infrastructure
eZ Publish - CMS
SuiteCRM - CRM
EspoCRM - CRM
ThinkUp - Social Networking
AbanteCart - e-Commerce
MAPP - Infrastructure
eXo Platform - Social Networking
Artifactory - Binary Repository
Ametys - CMS
XOOPS - CMS
CraftBukkit Minecraft - Games
Plone - CMS
ProcessWire - CMS
ocPortal - CMS
GitLab CI - Continuous Integration
Chyrp - Blog
WebPack - Blog
Weblate - Translation Tools
DevPack - Bundles
Pootle - Translation Tools
Publify - Blog
JRuby - Infrastructure
EnanoCMS - CMS
Roller - Blog

Coming soon:
------------
Mura CMS - CMS
Cozy - Document Management

Notes:
A lot of the stacks labelled 'Infrastructure' are what is referred to as a 'framework' or 'MVS framework' used to develop web applications.

CMS = Content Managment System
CRM = Customer Relationship Management
ERP = Enterprise Resource Planning
BPM = Business process management


Other Applications that Bitnami are creating or looking at creating:

LogicalDOC
Yii Framework
SonarQube
Cordova
Selenium
OpenVPN
osTicket
Bonita BPM
OpenEMM
Flask
Zimbra
SpagoBI
GLPI (Gestion Libre de Parc Informatique)
appserver.io
Glassfish
iDempiere
PredictionIO
OpenKM

Post Reply