Автоматом создать php5-cgi.ini

winsdor

Гуру форума
Регистрация
25 Май 2010
Сообщения
151
Реакции
59
Подскажите как сделать, чтобы при добавлении домена автоматом создавался файл php5-cgi.ini в папке cgi-bin домена и добавить в него нужные данные.
Ось Centos6, панель vestacp.
 
Последнее редактирование:
Можно в файле /bin/v-add-web-domain добавить в строке 154:
Код:
touch $HOMEDIR/$user/web/$domain/cgi-bin/php5-cgi.ini
А если какое то содержимое надо в этом файле, то предварительно создать его где нибудь на сервере и вместо создания выполнять копирование.
 
Можно в файле /bin/v-add-web-domain добавить в строке 154:
Код:
touch $HOMEDIR/$user/web/$domain/cgi-bin/php5-cgi.ini
А если какое то содержимое надо в этом файле, то предварительно создать его где нибудь на сервере и вместо создания выполнять копирование.
Спасибо, напиши пожалуста команду на копирование допустим из /usr/local
 
Нет у меня /bin/v-add-web-domain, а есть /usr/local/vesta/bin/v-add-web-domain (случайно нашел) и там не 154 строки
вот
#!/bin/bash
# info: add web/dns/mail domain
# options: USER DOMAIN [IP] [RESTART]
#
# The function adds web/dns/mail domain to a server.


#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#

# Argument definition
user=$1
domain=$2
ip=$3
restart="${4-yes}"

# Includes
source $VESTA/func/main.sh
source $VESTA/func/ip.sh
source $VESTA/conf/vesta.conf


#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER DOMAIN [IP] [RESTART]'
is_format_valid 'user' 'domain'
if [ ! -z "$ip" ] ; then
is_format_valid 'ip'
fi
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"


#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#

# Get ip if it wasn't defined
if [ -z "$ip" ]; then
get_user_ip
if [ -z "$ip" ]; then
check_result $E_NOTEXIST "no avaiable IP address"
fi
fi

# Working on web domain
if [ ! -z "$WEB_SYSTEM" ]; then
$BIN/v-add-web-domain $user $domain $ip 'no'
check_result $? "can't add web domain" >/dev/null
fi

# Working on DNS domain
if [ ! -z "$DNS_SYSTEM" ]; then
$BIN/v-add-dns-domain $user $domain $ip "" "" "" "" "" '' '' '' 'no'
check_result $? "can't add dns domain" >/dev/null
fi

# Working on mail domain
if [ ! -z "$MAIL_SYSTEM" ]; then
$BIN/v-add-mail-domain $user $domain
check_result $? "can't add mail domain" >/dev/null
fi

# Restarting services
if [ "$restart" != 'no' ]; then
$BIN/v-restart-web
check_result $? "can't restart web" > /dev/null
if [ ! -z "$PROXY_SYSTEM" ]; then
$BIN/v-restart-proxy
check_result $? "can't restart proxy" > /dev/null
fi
$BIN/v-restart-dns
check_result $? "can't restart dns" > /dev/null
fi


#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#

exit
Где здесь вставить?
 
Нет у меня /bin/v-add-web-domain, а есть /usr/local/vesta/bin/v-add-web-domain (случайно нашел) и там не 154 строки
вот
#!/bin/bash
# info: add web/dns/mail domain
# options: USER DOMAIN [IP] [RESTART]
#
# The function adds web/dns/mail domain to a server.


#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#

# Argument definition
user=$1
domain=$2
ip=$3
restart="${4-yes}"

# Includes
source $VESTA/func/main.sh
source $VESTA/func/ip.sh
source $VESTA/conf/vesta.conf


#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'USER DOMAIN [IP] [RESTART]'
is_format_valid 'user' 'domain'
if [ ! -z "$ip" ] ; then
is_format_valid 'ip'
fi
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"


#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#

# Get ip if it wasn't defined
if [ -z "$ip" ]; then
get_user_ip
if [ -z "$ip" ]; then
check_result $E_NOTEXIST "no avaiable IP address"
fi
fi

# Working on web domain
if [ ! -z "$WEB_SYSTEM" ]; then
$BIN/v-add-web-domain $user $domain $ip 'no'
check_result $? "can't add web domain" >/dev/null
fi

# Working on DNS domain
if [ ! -z "$DNS_SYSTEM" ]; then
$BIN/v-add-dns-domain $user $domain $ip "" "" "" "" "" '' '' '' 'no'
check_result $? "can't add dns domain" >/dev/null
fi

# Working on mail domain
if [ ! -z "$MAIL_SYSTEM" ]; then
$BIN/v-add-mail-domain $user $domain
check_result $? "can't add mail domain" >/dev/null
fi

# Restarting services
if [ "$restart" != 'no' ]; then
$BIN/v-restart-web
check_result $? "can't restart web" > /dev/null
if [ ! -z "$PROXY_SYSTEM" ]; then
$BIN/v-restart-proxy
check_result $? "can't restart proxy" > /dev/null
fi
$BIN/v-restart-dns
check_result $? "can't restart dns" > /dev/null
fi


#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#

exit
Где здесь вставить?
Перед exit можно.
 
Ну, ковырять файлы - последнее дело.

Можно просто положить файлы в /usr/local/vesta/data/templates/web/skel/ и при создании они будут скопированы в $HOMEDIR/$user/web/$domain/.
Код:
cp -r $WEBTPL/skel/* $HOMEDIR/$user/web/$domain/ >/dev/null 2>&1
Т.е. достаточно создать файл с нужным содержимым /usr/local/vesta/data/templates/web/skel/cgi-bin/php5-cgi.ini

Второй момент, раз уж речь про cgi (т.к. подразумевается апач).
Можно создать новый шаблон, для этого просто скопировать файлы шаблона с новым именем, например phpcgi.* -> phpcgi_new.* (так они не затрутся при обновлении) и дописать все нужное в файл сценария phpcgi_new.sh. Пример оригинального файла
Код:
#!/bin/bash
# Adding php wrapper
user="$1"
domain="$2"
ip="$3"
home_dir="$4"
docroot="$5"

wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'
wrapper_file="$home_dir/$user/web/$domain/cgi-bin/php"

echo "$wrapper_script" > $wrapper_file
chown $user:$user $wrapper_file
chmod -f 751 $wrapper_file

exit 0
Т.е. отредактировать файл и/или перед exit 0 дописать все нужное. Это более правильный вариант.
 
Да, все получилось, только я немножко ошибся и выложил под спойлер код не v-add-web-domain, а v-add-domain, а в нужном файле есть 154 строка, но я вставил в конце перед exit, как ты написал и все срабортало.
Еще раз спасибо.
 
Да, все получилось, только я немножко ошибся и выложил под спойлер код не v-add-web-domain, а v-add-domain, а в нужном файле есть 154 строка, но я вставил в конце перед exit, как ты написал и все срабортало.
Еще раз спасибо.
Как написал @Stesh будет правильней. Мне просто было лень разбираться в работе шаблонов VestaCP, давно панелью не пользуюсь.
 
cp /usr/local/php5-cgi.ini $HOMEDIR/$user/web/$domain/cgi-bin/php5-cgi.ini
.

Апну тему, меня устраивал вариант предложенный ykpon но теперь понадобилось разделить юзеров. Сейчас при создании домена любым юзером создается файл. Есть ли вариант на создание (копорование) файла при создании домена конкретным юзером, а не любым?
 
Последнее редактирование:
Назад
Сверху