216 lines
5.7 KiB
Bash
Executable File
216 lines
5.7 KiB
Bash
Executable File
#!/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
|
|
|