parent
921d2f49ef
commit
3ef82a908a
5 changed files with 335 additions and 0 deletions
@ -0,0 +1,195 @@ |
||||
: ${NGINX_DIR:=/etc/nginx} |
||||
: ${NGINX_VHOST_TEMPLATE:=$ZSH/plugins/nginx/templates/symfony2} |
||||
|
||||
if [ $use_sudo -eq 1 ]; then |
||||
sudo="sudo" |
||||
else |
||||
sudo="" |
||||
fi |
||||
|
||||
# nginx basic completition |
||||
|
||||
_nginx_get_en_command_list () { |
||||
ls -a $NGINX_DIR/sites-available | awk '/^[a-z][a-z.-]+$/ { print $1 }' |
||||
} |
||||
|
||||
_nginx_get_dis_command_list () { |
||||
ls -a $NGINX_DIR/sites-enabled | awk '/^[a-z][a-z.-]+$/ { print $1 }' |
||||
} |
||||
|
||||
_nginx_en () { |
||||
compadd `_nginx_get_en_command_list` |
||||
} |
||||
|
||||
_nginx_dis () { |
||||
compadd `_nginx_get_dis_command_list` |
||||
} |
||||
|
||||
# Enabling a site |
||||
en () { |
||||
if [ ! $1 ]; then |
||||
echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m"; |
||||
return |
||||
fi |
||||
|
||||
if [ ! -e $NGINX_DIR/sites-available/$1 ]; then |
||||
echo "\033[31m$1\033[0m doesn't exist"; |
||||
return |
||||
fi |
||||
|
||||
if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then |
||||
$sudo ln -s $NGINX_DIR/sites-available/$1 $NGINX_DIR/sites-enabled/$1; |
||||
if [ -e /etc/nginx/sites-enabled/$1 ]; then |
||||
echo "\033[32m$1\033[0m successfully enabled"; |
||||
else |
||||
echo "An error occured during the enabling of \033[31m$1\033[0m"; |
||||
fi |
||||
else |
||||
echo "\033[31m$1\033[0m is already enabled"; |
||||
fi |
||||
} |
||||
compdef _nginx_en en |
||||
|
||||
# Disabling a site |
||||
dis () { |
||||
if [ ! $1 ]; then |
||||
echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m"; |
||||
return |
||||
fi |
||||
|
||||
if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then |
||||
echo "\033[31m$1\033[0m doesn't exist"; |
||||
else |
||||
$sudo rm -f $NGINX_DIR/sites-enabled/$1; |
||||
if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then |
||||
echo "\033[32m$1\033[0m successfully disabled"; |
||||
else |
||||
echo "An error occured during the disabling of \033[31m$1\033[0m"; |
||||
fi |
||||
fi |
||||
} |
||||
compdef _nginx_dis dis |
||||
|
||||
# Completition of vhost |
||||
_nginx_get_possible_vhost_list () { |
||||
ls -a $HOME/www | awk '/^[^.][a-z0-9._]+$/ { print $1 }' |
||||
} |
||||
|
||||
_nginx_vhost () { |
||||
compadd `_nginx_get_possible_vhost_list` |
||||
} |
||||
|
||||
# Parsing arguments |
||||
vhost () { |
||||
user=$USER; |
||||
template=$NGINX_VHOST_TEMPLATE |
||||
tpl="non_existing_template" |
||||
enable=1 |
||||
write_hosts=0 |
||||
args="" |
||||
|
||||
while getopts ":lu:t:nwh" option |
||||
do |
||||
case $option in |
||||
l ) ls $NGINX_DIR/sites-enabled; return ;; |
||||
u ) user=$OPTARG; args="$args -u $OPTARG" ;; |
||||
t ) tpl=$OPTARG; args="$args -t $OPTARG" ;; |
||||
n ) enable=0; args="$args -n" ;; |
||||
w ) write_hosts=1; args="$args -w" ;; |
||||
h ) _vhost_usage; return ;; |
||||
esac |
||||
done |
||||
|
||||
vhost=${@: -1} |
||||
vhostNotGiven=0 |
||||
|
||||
if [ ! $vhost ]; then |
||||
vhostNotGiven=1 |
||||
else |
||||
if [ $(echo $args | grep -o $vhost) ]; then |
||||
vhostNotGiven=1 |
||||
fi |
||||
fi |
||||
|
||||
if [ $vhostNotGiven -eq 1 ]; then |
||||
echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m" |
||||
return |
||||
fi |
||||
|
||||
if [ -e $ZSH/plugins/nginx/templates/$tpl ]; then |
||||
template=$ZSH/plugins/nginx/templates/$tpl |
||||
elif [ -e $tpl ]; then |
||||
template=$tpl |
||||
fi |
||||
|
||||
_vhost_generate $vhost $user |
||||
|
||||
if [ $enable -eq 1 ]; then |
||||
en $vhost |
||||
fi |
||||
|
||||
if [ $write_hosts -eq 1 ]; then |
||||
_write_hosts $vhost |
||||
fi |
||||
} |
||||
compdef _nginx_vhost vhost |
||||
|
||||
_vhost_usage () { |
||||
echo "Usage: vhost [options] [vhost_name]" |
||||
echo |
||||
echo "Options" |
||||
echo " -l Lists enabled vhosts" |
||||
echo " -u Sets the user - defaults to the current user ($USER)" |
||||
echo " -t Sets the template" |
||||
echo " -n Does not enable the generated vhost" |
||||
echo " -w Write the vhost to the /etc/hosts file pointing to 127.0.0.1 (writes it at the end of the first line actually)" |
||||
echo " -h Get this help message" |
||||
return |
||||
} |
||||
|
||||
# Generate config file |
||||
_vhost_generate () { |
||||
user=$(cat /etc/passwd | grep $2 | awk -F : '{print $1 }') |
||||
|
||||
if [ ! $user ]; then |
||||
echo "User \033[31m$2\033[0m doesn't have an account on \033[33m$HOST\033[0m" |
||||
return |
||||
fi |
||||
|
||||
echo "Generating \033[32m$1\033[0m vhost for \033[33m$user\033[0m user" |
||||
|
||||
user_id=$(cat /etc/passwd | grep $2 | awk -F : '{print $3 }') |
||||
pool_port=1$user_id |
||||
|
||||
conf=$(sed -e 's/{vhost}/'$1'/g' -e 's/{user}/'$user'/g' -e 's/{pool_port}/'$pool_port'/g' $template ) |
||||
|
||||
echo $conf > $1.tmp |
||||
$sudo mv $1.tmp $NGINX_DIR/sites-available/$1 |
||||
|
||||
if [ -e $NGINX_DIR/sites-available/$1 ]; then |
||||
echo "\033[32m$1\033[0m vhost has been successfully created" |
||||
else |
||||
echo "An error occured during the creating of \033[31m$1\033[0m vhost" |
||||
fi |
||||
} |
||||
|
||||
# Write the /etc/hosts file |
||||
_write_hosts () { |
||||
temp=$HOME/hosts.temp |
||||
exec < /etc/hosts |
||||
while read line |
||||
do |
||||
if [ -e $temp ]; then |
||||
echo "$line" >> $temp; |
||||
else |
||||
echo "$line $1" > $temp; |
||||
fi |
||||
done |
||||
|
||||
$sudo mv $temp /etc/hosts; |
||||
|
||||
"\033[32m$1\033[0m vhost has been successfully written in /etc/hosts" |
||||
} |
||||
|
||||
alias ngt="$sudo nginx -t" |
||||
alias ngr="$sudo service nginx restart" |
||||
@ -0,0 +1,27 @@ |
||||
server { |
||||
root /home/{user}/www/{vhost}; |
||||
index index.php; |
||||
|
||||
server_name {vhost}; |
||||
|
||||
error_log /var/log/nginx/{vhost}.error.log; |
||||
access_log /var/log/nginx/{vhost}.access.log; |
||||
|
||||
location / { |
||||
try_files $uri $uri/ $uri/index.php; |
||||
} |
||||
|
||||
location ~ \.php$ { |
||||
include fastcgi_params; |
||||
fastcgi_index index.php; |
||||
fastcgi_pass 127.0.0.1:{pool_port}; |
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$; |
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
||||
fastcgi_param HTTPS off; |
||||
} |
||||
|
||||
location ~ /\.ht { |
||||
deny all; |
||||
} |
||||
} |
||||
@ -0,0 +1,27 @@ |
||||
server { |
||||
root /home/{user}/www/{vhost}/web; |
||||
index app_dev.php; |
||||
|
||||
server_name {vhost}; |
||||
client_max_body_size 10M; |
||||
|
||||
error_log /var/log/nginx/{vhost}.error.log; |
||||
access_log /var/log/nginx/{vhost}.access.log; |
||||
|
||||
location / { |
||||
try_files $uri $uri/ /app_dev.php; |
||||
} |
||||
|
||||
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:{pool_port} |
||||
location ~ ^/(app|app_dev|check)\.php(/|$) { |
||||
fastcgi_pass 127.0.0.1:{pool_port}; |
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$; |
||||
include fastcgi_params; |
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
||||
fastcgi_param HTTPS off; |
||||
} |
||||
|
||||
location ~ /\.ht { |
||||
deny all; |
||||
} |
||||
} |
||||
@ -0,0 +1,75 @@ |
||||
: ${FPM_DIR:=/etc/php5/fpm} |
||||
|
||||
if [ $use_sudo -eq 1 ]; then |
||||
sudo="sudo" |
||||
else |
||||
sudo="" |
||||
fi |
||||
|
||||
_fpm_get_possible_pool_list () { |
||||
cat /etc/passwd | awk -F : '{print $1 }' |
||||
} |
||||
|
||||
_fpm_pool () { |
||||
compadd `_fpm_get_possible_pool_list` |
||||
|
||||
} |
||||
|
||||
pool () { |
||||
while getopts ":lh" option |
||||
do |
||||
case $option in |
||||
l ) ls $FPM_DIR/pool.d; return ;; |
||||
h ) _pool_usage; return ;; |
||||
* ) _pool_usage; return ;; # Default. |
||||
esac |
||||
done |
||||
|
||||
if [ ! $1 ]; then |
||||
user=$USER |
||||
else |
||||
user=$1 |
||||
fi |
||||
|
||||
_pool_generate $user |
||||
} |
||||
compdef _fpm_pool pool |
||||
|
||||
_pool_usage () { |
||||
echo "Usage: pool [options] [user]" |
||||
echo |
||||
echo "Options" |
||||
echo " -l Lists fpm pools" |
||||
echo " -h Get this help message" |
||||
return |
||||
} |
||||
|
||||
_pool_generate () { |
||||
user=$(cat /etc/passwd | grep $1 | awk -F : '{print $1 }') |
||||
|
||||
if [ ! $user ]; then |
||||
echo "User \033[31m$1\033[0m doesn't have an account on \033[33m$HOST\033[0m" |
||||
return |
||||
fi |
||||
|
||||
group=$(groups $user | cut -d " " -f 3) |
||||
|
||||
echo "Generating pool for \033[33m$user\033[0m user with \033[33m$group\033[0m group" |
||||
|
||||
user_id=$(cat /etc/passwd | grep $1 | awk -F : '{print $3 }') |
||||
pool_port=1$user_id |
||||
: ${FPM_POOL_TEMPLATE:=$ZSH/plugins/php-fpm/templates/pool} |
||||
|
||||
conf=$(sed -e 's/{user}/'$user'/g' -e 's/{group}/'$group'/g' -e 's/{pool_port}/'$pool_port'/g' $FPM_POOL_TEMPLATE ) |
||||
|
||||
echo $conf > $user.conf |
||||
$sudo mv $user.conf $FPM_DIR/pool.d/$user.conf |
||||
|
||||
if [ -e $FPM_DIR/pool.d/$user.conf ]; then |
||||
echo "Pool for \033[32m$user\033[0m user has been successfully created" |
||||
else |
||||
echo "An error occured during the creating of pool for \033[31m$user\033[0m user" |
||||
fi |
||||
} |
||||
|
||||
alias fpmr="$sudo service php5-fpm restart" |
||||
@ -0,0 +1,11 @@ |
||||
[{user}] |
||||
user = {user} |
||||
group = {group} |
||||
|
||||
listen = 127.0.0.1:{pool_port} |
||||
|
||||
pm = dynamic |
||||
pm.max_children = 10 |
||||
pm.min_spare_servers = 1 |
||||
pm.max_spare_servers = 3 |
||||
pm.max_requests = 100 |
||||
Loading…
Reference in new issue