As [[Open_Terminal_as_root|root user]], perform the following steps:
* Build directory structure
<blockquote>{{code|mkdir -p /var/hda/web-apps/appname mkdir -p /var/hda/web-apps/appname/html mkdir -p /var/hda/web-apps/appname/logs chown -R apache:users /var/hda/web-apps/appname chown -R apache:users /var/hda/web-apps/appname/html touch /var/hda/web-apps/appname/logs/access_log touch /var/hda/web-apps/appname/logs/error_log chown -R /var/hda/web-apps/appname/logs/access_log chown -R /var/hda/web-apps/appname/logs/error_log}}</blockquote>
* Create Apache configuration file (9999 can be changed to any number, but recommend keep it above 2000 to be safe)
<blockquote>{{code|vi /etc/httpd/conf.d/9999-appname.conf}}</blockquote>
::Insert the text below (remember to change all occurrences of appname accordingly and the domain name amahi.net to match yours if needed)
<preblockquote>{{text|<VirtualHost *:80>
ServerName appname
ErrorLog /var/hda/web-apps/appname/logs/error_log
CustomLog /var/hda/web-apps/appname/logs/access_log combined env<nowiki>=</nowiki>!dontlog
</VirtualHost>}}</preblockquote>
::Change permissions and restart Apache
<blockquote>{{code|chown apache:users /etc/httpd/conf.d/9999-appname.conf service httpd restart}}</blockquote>
* Update Amahi 7 database settings
**The id field is set to 99 for this example. It can be any number not currently used by Amahi. Recommend you keep it at 99 or greater to be safe.<br />
**Ensure you replace appname accordingly and the date can be changed providing you follow the format. If you changed the .conf file name, ensure it matches as well.
**To do a quick check, you can do the following for each table:
<blockquote>{{code|echo "select max(id) from dns_aliases" <nowiki>| </nowiki> mysql -uroot -phda hda_production echo "select max(id) from webapps" <nowiki>| </nowiki> mysql -uroot -phda hda_production}}</blockquote>
::Once you have chosen the id number, execute the following
<blockquote>{{code|echo "INSERT INTO `dns_aliases` (`id`, `name`, `address`) VALUES(99, 'appname', '')" <nowiki>| </nowiki> mysql -uroot -phda hda_production echo "INSERT INTO `webapps` (`id`, `name`, `path`, `kind`, `aliases`, `fname`, `deletable`, `login_required`, `dns_alias_id`, `custom_options`, `created_at`, `updated_at`) VALUES(99, 'appname', '/var/hda/web-apps/appname', '', '', '9999-appname.conf', 0, 0, 99, NULL, '2013-11-17 12:00:00', '2013-11-17 12:00:00')" <nowiki>| </nowiki> mysql -uroot -phda hda_production}}</blockquote>
* Create a test file
<blockquote>{{code|vi /var/hda/web-apps/appname/html/index.html}}</blockquote>
::Insert the text below
<preblockquote>{{text|<!DOCTYPE html>
<html>
<body>
</body>
</html>}}</preblockquote>
::Set the correct permissions on the file
<blockquote>{{code|chown apache:users /var/hda/web-apps/appname/html/index.html}}</blockquote>
* Test your new web app by entering <b><nowiki>http://appname</nowiki></b> in your browser. If all goes well, you should see the test page. If you have problems, retrace your steps. Ensure you replaced all occurrences of appname accordingly and the id field in both tables match.