4,499 bytes added
	
		,  02:34, 20 March 2011
	
 
=== Database Restore ===
* Install Script:
 # Check for backup of old version database
 if [ -f /var/hda/dbs/latest-appname.bz2 ]; then
    # Import old version database
    bzcat latest-app.bz2 |mysql -uapp -papp app
 else
    # Insert new version database
    mysql -uappname -pappname appname < appname.sql;
 fi
'''NOTE:'''   if statement switches are:
<blockquote> '''-d''':  directory<br />
 '''-f''':  file</blockquote>
=== App Start on Boot ===
* Install Script:
 /usr/bin/crontab -l > apache-crontab;
 cat >> apache-crontab << 'EOF'
 @reboot /var/hda/web-apps/appname/html/startup.sh
 EOF
 /usr/bin/crontab apache-crontab;
 rm -rf apache-crontab;
* Uninstall Script:
 /usr/bin/crontab -l > apache-crontab;
 sed -i '/appname/d' apache-crontab;
 /usr/bin/crontab apache-crontab;
 rm -rf apache-crontab;
=== Find and Rename .htaccess Files: ===
 find . -name .htaccess -exec mv {} {}.tmp \;
=== Add Server (Service) Feature ===
* Install Script:
 cat > installscript.sh << 'EOF'
 install -m 755 appname /etc/init.d/;
 /sbin/chkconfig appname on;
 /sbin/service appname start;
 EOF
 chmod 755 installscript.sh;
 sudo ./installscript.sh;
 cd ..;
 rm -rf elevated;
* Uninstall Script:
 mkdir elevated;
 cd elevated;
 cat > uninstallscript.sh << 'EOF'
 /sbin/service appname stop;
 /sbin/chkconfig appname off;
 rm -f /etc/init.d/appname;
 EOF
 chmod 755 uninstallscript.sh;
 sudo ./uninstallscript.sh;
 cd ..;
 rm -rf elevated;
* Example [[Init_scripts|Init Scripts]] (services)
* Change service run level, start, and stop priority:
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).
 # chkconfig: 2345 56 26
Execute the following command as '''root''' user:
 /sbin/chkconfig adito resetpriorities
===Custom Webapp Options===
* Change PHP Settings:
 <Files *.php>
 php_flag short_open_tag on
 php_flag magic_quotes_gpc Off
 php_flag magic_quotes_sybase Off
 php_flag magic_quotes_runtime Off
 php_flag register_globals Off
 php_flag session.auto_start Off
 php_flag suhosin.session.encrypt Off
 php_value upload_max_filesize 20M
 php_value post_max_size 100M
 php_value max_execution_time 300
 php_value zend.enable_gc off
 </Files>
* Apache mod_rewrite (allow use of .htaccess):
 Options Indexes FollowSymLinks +ExecCGI
 AddHandler fcgid-script .fcg
 AllowOverride FileInfo Limit Options Indexes
 Order allow,deny
 Allow from all
* Redirect Webapp:
<pre>ProxyPass / http://hda:10000/
ProxyPassReverse / http://hda:10000/</pre>
<pre>RedirectPermanent / http://hda:10000</pre>
===Special Instructions===
* Web Link Syntax:
 <a href="<nowiki>http://www.google.com</nowiki>" target="_">Google</a>
* User Log in:
<pre>The administrator login is:<br />
<blockquote>
<code>
Name:  admin<br />
Password:  admin<br />
<br />
</code>
</blockquote></pre>
===Scripted Functions===
* Fully Qualified Domain Name:
 HSTNM=`hostname -f`
 HST=`echo $HSTNM | awk -F'.' '{print $1}'`
 GRP=`echo $HSTNM | awk -F'.' '{print $2}'`
 DOM=`echo $HSTNM | awk -F'.' '{print $3}' | sed 's/\..*//'`
 if [$DOM == <nowiki>''</nowiki>]; then
  DOMNM='home.com'
 else
  DOMNM=$GRP'.'$DOM
 fi
* Arch (32- or 64-bit):
 export MACHINE_TYPE=`uname -m`;
 echo $MACHINE_TYPE > arch.txt;
 if [ ${MACHINE_TYPE} == 'x86_64' ]; then
  # 64-bit
 else
  # 32-bit
 fi
* HDA IP Address:
 export HDAIP=`ifconfig eth0 | grep "inet addr" | awk '{ print $2 }' | awk 'BEGIN { FS=":" } { print $2 }'`;
* First Admin User:
 export FUSER=`/var/hda/platform/html/script/first-admin`
===Elevated Privileges (root)===
* Scripts can be run from '''/var/hda/web-apps/*/elevated''', '''/var/hda/apps/*/elevated''' or '''/var/hda/elevated''' directories.
 mkdir -p elevated;
 cd elevated;
 cat > my-elevated-script << 'EOF'
 ''...commands which need elevated privileges...''
 EOF
 chmod +x my-elevated-script;
 sudo ./my-elevated-script;
 cd ..;
 rm -rf elevated;
===Miscellaneous===
* Patch Comment:
 # FIXME - this needs to be hosted in dl.amahi.org prior to going live!
* AmahiSync Web Link:
 <nowiki>http://username.amahi.me/Public/mirror/filename</nowiki>
* Patch Diff:
<pre>diff -r -N -b -u html.orig html > app-patch.diff</pre>
 patch -s -p0 -E << 'EOF'
 ''.... contents of app-patch.diff here ....''
 'EOF'
<pre>patch -p0 -E < app-patch.diff</pre>
* Cat EOF:
with variables
 cat > test << EOF
 ... text goes here ... 
 EOF
and without variables
 cat > test << 'EOF'
 ... text goes here ...
 'EOF'
* Run as First Admin User:
 <pre>su $FUSER -c command</pre>