12-03-2023
This commit is contained in:
215
apache_tools_v2.sh
Executable file
215
apache_tools_v2.sh
Executable file
@@ -0,0 +1,215 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
underline="\033[4m"
|
||||
red="\033[1;31m"
|
||||
green="\033[1;32m"
|
||||
yellow="\033[1;33m"
|
||||
bold="\033[1m"
|
||||
reset="\033[0m"
|
||||
|
||||
homebrew_path=$(brew --prefix)
|
||||
editeur=/usr/local/bin/bbedit
|
||||
|
||||
# apache
|
||||
v_apache=$(apachectl -v | sed -n '1p' | awk -F":" '{print $2}' | xargs)
|
||||
conf_apache=$(httpd -V | grep 'SERVER_CONFIG_FILE' | awk -F "\"" '{print $2}')
|
||||
document_root=$(grep -e '^DocumentRoot' "$conf_apache" | awk '{print $2}' | sed 's/\"//g')
|
||||
log_apa=$(grep -e '^ErrorLog' "$conf_apache" | awk -F "\"" '{print $2}')
|
||||
access_apa=$(grep -e 'CustomLog' "$conf_apache" | grep -v "#" | awk -F "\"" '{print $2}')
|
||||
vhost=$(grep -e 'httpd-vhosts.conf' "$conf_apache" | awk '{print $2}')
|
||||
ssl=$(grep -e 'httpd-ssl.conf' "$conf_apache" | awk '{print $2}')
|
||||
config_apache=()
|
||||
config_apache+=("$conf_apache")
|
||||
config_apache+=("$vhost")
|
||||
config_apache+=("$ssl")
|
||||
|
||||
|
||||
# PHP
|
||||
declare -a additionnal=()
|
||||
|
||||
add_ini() {
|
||||
|
||||
# Current php version (from httpd.conf)
|
||||
ip=$(grep -E SetHandler $conf_apache | grep -v \# | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}:[0-9]{4}")
|
||||
x=${ip: -2}
|
||||
current_simple_php_version="${x:0:1}.${x:1}"
|
||||
current_php_version="php@${x:0:1}.${x:1}"
|
||||
v_php=$($homebrew_path/opt/$current_php_version/bin/php -v)
|
||||
|
||||
php_ini="$homebrew_path/etc/php/$current_simple_php_version/php.ini"
|
||||
|
||||
conf_php=()
|
||||
conf_php+=("$php_ini")
|
||||
conf_php+=("$homebrew_path/etc/php/$current_simple_php_version/php-fpm.d/www.conf")
|
||||
|
||||
addconf_php=$(find "$homebrew_path/etc/php/$current_simple_php_version/conf.d" -name "*.ini" | sort -n)
|
||||
|
||||
z=0
|
||||
additionnal=()
|
||||
for i in $addconf_php
|
||||
do
|
||||
additionnal+=("$addconf_dir$i")
|
||||
done
|
||||
|
||||
conf_php+=(${additionnal[@]})
|
||||
}
|
||||
|
||||
|
||||
# MySQL
|
||||
my=$(mysql --help | grep -A1 'Default options' | grep '.my.cnf')
|
||||
conf_mysql=($my)
|
||||
v_mysql=$(mysql -V | awk -F"," '{print $1}' | xargs)
|
||||
|
||||
|
||||
# Functions
|
||||
error_log(){
|
||||
tail -f "$log_apa" &
|
||||
tailpid=$!
|
||||
sleep 0.25
|
||||
read -p "< Press Enter to quit tail ! >"
|
||||
|
||||
kill $tailpid
|
||||
}
|
||||
|
||||
acces_log(){
|
||||
tail -f "$access_apa" &
|
||||
tailpid=$!
|
||||
sleep 0.25
|
||||
read -p "< Press Enter to quit tail ! >"
|
||||
|
||||
kill $tailpid
|
||||
}
|
||||
|
||||
entete(){
|
||||
v_php_short=$(echo "$v_php" | sed -n '1p' )
|
||||
printf "Apache: %s\n" "$v_apache"
|
||||
printf "PHP: %s\n" "$v_php_short"
|
||||
printf "MySQL: %s\n" "$v_mysql"
|
||||
echo ""
|
||||
}
|
||||
|
||||
versions(){
|
||||
echo -e "\n${underline}Apache/PHP/MySQL Version:${reset}\n"
|
||||
|
||||
apachectl -v
|
||||
echo ""
|
||||
$homebrew_path/opt/$current_php_version/bin/php -v
|
||||
echo ""
|
||||
mysql --version
|
||||
echo ""
|
||||
read -p "< Press Enter>"
|
||||
}
|
||||
|
||||
conf_files(){
|
||||
echo -e "\n${underline}Apache/PHP/MySQL Configuration files:${reset}\n"
|
||||
|
||||
echo -e "\033[4mApache:\033[0m " #&& echo $conf_apache
|
||||
for line in "${config_apache[@]}"
|
||||
do
|
||||
echo -e " ● $line"
|
||||
done
|
||||
|
||||
|
||||
echo
|
||||
echo -e "\033[4mPHP:\033[0m " # && echo "$conf_php"
|
||||
for line in "${conf_php[@]}"
|
||||
do
|
||||
echo -e " ● $line"
|
||||
done
|
||||
|
||||
echo
|
||||
echo -e "\033[4mMySQL:\033[0m "
|
||||
for line in "${conf_mysql[@]}"
|
||||
do
|
||||
echo -e " ● $line"
|
||||
done
|
||||
|
||||
echo
|
||||
read -p "< Press Enter>"
|
||||
}
|
||||
|
||||
submenu(){
|
||||
options2=("${additionnal[@]}" "(M)enu")
|
||||
echo "Edit which file ?: "
|
||||
select opt in "${options2[@]}"; do
|
||||
[[ $opt == "(M)enu" ]] || [[ $REPLY == "m" ]] || [[ $REPLY == "M" ]] && menu;
|
||||
[[ -z $opt ]] && echo "Wrong choice !"
|
||||
[[ -n $opt ]] && "$editeur" "$opt";
|
||||
done
|
||||
}
|
||||
|
||||
switch_php(){
|
||||
php_installed_array=()
|
||||
|
||||
for i in $(ls $homebrew_path/etc/php/); do
|
||||
[[ -d "$homebrew_path/etc/php/$i" ]] && php_installed_array+=("$i");
|
||||
done
|
||||
php_installed_array+=("(M)enu" "Help")
|
||||
|
||||
echo -e "\nCurrent PHP: $current_simple_php_version"
|
||||
echo "Switch to PHP: "
|
||||
select version in "${php_installed_array[@]}"; do
|
||||
[[ $version == "(M)enu" ]] || [[ $REPLY == "m" ]] || [[ $REPLY == "M" ]] && menu;
|
||||
[[ $version == "Help" ]] && echo "Only currently PHP installed are displayed. To switch to another PHP version, install it before (brew install php@8.3) !";
|
||||
[[ -z $version ]] && [ "$version" != "Help" ] && echo "Wrong choice !"
|
||||
[[ -n $version ]] && [ "$version" != "Help" ] && echo "$version" | xargs -p -n 1 sphp && menu;
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# Main menu
|
||||
menu(){
|
||||
|
||||
add_ini
|
||||
|
||||
options=(
|
||||
"Apache (r)estart"
|
||||
"(E)dit httpd.conf"
|
||||
"Edit httpd-v(h)osts.conf"
|
||||
"Edit httpd-(s)sl.conf"
|
||||
"error_(l)og Apache"
|
||||
"(a)ccess_log Apache"
|
||||
"Edit (P)HP.ini"
|
||||
"Edit additio(n)nals *.ini files"
|
||||
"Open PHP (i)nfo page in browser"
|
||||
"S(w)itch to PHP version"
|
||||
"Apache/PHP/MySQL (V)ersion"
|
||||
"Apache/PHP/MySQL (C)onfiguration files"
|
||||
"(Q)uit"
|
||||
)
|
||||
|
||||
|
||||
# --> sphp:<--
|
||||
# mod-php: https://gist.github.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/
|
||||
# php-fpm: https://gist.github.com/rozsival/10289d1e2006c68009ace0478306ecd2/
|
||||
# Brew PHP switcher
|
||||
# https://github.com/philcook/brew-php-switcher#readme
|
||||
|
||||
|
||||
echo -e "\n\033[1mApache Tools: \033[0m\n"
|
||||
entete
|
||||
|
||||
select option in "${options[@]}"; do
|
||||
case "$REPLY" in
|
||||
1|r|R) sudo apachectl -k restart ; menu ;;
|
||||
2|e|E) "$editeur" "$conf_apache" ;; # httpd.conf
|
||||
3|h|H) "$editeur" "$vhost" ; menu ;; # httpd-vhost.conf
|
||||
4|s|S) "$editeur" "$ssl" ; menu ;; # httpd-ssl.conf
|
||||
5|l|L) command -v ttab >/dev/null 2>&1 && ttab tail -f "$log_apa" || error_log ; menu ;;
|
||||
6|a|A) command -v ttab >/dev/null 2>&1 && ttab tail -f "$access_apa" || acces_log ; menu ;;
|
||||
7|p|P) "$editeur" "$php_ini" ; menu ;; # php.ini
|
||||
8|n|N) submenu ;;
|
||||
9|i|I) echo '<?php echo phpinfo(); ?>' > $document_root/php-info.php && open 'http://localhost/php-info.php' ;;
|
||||
10|w|W) switch_php; menu ;;
|
||||
#read -e -n 3 -p "Which PHP version? (7.4/8.0/8.1/8.2/8.3): " choice
|
||||
#if [[ "$choice" == "7.4" ]] || [[ "$choice" == "8.0" ]] || [[ "$choice" == "8.1" ]] || [[ "$choice" == "8.2" ]] || [[ "$choice" == "8.3" ]]; then echo "$choice" | xargs -p -n 1 sphp ; fi ; menu ;;
|
||||
11|v|V) versions ; menu ;;
|
||||
12|c|C) conf_files ; menu ;;
|
||||
13|q|Q) exit 0 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
menu
|
||||
|
||||
Reference in New Issue
Block a user