#!/bin/bash # # vhost-stack # https://git.stack-source.com/msb/vhost-stack # Copyright (c) 2022 Matthew Saunders Brown # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # load include file source $(dirname $0)/vhost.sh help() { thisfilename=$(basename -- "$0") echo "Add virtualhost to this server." echo "" echo "usage: $thisfilename -d -u [-f ] [-h]" echo "" echo " -h Print this help." echo " -d Domain name to add as a VirtualHost. www. subdomain is automatically aliased." echo " -u Username to install VirtualHost for. Username must already exist." echo " -f PHP-FPM version to enable. Optional, defaults to default PHP version." echo " If need be run vhost-user-add.sh first." echo " Or use vhost-deploy.sh instead to automatically generate username." } vhost:getoptions "$@" # check for domain (virtualhost) if [[ -z $domain ]]; then echo "domain is required" exit fi # check for username if [[ -z $username ]]; then echo "username is required" exit fi # set php-fpm to default php version, if not otherwise specified if [[ -z $fpm ]]; then vhost::set-phpVersion fpm=$phpVersion fi if [[ ! -d /home/$username ]]; then echo "home dir for $username does not exist" exit 1 fi if [[ -d /srv/www/$domain ]]; then chown $username:$username /srv/www/$domain chmod 755 /srv/www/$domain else install -d -o $username -g $username -m 755 /srv/www/$domain fi if [[ -d /srv/www/$domain/html ]]; then chown $username:$username /srv/www/$domain/html chmod 755 /srv/www/$domain/html else install -d -o $username -g $username -m 755 /srv/www/$domain/html fi if [[ ! -e /home/$username/$domain ]]; then ln -s /srv/www/$domain /home/$username/$domain chown -h $username:$username /home/$username/$domain fi if [[ -d /usr/jails/$username ]]; then if [[ ! -d /usr/jails/$username/srv/www/$domain ]]; then install -d -o $username -g $username -m 755 /usr/jails/$username/srv/www/$domain mount --bind /srv/www/$domain /usr/jails/$username/srv/www/$domain echo "/srv/www/$domain /usr/jails/$username/srv/www/$domain none bind 0 0" >> /etc/fstab.jails # ensure php-fpm is chrooted. should have already been set when user was initially jailed if [[ -f /etc/php/$fpm/fpm/pool.d/$username.conf ]]; then if ! /bin/grep -q "^chroot" /etc/php/$fpm/fpm/pool.d/$username.conf; then echo "chroot = /usr/jails/$username" >> /etc/php/$fpm/fpm/pool.d/$username.conf fi fi fi fi # create & enable apache config /usr/local/bin/vhost-enable.sh -d $domain -m VHostHTTP -f $fpm