Files
bash/apache_tools.sh
Bruno21 b62f965470 apache_tools.sh
Bugfix: suppression des «  pour document_root
2020-01-26 16:40:13 +01:00

87 lines
3.2 KiB
Bash
Executable File

#!/usr/bin/env bash
#version=7.2
editeur=/usr/local/bin/bbedit
echo -e "\033[1mApache Tools: \033[0m"
# apache
v_apa=$(httpd -V | grep 'SERVER_CONFIG_FILE')
conf_apa=$(echo "$v_apa" | awk -F "\"" '{print $2}')
document_root=$(grep -e '^DocumentRoot' "$conf_apa" | awk '{print $2}' | sed 's/\"//g')
log_apa=$(grep -e '^ErrorLog' "$conf_apa" | awk -F "\"" '{print $2}')
access_apa=$(grep -e 'CustomLog' "$conf_apa" | grep -v "#" | awk -F "\"" '{print $2}')
vhost=$(grep -e 'httpd-vhosts.conf' "$conf_apa" | awk '{print $2}')
ssl=$(grep -e 'httpd-ssl.conf' "$conf_apa" | awk '{print $2}')
# PHP
v_php=$(php --ini | grep -E 'usr.*ini')
php_ini=$(php --ini)
conf_php=$(echo "$php_ini" | grep 'Loaded Configuration File' | awk '{print $NF}')
addconf_dir="`dirname $conf_php`/conf.d/"
declare -a additionnal=()
add_ini() {
addconf_php=$(echo "$php_ini" | grep 'Scan for additional .ini files in' | awk '{print $NF}' | xargs ls)
echo "Additionnal *.ini:"
z=0
for i in $addconf_php
do
echo "$z. $addconf_dir$i"
additionnal+=("$addconf_dir$i")
((z++))
done
echo ""
}
# MySQL
v_mysql=$(mysql --help | grep -A1 'Default options')
options=(
"Apache (r)estart"
"(E)dit httpd.conf"
"Edit httpd-v(h)osts.conf"
"Edit httpd-(s)sl.conf"
"error_log Apache"
"(a)ccess_log Apache"
"Edit (P)HP.ini"
"(O)pen PHP info page in browser"
"Apache/PHP/MySQL (V)ersion"
"Apache/PHP/MySQL (C)onfiguration files"
"S(w)itch to PHP version (sphp)"
"(U)pdate sphp"
"Edit additio(n)nals *.ini files"
"(Q)uit"
)
select option in "${options[@]}"; do
case "$REPLY" in
1|r|R) sudo apachectl -k restart ;;
2|e|E) "$editeur" "$conf_apa" ;; # httpd.conf
3|h|H) "$editeur" "$vhost" ;; # httpd-vhost.conf
4|s|S) "$editeur" "$ssl" ;; # httpd-ssl.conf
5) tail -f "$log_apa" ;;
6|a|A) tail -f "$access_apa" ;;
7|p|P) "$editeur" "$conf_php" ;; # php.ini
8|o|O) echo '<?php echo phpinfo(); ?>' > $document_root/php-info.php && open 'http://localhost/php-info.php' ;;
9|v|V) apachectl -v && echo ' ' && php -v && echo ' ' && mysql --version ;;
10|c|C) echo -e "\033[4mApache:\033[0m " && echo $v_apa && echo ' ' && echo -e "\033[4mPHP:\033[0m " && echo $v_php && echo ' ' && echo -e "\033[4mMySQL:\033[0m " && echo $v_mysql ;;
11|w|W) read -e -n 3 -p "Which PHP version? (7.2/7.3/7.4): " choice
# if [ "$choice" == "7.2" ] || [ "$choice" == "7.3" ] || [ "$choice" == "7.4" ]; then sphp "$choice" ; fi ;;
# if [ "$choice" == "7.2" ] || [ "$choice" == "7.3" ] || [ "$choice" == "7.4" ]; then echo "$choice" | xargs -p -n 1 sphp ; fi ;;
if [[ "$choice" == "7.2" ]] || [[ "$choice" == "7.3" ]] || [[ "$choice" == "7.4" ]]; then echo "$choice" | xargs -p -n 1 sphp ; fi ;;
12|u|U) curl -L 'https://gist.githubusercontent.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/raw' > /usr/local/bin/sphp && chmod +x /usr/local/bin/sphp ;;
13|n|N) add_ini
read -e -n 1 -p "Edit which file ?: " choice
#if [[ "$choice" == 1 ]] || [[ "$choice" == 4 ]]; then "$editeur" ${additionnal[$choice]}; fi ;;
if [ $choice -ge 0 ] && [ $choice -lt $z ]; then "$editeur" ${additionnal[$choice]}; fi ;;
14|q|Q) break ;;
esac
done