<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.amahi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Peter+Katelaan</id>
	<title>Amahi Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.amahi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Peter+Katelaan"/>
	<link rel="alternate" type="text/html" href="https://wiki.amahi.org/index.php/Special:Contributions/Peter_Katelaan"/>
	<updated>2026-05-11T07:43:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.amahi.org/index.php?title=Web_App_Packaging_Notes&amp;diff=69518</id>
		<title>Web App Packaging Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.amahi.org/index.php?title=Web_App_Packaging_Notes&amp;diff=69518"/>
		<updated>2013-03-23T09:10:35Z</updated>

		<summary type="html">&lt;p&gt;Peter Katelaan: /* Custom .htaccess File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Database Restore ===&lt;br /&gt;
* Install Script:&lt;br /&gt;
 # Check for backup of old version database&lt;br /&gt;
 if [ -f /var/hda/dbs/latest-appname.bz2 ]; then&lt;br /&gt;
    # Import old version database&lt;br /&gt;
    bzcat latest-app.bz2 |mysql -uapp -papp app&lt;br /&gt;
 else&lt;br /&gt;
    # Insert new version database&lt;br /&gt;
    mysql -uappname -pappname appname &amp;lt; appname.sql;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
'''NOTE:'''   if statement switches are:&lt;br /&gt;
&amp;lt;blockquote&amp;gt; '''-d''':  directory&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''-f''':  file&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== App Start on Boot ===&lt;br /&gt;
* Install Script:&lt;br /&gt;
 /usr/bin/crontab -l &amp;gt; apache-crontab;&lt;br /&gt;
 cat &amp;gt;&amp;gt; apache-crontab &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 @reboot /var/hda/web-apps/appname/html/startup.sh&lt;br /&gt;
 EOF&lt;br /&gt;
 /usr/bin/crontab apache-crontab;&lt;br /&gt;
 rm -rf apache-crontab;&lt;br /&gt;
* Uninstall Script:&lt;br /&gt;
 /usr/bin/crontab -l &amp;gt; apache-crontab;&lt;br /&gt;
 sed -i '/appname/d' apache-crontab;&lt;br /&gt;
 /usr/bin/crontab apache-crontab;&lt;br /&gt;
 rm -rf apache-crontab;&lt;br /&gt;
&lt;br /&gt;
=== Find and Rename .htaccess Files: ===&lt;br /&gt;
 find . -name .htaccess -exec mv {} {}.tmp \;&lt;br /&gt;
=== Add Server (Service) Feature ===&lt;br /&gt;
* Install Script (Fedora):&lt;br /&gt;
 cat &amp;gt; installscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 install -m 755 appname /etc/init.d/;&lt;br /&gt;
 /sbin/chkconfig appname on;&lt;br /&gt;
 /sbin/service appname start;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 installscript.sh;&lt;br /&gt;
 sudo ./installscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Install Script (Ubuntu):&lt;br /&gt;
 cat &amp;gt; installscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 install -m 755 appname /etc/init.d/;&lt;br /&gt;
 update-rc.d appname defaults;&lt;br /&gt;
 service appname start;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 installscript.sh;&lt;br /&gt;
 sudo ./installscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Uninstall Script (Fedora):&lt;br /&gt;
 mkdir elevated;&lt;br /&gt;
 cd elevated;&lt;br /&gt;
 cat &amp;gt; uninstallscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 /sbin/service appname stop;&lt;br /&gt;
 /sbin/chkconfig appname off;&lt;br /&gt;
 rm -f /etc/init.d/appname;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 uninstallscript.sh;&lt;br /&gt;
 sudo ./uninstallscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Uninstall Script (Ubuntu):&lt;br /&gt;
 mkdir elevated;&lt;br /&gt;
 cd elevated;&lt;br /&gt;
 cat &amp;gt; uninstallscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 service appname stop;&lt;br /&gt;
 update-rc.d -f appname remove;&lt;br /&gt;
 rm -f /etc/init.d/appname;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 uninstallscript.sh;&lt;br /&gt;
 sudo ./uninstallscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Change service run level, start, and stop priority:&lt;br /&gt;
Edit the service, i.e. ''/etc/init.d/adito'' and change the parameters (Run level: 0-6, start priority: 1-99, and stop priority: 1-99).&lt;br /&gt;
 # chkconfig: 2345 56 26&lt;br /&gt;
Execute the following command as '''root''' user:&lt;br /&gt;
 /sbin/chkconfig adito resetpriorities&lt;br /&gt;
&lt;br /&gt;
===Custom Webapp Options===&lt;br /&gt;
Edit /''etc/httpd/conf.d/####-appname.conf'' file (where '''####''' is a 4 digit number).  The web server will require restart to affect the changes.&lt;br /&gt;
* Change PHP Settings (add below ''ServerAlias''):&lt;br /&gt;
 &amp;lt;Files *.php&amp;gt;&lt;br /&gt;
 php_flag short_open_tag on&lt;br /&gt;
 php_flag magic_quotes_gpc Off&lt;br /&gt;
 php_flag magic_quotes_sybase Off&lt;br /&gt;
 php_flag magic_quotes_runtime Off&lt;br /&gt;
 php_flag register_globals Off&lt;br /&gt;
 php_flag session.auto_start Off&lt;br /&gt;
 php_flag suhosin.session.encrypt Off&lt;br /&gt;
 php_value upload_max_filesize 20M&lt;br /&gt;
 php_value post_max_size 100M&lt;br /&gt;
 php_value max_execution_time 300&lt;br /&gt;
 php_value zend.enable_gc off&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
* Apache mod_rewrite to allow use of .htaccess (replace similar lines above ''&amp;lt;/Directory&amp;gt;''):&lt;br /&gt;
 Options Indexes FollowSymLinks +ExecCGI&lt;br /&gt;
 AddHandler fcgid-script .fcg&lt;br /&gt;
 AllowOverride FileInfo Limit Options Indexes&lt;br /&gt;
 Order allow,deny&lt;br /&gt;
 Allow from all&lt;br /&gt;
* Redirect Webapp (add below ''ServerAlias''):&lt;br /&gt;
&amp;lt;pre&amp;gt;ProxyPass / http://hda:10000/&lt;br /&gt;
ProxyPassReverse / http://hda:10000/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;RedirectPermanent / http://hda:10000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Custom .htaccess File===&lt;br /&gt;
* Use of .htaccess for Webmin (requires '''Apache mod-rewrite''' step above):&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond %{SERVER_PORT} 80&lt;br /&gt;
 RewriteRule (.*) https://%{HTTP_HOST}:10000 [R,L]&lt;br /&gt;
&lt;br /&gt;
* Some Web-Applications/Frameworks come with a pre configured .htaccess file that is trying to set the AllowOverride Rule. This will result in the following error: ''.htaccess: AllowOverride not allowed here''. Remove AllowOverride from the .htaccess file and add it to the Directory area in your web-app conf.d file that it looks somewhat like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Directory &amp;quot;&amp;lt;your path&amp;quot;&amp;gt;&lt;br /&gt;
  Options Indexes FollowSymLinks +ExecCGI&lt;br /&gt;
  AddHandler fcgid-script .fcg&lt;br /&gt;
  AllowOveride FileInfo Limit Options Indexes&lt;br /&gt;
  '''AllowOverride All'''&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Special Instructions===&lt;br /&gt;
* Web Link Syntax:&lt;br /&gt;
 &amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.google.com&amp;lt;/nowiki&amp;gt;&amp;quot; target=&amp;quot;_&amp;quot;&amp;gt;Google&amp;lt;/a&amp;gt;&lt;br /&gt;
* User Log in:&lt;br /&gt;
&amp;lt;pre&amp;gt;The administrator login is:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name:  admin&amp;lt;br /&amp;gt;&lt;br /&gt;
Password:  admin&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Scripted Functions===&lt;br /&gt;
* Fully Qualified Domain Name:&lt;br /&gt;
 HSTNM=`hostname -f`&lt;br /&gt;
 HST=`echo $HSTNM | awk -F'.' '{print $1}'`&lt;br /&gt;
 GRP=`echo $HSTNM | awk -F'.' '{print $2}'`&lt;br /&gt;
 DOM=`echo $HSTNM | awk -F'.' '{print $3}' | sed 's/\..*//'`&lt;br /&gt;
 if [$DOM == &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;]; then&lt;br /&gt;
  DOMNM='home.com'&lt;br /&gt;
 else&lt;br /&gt;
  DOMNM=$GRP'.'$DOM&lt;br /&gt;
 fi&lt;br /&gt;
* Arch (32- or 64-bit):&lt;br /&gt;
 export ARCH=`getconf LONG_BIT`&lt;br /&gt;
 if [  &amp;quot;$ARCH&amp;quot; = &amp;quot;64&amp;quot; ]; then&lt;br /&gt;
   # 64-bit&lt;br /&gt;
 else&lt;br /&gt;
   # 32-bit&lt;br /&gt;
 fi&lt;br /&gt;
* HDA Domain Name:&lt;br /&gt;
 export HDADOM=`cat /etc/resolv.conf | grep 'search' | awk '{ print $2 }'`;&lt;br /&gt;
* HDA IP Address:&lt;br /&gt;
 export HDAIP=`ifconfig eth0 | grep &amp;quot;inet addr&amp;quot; | awk '{ print $2 }' | awk 'BEGIN { FS=&amp;quot;:&amp;quot; } { print $2 }'`;&lt;br /&gt;
* First Admin User:&lt;br /&gt;
 export FUSER=`/var/hda/platform/html/script/first-admin` &lt;br /&gt;
or&lt;br /&gt;
 export FUSER=$(echo &amp;quot;SELECT login FROM users WHERE admin=1 ORDER BY id ASC LIMIT 1&amp;quot; | mysql hda_production -uamahihda -pAmahiHDARulez -s)&lt;br /&gt;
* Check OS Version:&lt;br /&gt;
 export FVER=`cat /etc/fedora-release | awk -F'release ' '{print $2}' | sed 's/(Laughlin)//'`;&lt;br /&gt;
 if [ $FVER == '14' ]; then&lt;br /&gt;
 ...&lt;br /&gt;
 fi&lt;br /&gt;
or&lt;br /&gt;
 export FVER=`cat /etc/fedora-release | awk -F'release ' '{print $2}' | sed 's/(Verne)//'`;&lt;br /&gt;
 if [ $FVER == '16' ]; then&lt;br /&gt;
 ...&lt;br /&gt;
 fi&lt;br /&gt;
* Install Ubuntu (DEB) or Fedora (RPM) package&lt;br /&gt;
 if [ -f /etc/fedora-release ]; then&lt;br /&gt;
 yum localinstall -y package.rpm --nogpgcheck&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ -f /etc/lsb-release ]; then&lt;br /&gt;
 dpkg -i package.deb&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
===Elevated Privileges (root)===&lt;br /&gt;
* Scripts can be run from '''/var/hda/web-apps/*/elevated''', '''/var/hda/apps/*/elevated''' or '''/var/hda/elevated''' directories.&lt;br /&gt;
 mkdir -p elevated;&lt;br /&gt;
 cd elevated;&lt;br /&gt;
 cat &amp;gt; my-elevated-script &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 ''...commands which need elevated privileges...''&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod +x my-elevated-script;&lt;br /&gt;
 sudo ./my-elevated-script;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* Suppress Console Output&lt;br /&gt;
 command &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
* Remove Blank Lines From File&lt;br /&gt;
 sed -i '/^$/d' filename&lt;br /&gt;
* Insert line based on text1 (Previous Line)&lt;br /&gt;
 sed -i '/text1/ i\text2' /filename;&lt;br /&gt;
* Patch Comment:&lt;br /&gt;
 # FIXME - this needs to be hosted in dl.amahi.org prior to going live!&lt;br /&gt;
* AmahiSync Web Link:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://username.amahi.me/Public/filename&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Patch Diff:&lt;br /&gt;
&amp;lt;pre&amp;gt;diff -r -N -b -u html.orig html &amp;gt; app-patch.diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
 patch -s -p0 -E &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 ''.... contents of app-patch.diff here ....''&lt;br /&gt;
 'EOF'&lt;br /&gt;
&amp;lt;pre&amp;gt;patch -p0 -E &amp;lt; app-patch.diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Cat EOF:&lt;br /&gt;
with variables&lt;br /&gt;
 cat &amp;gt; test &amp;lt;&amp;lt; EOF&lt;br /&gt;
 ... text goes here ... &lt;br /&gt;
 EOF&lt;br /&gt;
and without variables&lt;br /&gt;
 cat &amp;gt; test &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 ... text goes here ...&lt;br /&gt;
 'EOF'&lt;br /&gt;
* Run as First Admin User:&lt;br /&gt;
 &amp;lt;pre&amp;gt;su $FUSER -c command&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Redirect to specific URL (change ''url='' to desired path (i.e. &amp;lt;nowiki&amp;gt;http://appname/appdirectory&amp;lt;/nowiki&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;echo '&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Your Page Title&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;REFRESH&amp;quot; content=&amp;quot;0;url=http://www.the-domain-you-want-to-redirect-to.com&amp;quot;&amp;gt;&amp;lt;/HEAD&amp;gt;&lt;br /&gt;
&amp;lt;BODY&amp;gt;&lt;br /&gt;
Optional page text here.&lt;br /&gt;
&amp;lt;/BODY&amp;gt;&lt;br /&gt;
&amp;lt;/HTML&amp;gt;' &amp;gt; html/index.html&lt;br /&gt;
chown apache:users html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Netboot [[Netboot_Template|App Template]]&lt;br /&gt;
&lt;br /&gt;
===Platform Services Feature===&lt;br /&gt;
The server list is a list of service descriptions one per platform&lt;br /&gt;
* Only one service is allowed per platform.  Example:  f14(sshd) u1204(ssh:sshd.pid)&lt;br /&gt;
* No platform parenthesis means it applies to all platforms&lt;br /&gt;
* Once exactly one service is picked based on the platform, it's the name of the service in that platform&lt;br /&gt;
* Name is required, and it may be optionally followed by a pid file path&lt;br /&gt;
* If:&lt;br /&gt;
** file path does not start with / it's taken to be relative to /var/run/ (i.e. named/named.pid -&amp;gt; /var/run/named/named.pid)&lt;br /&gt;
** pid file path starts with /, then it's used as is&lt;br /&gt;
** no pid file path specified, then the pid file is assume to be /var/run/&amp;lt;name&amp;gt;.pid&lt;br /&gt;
** does not exist, otherwise the platform will do a pgrep &amp;lt;name&amp;gt;&lt;br /&gt;
** returns something, it's assumed it will be valid PIDs for that service&lt;br /&gt;
* not that this is not recommended as pgrep may pick up other processes running by a name containing &amp;lt;name&amp;gt;, e.g., ssh-agent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt;  ONLY service name is supported Fedora 14, i.e. f14(sshd).&lt;/div&gt;</summary>
		<author><name>Peter Katelaan</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.amahi.org/index.php?title=Web_App_Packaging_Notes&amp;diff=69512</id>
		<title>Web App Packaging Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.amahi.org/index.php?title=Web_App_Packaging_Notes&amp;diff=69512"/>
		<updated>2013-03-23T09:09:23Z</updated>

		<summary type="html">&lt;p&gt;Peter Katelaan: /* Custom .htaccess File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Database Restore ===&lt;br /&gt;
* Install Script:&lt;br /&gt;
 # Check for backup of old version database&lt;br /&gt;
 if [ -f /var/hda/dbs/latest-appname.bz2 ]; then&lt;br /&gt;
    # Import old version database&lt;br /&gt;
    bzcat latest-app.bz2 |mysql -uapp -papp app&lt;br /&gt;
 else&lt;br /&gt;
    # Insert new version database&lt;br /&gt;
    mysql -uappname -pappname appname &amp;lt; appname.sql;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
'''NOTE:'''   if statement switches are:&lt;br /&gt;
&amp;lt;blockquote&amp;gt; '''-d''':  directory&amp;lt;br /&amp;gt;&lt;br /&gt;
 '''-f''':  file&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== App Start on Boot ===&lt;br /&gt;
* Install Script:&lt;br /&gt;
 /usr/bin/crontab -l &amp;gt; apache-crontab;&lt;br /&gt;
 cat &amp;gt;&amp;gt; apache-crontab &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 @reboot /var/hda/web-apps/appname/html/startup.sh&lt;br /&gt;
 EOF&lt;br /&gt;
 /usr/bin/crontab apache-crontab;&lt;br /&gt;
 rm -rf apache-crontab;&lt;br /&gt;
* Uninstall Script:&lt;br /&gt;
 /usr/bin/crontab -l &amp;gt; apache-crontab;&lt;br /&gt;
 sed -i '/appname/d' apache-crontab;&lt;br /&gt;
 /usr/bin/crontab apache-crontab;&lt;br /&gt;
 rm -rf apache-crontab;&lt;br /&gt;
&lt;br /&gt;
=== Find and Rename .htaccess Files: ===&lt;br /&gt;
 find . -name .htaccess -exec mv {} {}.tmp \;&lt;br /&gt;
=== Add Server (Service) Feature ===&lt;br /&gt;
* Install Script (Fedora):&lt;br /&gt;
 cat &amp;gt; installscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 install -m 755 appname /etc/init.d/;&lt;br /&gt;
 /sbin/chkconfig appname on;&lt;br /&gt;
 /sbin/service appname start;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 installscript.sh;&lt;br /&gt;
 sudo ./installscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Install Script (Ubuntu):&lt;br /&gt;
 cat &amp;gt; installscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 install -m 755 appname /etc/init.d/;&lt;br /&gt;
 update-rc.d appname defaults;&lt;br /&gt;
 service appname start;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 installscript.sh;&lt;br /&gt;
 sudo ./installscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Uninstall Script (Fedora):&lt;br /&gt;
 mkdir elevated;&lt;br /&gt;
 cd elevated;&lt;br /&gt;
 cat &amp;gt; uninstallscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 /sbin/service appname stop;&lt;br /&gt;
 /sbin/chkconfig appname off;&lt;br /&gt;
 rm -f /etc/init.d/appname;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 uninstallscript.sh;&lt;br /&gt;
 sudo ./uninstallscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Uninstall Script (Ubuntu):&lt;br /&gt;
 mkdir elevated;&lt;br /&gt;
 cd elevated;&lt;br /&gt;
 cat &amp;gt; uninstallscript.sh &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 service appname stop;&lt;br /&gt;
 update-rc.d -f appname remove;&lt;br /&gt;
 rm -f /etc/init.d/appname;&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod 755 uninstallscript.sh;&lt;br /&gt;
 sudo ./uninstallscript.sh;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
* Change service run level, start, and stop priority:&lt;br /&gt;
Edit the service, i.e. ''/etc/init.d/adito'' and change the parameters (Run level: 0-6, start priority: 1-99, and stop priority: 1-99).&lt;br /&gt;
 # chkconfig: 2345 56 26&lt;br /&gt;
Execute the following command as '''root''' user:&lt;br /&gt;
 /sbin/chkconfig adito resetpriorities&lt;br /&gt;
&lt;br /&gt;
===Custom Webapp Options===&lt;br /&gt;
Edit /''etc/httpd/conf.d/####-appname.conf'' file (where '''####''' is a 4 digit number).  The web server will require restart to affect the changes.&lt;br /&gt;
* Change PHP Settings (add below ''ServerAlias''):&lt;br /&gt;
 &amp;lt;Files *.php&amp;gt;&lt;br /&gt;
 php_flag short_open_tag on&lt;br /&gt;
 php_flag magic_quotes_gpc Off&lt;br /&gt;
 php_flag magic_quotes_sybase Off&lt;br /&gt;
 php_flag magic_quotes_runtime Off&lt;br /&gt;
 php_flag register_globals Off&lt;br /&gt;
 php_flag session.auto_start Off&lt;br /&gt;
 php_flag suhosin.session.encrypt Off&lt;br /&gt;
 php_value upload_max_filesize 20M&lt;br /&gt;
 php_value post_max_size 100M&lt;br /&gt;
 php_value max_execution_time 300&lt;br /&gt;
 php_value zend.enable_gc off&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
* Apache mod_rewrite to allow use of .htaccess (replace similar lines above ''&amp;lt;/Directory&amp;gt;''):&lt;br /&gt;
 Options Indexes FollowSymLinks +ExecCGI&lt;br /&gt;
 AddHandler fcgid-script .fcg&lt;br /&gt;
 AllowOverride FileInfo Limit Options Indexes&lt;br /&gt;
 Order allow,deny&lt;br /&gt;
 Allow from all&lt;br /&gt;
* Redirect Webapp (add below ''ServerAlias''):&lt;br /&gt;
&amp;lt;pre&amp;gt;ProxyPass / http://hda:10000/&lt;br /&gt;
ProxyPassReverse / http://hda:10000/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;RedirectPermanent / http://hda:10000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Custom .htaccess File===&lt;br /&gt;
* Use of .htaccess for Webmin (requires '''Apache mod-rewrite''' step above):&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteCond %{SERVER_PORT} 80&lt;br /&gt;
 RewriteRule (.*) https://%{HTTP_HOST}:10000 [R,L]&lt;br /&gt;
&lt;br /&gt;
* Some Web-Applications/Frameworks come with a pre configured .htaccess file that is trying to set the AllowOverride Rule. This will result in the following error: ''.htaccess: AllowOverride not allowed here''. Remove AllowOverride from the .htaccess file and add it to the Directory area in your web-app conf.d file that it looks somewhat like this:&lt;br /&gt;
&lt;br /&gt;
 Options Indexes FollowSymLinks +ExecCGI&lt;br /&gt;
 AddHandler fcgid-script .fcg&lt;br /&gt;
 AllowOveride FileInfo Limit Options Indexes&lt;br /&gt;
 '''AllowOverride All'''&lt;br /&gt;
 Order allow,deny&lt;br /&gt;
 Allow from all&lt;br /&gt;
&lt;br /&gt;
===Special Instructions===&lt;br /&gt;
* Web Link Syntax:&lt;br /&gt;
 &amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.google.com&amp;lt;/nowiki&amp;gt;&amp;quot; target=&amp;quot;_&amp;quot;&amp;gt;Google&amp;lt;/a&amp;gt;&lt;br /&gt;
* User Log in:&lt;br /&gt;
&amp;lt;pre&amp;gt;The administrator login is:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name:  admin&amp;lt;br /&amp;gt;&lt;br /&gt;
Password:  admin&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Scripted Functions===&lt;br /&gt;
* Fully Qualified Domain Name:&lt;br /&gt;
 HSTNM=`hostname -f`&lt;br /&gt;
 HST=`echo $HSTNM | awk -F'.' '{print $1}'`&lt;br /&gt;
 GRP=`echo $HSTNM | awk -F'.' '{print $2}'`&lt;br /&gt;
 DOM=`echo $HSTNM | awk -F'.' '{print $3}' | sed 's/\..*//'`&lt;br /&gt;
 if [$DOM == &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;]; then&lt;br /&gt;
  DOMNM='home.com'&lt;br /&gt;
 else&lt;br /&gt;
  DOMNM=$GRP'.'$DOM&lt;br /&gt;
 fi&lt;br /&gt;
* Arch (32- or 64-bit):&lt;br /&gt;
 export ARCH=`getconf LONG_BIT`&lt;br /&gt;
 if [  &amp;quot;$ARCH&amp;quot; = &amp;quot;64&amp;quot; ]; then&lt;br /&gt;
   # 64-bit&lt;br /&gt;
 else&lt;br /&gt;
   # 32-bit&lt;br /&gt;
 fi&lt;br /&gt;
* HDA Domain Name:&lt;br /&gt;
 export HDADOM=`cat /etc/resolv.conf | grep 'search' | awk '{ print $2 }'`;&lt;br /&gt;
* HDA IP Address:&lt;br /&gt;
 export HDAIP=`ifconfig eth0 | grep &amp;quot;inet addr&amp;quot; | awk '{ print $2 }' | awk 'BEGIN { FS=&amp;quot;:&amp;quot; } { print $2 }'`;&lt;br /&gt;
* First Admin User:&lt;br /&gt;
 export FUSER=`/var/hda/platform/html/script/first-admin` &lt;br /&gt;
or&lt;br /&gt;
 export FUSER=$(echo &amp;quot;SELECT login FROM users WHERE admin=1 ORDER BY id ASC LIMIT 1&amp;quot; | mysql hda_production -uamahihda -pAmahiHDARulez -s)&lt;br /&gt;
* Check OS Version:&lt;br /&gt;
 export FVER=`cat /etc/fedora-release | awk -F'release ' '{print $2}' | sed 's/(Laughlin)//'`;&lt;br /&gt;
 if [ $FVER == '14' ]; then&lt;br /&gt;
 ...&lt;br /&gt;
 fi&lt;br /&gt;
or&lt;br /&gt;
 export FVER=`cat /etc/fedora-release | awk -F'release ' '{print $2}' | sed 's/(Verne)//'`;&lt;br /&gt;
 if [ $FVER == '16' ]; then&lt;br /&gt;
 ...&lt;br /&gt;
 fi&lt;br /&gt;
* Install Ubuntu (DEB) or Fedora (RPM) package&lt;br /&gt;
 if [ -f /etc/fedora-release ]; then&lt;br /&gt;
 yum localinstall -y package.rpm --nogpgcheck&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ -f /etc/lsb-release ]; then&lt;br /&gt;
 dpkg -i package.deb&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
===Elevated Privileges (root)===&lt;br /&gt;
* Scripts can be run from '''/var/hda/web-apps/*/elevated''', '''/var/hda/apps/*/elevated''' or '''/var/hda/elevated''' directories.&lt;br /&gt;
 mkdir -p elevated;&lt;br /&gt;
 cd elevated;&lt;br /&gt;
 cat &amp;gt; my-elevated-script &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 ''...commands which need elevated privileges...''&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod +x my-elevated-script;&lt;br /&gt;
 sudo ./my-elevated-script;&lt;br /&gt;
 cd ..;&lt;br /&gt;
 rm -rf elevated;&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* Suppress Console Output&lt;br /&gt;
 command &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
* Remove Blank Lines From File&lt;br /&gt;
 sed -i '/^$/d' filename&lt;br /&gt;
* Insert line based on text1 (Previous Line)&lt;br /&gt;
 sed -i '/text1/ i\text2' /filename;&lt;br /&gt;
* Patch Comment:&lt;br /&gt;
 # FIXME - this needs to be hosted in dl.amahi.org prior to going live!&lt;br /&gt;
* AmahiSync Web Link:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://username.amahi.me/Public/filename&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Patch Diff:&lt;br /&gt;
&amp;lt;pre&amp;gt;diff -r -N -b -u html.orig html &amp;gt; app-patch.diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
 patch -s -p0 -E &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 ''.... contents of app-patch.diff here ....''&lt;br /&gt;
 'EOF'&lt;br /&gt;
&amp;lt;pre&amp;gt;patch -p0 -E &amp;lt; app-patch.diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Cat EOF:&lt;br /&gt;
with variables&lt;br /&gt;
 cat &amp;gt; test &amp;lt;&amp;lt; EOF&lt;br /&gt;
 ... text goes here ... &lt;br /&gt;
 EOF&lt;br /&gt;
and without variables&lt;br /&gt;
 cat &amp;gt; test &amp;lt;&amp;lt; 'EOF'&lt;br /&gt;
 ... text goes here ...&lt;br /&gt;
 'EOF'&lt;br /&gt;
* Run as First Admin User:&lt;br /&gt;
 &amp;lt;pre&amp;gt;su $FUSER -c command&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Redirect to specific URL (change ''url='' to desired path (i.e. &amp;lt;nowiki&amp;gt;http://appname/appdirectory&amp;lt;/nowiki&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;echo '&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Your Page Title&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;REFRESH&amp;quot; content=&amp;quot;0;url=http://www.the-domain-you-want-to-redirect-to.com&amp;quot;&amp;gt;&amp;lt;/HEAD&amp;gt;&lt;br /&gt;
&amp;lt;BODY&amp;gt;&lt;br /&gt;
Optional page text here.&lt;br /&gt;
&amp;lt;/BODY&amp;gt;&lt;br /&gt;
&amp;lt;/HTML&amp;gt;' &amp;gt; html/index.html&lt;br /&gt;
chown apache:users html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Netboot [[Netboot_Template|App Template]]&lt;br /&gt;
&lt;br /&gt;
===Platform Services Feature===&lt;br /&gt;
The server list is a list of service descriptions one per platform&lt;br /&gt;
* Only one service is allowed per platform.  Example:  f14(sshd) u1204(ssh:sshd.pid)&lt;br /&gt;
* No platform parenthesis means it applies to all platforms&lt;br /&gt;
* Once exactly one service is picked based on the platform, it's the name of the service in that platform&lt;br /&gt;
* Name is required, and it may be optionally followed by a pid file path&lt;br /&gt;
* If:&lt;br /&gt;
** file path does not start with / it's taken to be relative to /var/run/ (i.e. named/named.pid -&amp;gt; /var/run/named/named.pid)&lt;br /&gt;
** pid file path starts with /, then it's used as is&lt;br /&gt;
** no pid file path specified, then the pid file is assume to be /var/run/&amp;lt;name&amp;gt;.pid&lt;br /&gt;
** does not exist, otherwise the platform will do a pgrep &amp;lt;name&amp;gt;&lt;br /&gt;
** returns something, it's assumed it will be valid PIDs for that service&lt;br /&gt;
* not that this is not recommended as pgrep may pick up other processes running by a name containing &amp;lt;name&amp;gt;, e.g., ssh-agent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt;  ONLY service name is supported Fedora 14, i.e. f14(sshd).&lt;/div&gt;</summary>
		<author><name>Peter Katelaan</name></author>
		
	</entry>
</feed>