vhost creating with php5-fcgi for apache2
#!/bin/sh
ROOT_WWW="/var/www"
ROOT_USER="$ROOT_WWW/$1"
NAME_DOCS="htdocs"
useradd -d "$ROOT_WWW/$1" $1
adduser www-data $1
mkdir -p "$ROOT_USER/conf"
mkdir "$ROOT_USER/$NAME_DOCS"
mkdir "$ROOT_USER/logs"
mkdir "$ROOT_USER/tmp"
mkdir "$ROOT_USER/php-fcgi"
chmod 750 "$ROOT_USER"
chown "root:$1" $ROOT_USER
chown -R "$1:$1" "$ROOT_USER/$NAME_DOCS"
chown "$1:$1" "$ROOT_USER/conf"
chown "$1:$1" "$ROOT_USER/tmp"
chown "$1:$1" "$ROOT_USER/logs"
chown "$1:$1" "$ROOT_USER/php-fcgi"
chmod -R 750 "$ROOT_USER/$NAME_DOCS"
chmod 750 "$ROOT_USER/tmp"
chmod 750 "$ROOT_USER/logs"
chmod 750 "$ROOT_USER/php-fcgi"
chmod 550 "$ROOT_USER/conf"
cp php.ini "$ROOT_USER/conf/"
# in my php.ini I set --VHOST-- to wherever the vhost belongs e.g:
# open_basedir = /var/www/--VHOST--/htdocs/:/var/--VHOST--/tmp/
# upload_tmp_dir = /var/www/--VHOST--/tmp
# session.save_path = /var/www/--VHOST--/tmp
sed 's/--VHOST--/$1/g' "$ROOT_USER/conf/php.ini" > TMPFILE && mv TMPFILE "$ROOT_USER/conf/php.ini"
rm TMPFILE
chown $1:$1 "$ROOT_USER/conf/php.ini"
chmod 440 "$ROOT_USER/conf/php.ini"
cat > $ROOT_USER/php-fcgi/php-fcgi-starter << EOF
#!/bin/sh
PHPRC="$ROOT_USER/conf/"
export PHPRC
export TMPDIR=$ROOT_USER/tmp
exec /usr/bin/php5-cgi
EOF
chown $1:$1 $ROOT_USER/php-fcgi/php-fcgi-starter
chmod 750 $ROOT_USER/php-fcgi/php-fcgi-starter
chattr +i -V $ROOT_USER/php-fcgi/php-fcgi-starter
cat > /etc/apache2/sites-enabled/$1 << EOF
<VirtualHost *:80>
ServerAdmin webmaster@$1
ServerName $1
ServerAlias www.$1
SuexecUserGroup $1 $1
AddHandler fcgid-script .php
DocumentRoot "$ROOT_USER/$NAME_DOCS"
DirectoryIndex index.htm index.html index.php
<Directory "$ROOT_USER/$NAME_DOCS">
AllowOverride all
Options Indexes MultiViews FollowSymLinks +ExecCGI
FCGIWrapper $ROOT_USER/php-fcgi/php-fcgi-starter .php
Order allow,deny
allow from all
</Directory>
ErrorLog $ROOT_USER/logs/error.log
LogLevel warn
CustomLog $ROOT_USER/logs/access.log combined
ServerSignature On
</VirtualHost>
EOF
echo "CREATED VHOST $1"
# You should do:
# passwd $1
This is a little script I wrote a few minutes ago, it makes it really easy to create vhosts in your preferred directory :-) Saved me a lot of time so far!