SME Site Maker

From SME Server


This script is designed to help you when create a new web site under /opt directory. If you want to create a site under an ibay, do not use this script. The main purpose is to automate the time consuming (and sometimes confusing) process of installing an application to the /opt directory. If you do not use SMESiteMaker you must create the dir, conf files, and DB configs manually from the command line. With SMESiteMaker, you only have to answer the questions in the wizard.

The script creates the basic environment for your site, such as directory, permissions, apache configuration, add, replace or leave databases and user, and restart the pertinent services. Of course you can edit the final config file (under /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/99SMESiteMaker_yourconfname) to add your own parameters, but generally default is ok.


The latest version of smeserver-sitemaker is available in the SME repository, click on the version number(s) for more information.


yum --enablerepo=smecontribs install smeserver-sitemaker


yum remove smeserver-sitemaker


Type at command prompt:


The script gives you information and prompts for answers at each step.

Reverting changes

If you make a mistake or want to revert the changes, first remove the directory you choose to locate your site under /opt. Then remove the file /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/99SMESiteMaker_yourconfname. If you create a DB then remove DB and User if they are new and no longer needed.

Finally expand template and restart the service:

expand-template /etc/httpd/conf/httpd.conf
/etc/init.d/httpd-e-smith restart

Adding functionality?

If you improve or add new functions to the script, please update this wiki page and upload the new version at Bugzilla:2975.

Comments & Support

Please, use this thread in the forum for questions or comments: New SME SM thread

Old SME SM thread

Screen Capture



You can improve the script adding new functions, and specially re-writing my bad english text strings.

You can add functions to handle perl, and custom apache and php directives.

The idea of this script can be used as the new panel development, for add and configure the web site via server-manager.

Here I list the variables used into the script and their signify:

$files_root - Root directory name
$f_root - Root Pathname
$alias_root - HTTP alias choosed
$a_root - HTTP alias configured
$f_ssl - Flag SSLRequireSSL on
$f_idx - Flag Indexes
$f_aov - Flag AllowOverride
$f_php - Flag PHP
$f_fop - Flag allow_url_fopen
$f_eac - Flag Eaccelerator
$f_rgl - Flag register_globals
$f_obd - Flag open_basedir
$open_bd - Open Basedir directories
$fopt - Temp var used in Options
$f_cgi - Flag CGI
$f_cgisamedir - Flag indicating cgi dir is the same as root dir
$cgi_root - CGI directory name
$c_root - CGI pathname configured
$calias_root - CGI alias choosed
$ca_root - Add "/" in CGI Alias
$db_on - Flag MySQL
$db_host - host db
$db_name - name db
$db_pass - pass db
$db_user - user db
$query_file - temp query file
$db_new - temp variable new db
$db_unew - temp variable new user
$custom_httpd_dir - /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
$conf_name - Name for this configuration
$c_name - 99SMESiteMaker_$conf_name
$c_file - $custom_httpd_dir/$c_name


# Author: Normando Hall (PicsOne)
# Status
# Version: 2.0.1-3
# 20/10/2007  (d/m/Y)
# Changelog
# 2.0.1-3 (by Normando Hall)
# Fix f_fop f_rgl flags and their settings
# Fix SSLRequireSSL directive
# Change for cgi. If you specify a directory
# then create under root dir, and set with ScripAlias
# directive. If not, we assume you can use the root dir
# to execute cgi scripts, so we avoid the use of ScriptAlias
# and use the Options +ExecCGI directive plus
# AddHandler cgi-script .cgi .pl
# Added a warning about white spaces in names and diretories.
# 2.0.1 (by Normando Hall)
# Fix f_ssl message
# First rpm release
# 2.0 (reloaded) (by Normando Hall)
# Remove SME6 compatibility
# Fix root dir perms
# Improve instructions and visual
# Generate index.html for test and info purposes
# Fix some bugs
# Rename the script to smesm
# Secure some script functions
# 1.7 (by Normando Hall)
# Fix some bugs with MySQL database and users already exists
# Set debug output to /opt
# Added SME6 support
# Improve some functions
# Stylize prompt
# 1.5 (by Normando Hall)
# Fix some bugs with CGI dir
# Added full mysql support
# 1.1 (by Normando Hall)
# Added php open_basedir restriction
# Set debug variable
# 1.0 (by Normando Hall)
# Initial release