Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
debian:server-install-d8 [2016/08/20 23:02] – [Установка] mirocowdebian:server-install-d8 [2018/06/17 20:33] (текущий) – ↷ Операцией перемещения обновлены ссылки 5.9.158.195
Строка 3: Строка 3:
 ====== Скрипт установки для Debian 8 ====== ====== Скрипт установки для Debian 8 ======
  
 +<code bash>
 +$ apt install php5-cgi php5-cli php5-common php5-curl php5-dev php5-fpm php5-gd php5-intl php5-json php5-mcrypt php5-memcache php5-memcached php5-mongo php5-mysql php5-readline php5-redis php5-sqlite php5-xsl php5-geoip php5-ssh2
 +</code>
 +
 +  * [[develop:php:php|Установка различных версий PHP]]
 ===== Описание ===== ===== Описание =====
  
Строка 10: Строка 15:
   * Установка автоматического бекапа БД MySQL (https://github.com/Mirocow/mysql_utils.git)   * Установка автоматического бекапа БД MySQL (https://github.com/Mirocow/mysql_utils.git)
   * Устанока скрипта для создания сайта (https://github.com/Mirocow/site-create)   * Устанока скрипта для создания сайта (https://github.com/Mirocow/site-create)
 +  * [[system:exim4]]
  
 ===== Установка ===== ===== Установка =====
Строка 26: Строка 32:
 hostname="" hostname=""
 default_pass="" default_pass=""
- 
-gen_pass() { 
-    MATRIX='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 
-    LENGTH=10 
-    while [ ${n:=1} -le $LENGTH ]; do 
-        PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}" 
-        let n+=1 
-    done 
-    echo "$PASS" 
-} 
- 
-default_pass=$(gen_pass) 
  
 check_result() { check_result() {
Строка 56: Строка 50:
      esac      esac
  done  done
 +}
 +
 +prompt () 
 +{
 + while read -p "$1" variable && [[ -z "$variable" ]] ; do
 + echo "$1"
 + done
 +
 + echo $variable;
 } }
  
Строка 85: Строка 88:
  
 apt-get update && apt-get upgrade -y apt-get update && apt-get upgrade -y
-installpkg apt apt-utils wget chkconfig sudo nano rename debconf-utils+installpkg apt apt-utils wget chkconfig sudo nano rename debconf-utils pwgen 
 + 
 +default_pass=$(pwgen -s 7 1)
  
-while read -p 'Enter the Internet domain name (e.g. nixcraft.com) : ' hostname && [[ -z "$hostname" ]] do +hostname=$(prompt "Enter the Internet domain name (e.g. nixcraft.com) : ");
- echo "No, please, no blank hostname!" +
-done+
  
-if promptyn "Do you wish to install default programs? " ; then+if promptyn "Do you wish to install default programs? [mc, git, etc] " ; then
   
  echo -e "Install default programs";  echo -e "Install default programs";
- installpkg mc git mercurial bash-completion bzip2 numactl -y+ installpkg mc git mercurial bash-completion bzip2 numactl dnsutils -y
  
 fi fi
  
-if promptyn "Do you wish to install developers programs? "; then+if promptyn "Do you wish to install developers programs? [gcc, g++, etc] "; then
   
  echo -e "Install development soft";  echo -e "Install development soft";
- installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev -y+ installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev clang cmake -y
  
 fi fi
  
-if promptyn "Do you wish to install system monitors? "; then+if promptyn "Do you wish to install system monitors? [htop, iptraf] "; then
   
  echo -e "Install system monitors";  echo -e "Install system monitors";
Строка 117: Строка 120:
  cp /usr/share/sysvinit/inittab /etc/inittab  cp /usr/share/sysvinit/inittab /etc/inittab
   
 +fi
 +
 +if promptyn "Do you wish to install FTP Server (PRO-Ftpd)? "; then
 + installpkg proftpd
 fi   fi  
  
 if promptyn "Do you wish to install MySql? "; then if promptyn "Do you wish to install MySql? "; then
- + 
 + installpkg software-properties-common 
  if promptyn "Do you wish to install MySql (Percona) (y) or Mariadb (n)?"; then  if promptyn "Do you wish to install MySql (Percona) (y) or Mariadb (n)?"; then
   
- installpkg software-properties-common 
  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
  
Строка 130: Строка 138:
  #deb http://repo.percona.com/apt ${distrib} testing  #deb http://repo.percona.com/apt ${distrib} testing
  #deb-src http://repo.percona.com/apt ${distrib} testing  #deb-src http://repo.percona.com/apt ${distrib} testing
- " > etc/apt/sources.list.d/mysql.list+ " > /etc/apt/sources.list.d/mysql.list
  apt-get update  apt-get update
   
Строка 138: Строка 146:
  
  mysqladmin -u root password $default_pass  mysqladmin -u root password $default_pass
- echo -e "[client]\npassword='$default_pass'\n" > /root/.my.cnf+ echo -e "[client]\npassword='$f'\n" > /root/.my.cnf
  chmod 600 /root/.my.cnf  chmod 600 /root/.my.cnf
-                mysql -e "DELETE FROM mysql.user WHERE User=''" + mysql -e "DELETE FROM mysql.user WHERE User=''" 
-                mysql -e "DROP DATABASE test" >/dev/null 2>&+ mysql -e "DROP DATABASE test" >/dev/null 2>&
-                mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" + mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" 
-                mysql -e "DELETE FROM mysql.user WHERE user='' or password='';" + mysql -e "DELETE FROM mysql.user WHERE user='' or password='';" 
-                mysql -e "FLUSH PRIVILEGES"+ mysql -e "FLUSH PRIVILEGES"
  
  echo -e "Install MySQL (Percona)"  echo -e "Install MySQL (Percona)"
Строка 151: Строка 159:
   
  else  else
-  + # for sid  
- installpkg software-properties-common+ apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 
 + # for jessie
  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
  
Строка 160: Строка 169:
  deb [arch=amd64,i386] http://mirror.timeweb.ru/mariadb/repo/10.1/debian ${distrib} main  deb [arch=amd64,i386] http://mirror.timeweb.ru/mariadb/repo/10.1/debian ${distrib} main
  deb-src http://mirror.timeweb.ru/mariadb/repo/10.1/debian ${distrib} main  deb-src http://mirror.timeweb.ru/mariadb/repo/10.1/debian ${distrib} main
- " > etc/apt/sources.list.d/mysql.list+ " > /etc/apt/sources.list.d/mysql.list
  apt-get update  apt-get update
   
  installpkg mariadb-server mariadb-client mariadb-common mytop -y  installpkg mariadb-server mariadb-client mariadb-common mytop -y
- sevice mysql start+ service mysql start
  check_result $? "mysql start failed"  check_result $? "mysql start failed"
  
Строка 170: Строка 179:
  echo -e "[client]\npassword='$default_pass'\n" > /root/.my.cnf  echo -e "[client]\npassword='$default_pass'\n" > /root/.my.cnf
  chmod 600 /root/.my.cnf  chmod 600 /root/.my.cnf
-                mysql -e "DELETE FROM mysql.user WHERE User=''" + mysql -e "DELETE FROM mysql.user WHERE User=''" 
-                mysql -e "DROP DATABASE test" >/dev/null 2>&+ mysql -e "DROP DATABASE test" >/dev/null 2>&
-                mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" + mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" 
-                mysql -e "DELETE FROM mysql.user WHERE user='' or password='';" + mysql -e "DELETE FROM mysql.user WHERE user='' or password='';" 
-                mysql -e "FLUSH PRIVILEGES"+ mysql -e "FLUSH PRIVILEGES"
  
  echo -e "Install MySQL (Mariadb)"  echo -e "Install MySQL (Mariadb)"
Строка 192: Строка 201:
  deb http://nginx.org/packages/debian ${distrib} nginx  deb http://nginx.org/packages/debian ${distrib} nginx
  deb-src http://nginx.org/packages/debian ${distrib} nginx  deb-src http://nginx.org/packages/debian ${distrib} nginx
- " > etc/apt/sources.list.d/nginx.list+ " > /etc/apt/sources.list.d/nginx.list
  apt-get update  apt-get update
   
Строка 209: Строка 218:
   
  wget -q http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -  wget -q http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
 +
 + php_ver=$(prompt "Please select php version like 5, 6.0, 7.0, 7.1: ")
   
  echo "  echo "
Строка 214: Строка 225:
  deb http://packages.dotdeb.org ${distrib} all  deb http://packages.dotdeb.org ${distrib} all
  deb-src http://packages.dotdeb.org ${distrib} all  deb-src http://packages.dotdeb.org ${distrib} all
- " > etc/apt/sources.list.d/php-fpm.list+ " > /etc/apt/sources.list.d/php-fpm.list
  apt-get update  apt-get update
   
- service php5-fpm stop >/dev/null 2>&+ service php${php_ver}-fpm stop >/dev/null 2>&
- installpkg -u -t stable php5 php5-dev php5-sqlite php5-mcrypt php5-xsl php5-cli php5-common php5-mysql php5-gd php5-fpm \ + installpkg -u -t stable php${php_ver} php${php_ver}-dev php${php_ver}-sqlite php${php_ver}-mcrypt php${php_ver}-xsl php${php_ver}-cli php${php_ver}-common php${php_ver}-mysql php${php_ver}-gd php${php_ver}-fpm \ 
-         php5-cgi php-pear php5-curl php5-xcache php5-redis -y +         php${php_ver}-cgi php-pear php${php_ver}-curl php${php_ver}-xcache php5-redis -y 
- echo "cgi.fix_pathinfo = 0" >> /etc/php5/fpm/php.ini + echo "cgi.fix_pathinfo = 0" >> /etc/php${php_ver}/fpm/php.ini 
- service php5-fpm start + service php${php_ver}-fpm start 
- check_result $? "php5-fpm start failed"+ check_result $? "php${php_ver}-fpm start failed"
  
  echo -e "Install PHP-FPM"  echo -e "Install PHP-FPM"
- chkconfig php5-fpm on + chkconfig php${php_ver}-fpm on 
- set_default_value 'php5-fpm' 'true'+ set_default_value "php${php_ver}-fpm' 'true"
  
 fi fi
Строка 241: Строка 252:
  # RabbitMq  # RabbitMq
  deb http://www.rabbitmq.com/debian/ testing main  deb http://www.rabbitmq.com/debian/ testing main
- " > etc/apt/sources.list.d/rabbitmq.list+ " > /etc/apt/sources.list.d/rabbitmq.list
  apt-get update  apt-get update
   
Строка 299: Строка 310:
  chmod 640 /etc/exim4/exim4.conf.template  chmod 640 /etc/exim4/exim4.conf.template
  rm -rf /etc/exim4/domains  rm -rf /etc/exim4/domains
-        mkdir -p /etc/exim4/domains+ mkdir -p /etc/exim4/domains
  
-        rm -f /etc/alternatives/mta + rm -f /etc/alternatives/mta 
-        ln -s /usr/sbin/exim4 /etc/alternatives/mta + ln -s /usr/sbin/exim4 /etc/alternatives/mta 
-        service sendmail stop > /dev/null 2>&1  + service sendmail stop > /dev/null 2>&1  
-        service postfix stop > /dev/null 2>&+ service postfix stop > /dev/null 2>&
-        service exim4 start+ service exim4 start
  
-        check_result $? "exim4 start failed" + check_result $? "exim4 start failed" 
-        chkconfig exim4 on+ chkconfig exim4 on
  set_default_value 'exim' 'true'  set_default_value 'exim' 'true'
  
Строка 315: Строка 326:
 if promptyn "Do you wish to install Dovecot? "; then if promptyn "Do you wish to install Dovecot? "; then
  
-        gpasswd -a dovecot mail + gpasswd -a dovecot mail 
-        chown -R root:root /etc/dovecot*+ chown -R root:root /etc/dovecot*
  service dovecot stop > /dev/null 2>&1  service dovecot stop > /dev/null 2>&1
  installpkg dovecot-imapd dovecot-pop3d dovecot-common -y  installpkg dovecot-imapd dovecot-pop3d dovecot-common -y
Строка 322: Строка 333:
  
  check_result $? "dovecot start failed"  check_result $? "dovecot start failed"
-        chkconfig dovecot on+  chkconfig dovecot on
  set_default_value 'dovecot' 'true'  set_default_value 'dovecot' 'true'
  
Строка 331: Строка 342:
  installpkg fail2ban -y  installpkg fail2ban -y
  
-        if [ "$exim" = 'no' ]; then + if [ "$exim" = 'no' ]; then 
-          fline=$(cat /etc/fail2ban/jail.local |grep -n exim-iptables -A 2) + fline=$(cat /etc/fail2ban/jail.local |grep -n exim-iptables -A 2) 
-          fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -) + fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -) 
-          sed -i "${fline}s/true/false/" /etc/fail2ban/jail.local + sed -i "${fline}s/true/false/" /etc/fail2ban/jail.local 
-        fi+ fi
  
-        chkconfig fail2ban on + chkconfig fail2ban on 
-        service fail2ban start + service fail2ban start 
-        check_result $? "fail2ban start failed"+ check_result $? "fail2ban start failed"
   
 fi fi
Строка 370: Строка 381:
 if promptyn "Do you wish to set default shell settings? "; then if promptyn "Do you wish to set default shell settings? "; then
  
- echo -e "Base system configure" +echo -e "Base system configure" 
- echo '+echo '
  
- +
- # My config +# My config 
- # +#
- alias nano="nano -u -w " +
- alias ls="ls --color=always" +
- alias grep='grep --color=auto' +
- alias fgrep='fgrep --color=auto' +
- alias egrep='egrep --color=auto' +
- HISTSIZE=50000 +
- HISTFILESIZE=50000 +
- export HISTCONTROL=ignoreboth +
- shopt -s cmdhist +
- shopt -s histappend +
- shopt -s checkwinsize +
- shopt -s extglob +
- ulimit -c 0+
  
- +#search in history with arrows 
- # Functions +bind '"\e[A": history-search-backward' 2>/dev/null 
- #+bind '"\e[B": history-search-forward' 2>/dev/null
  
- #----------------------------------- +alias nano="nano --w " 
- # Функции работы с историей комманд +alias ls="ls --color=always" 
- #-----------------------------------+alias grep='grep --color=auto' 
 +alias fgrep='fgrep --color=auto' 
 +alias egrep='egrep --color=auto' 
 +HISTSIZE=50000 
 +HISTFILESIZE=50000 
 +export HISTCONTROL=ignoreboth 
 +shopt -s cmdhist 
 +shopt -s histappend 
 +shopt -s checkwinsize 
 +shopt -s extglob 
 +ulimit -c 0
  
- function h(){ +# 
-         history| grep "$@"; +# Functions 
- }+#
  
- Включение магии bash +#----------------------------------- 
- if [ -f /etc/bash_completion ]; then +# Функции работы с историей комманд 
- . /etc/bash_completion +#-----------------------------------
- fi+
  
- ' >> ~/.bashrc +function h(){ 
- source ~/.bashrc +  history| grep "$@"; 
-  +
- echo ' + 
- set tabsize "2" +# Включение магии bash 
- ' >> ~/.nanorc +if [ -f /etc/bash_completion ]; then 
 +  . /etc/bash_completion 
 +fi 
 + 
 +' >> ~/.bashrc 
 +source ~/.bashrc 
 + 
 +echo ' 
 +set tabsize "2" 
 +' >> ~/.nanorc
 fi fi
  
 apt-get update apt-get update
 apt-get upgrade apt-get upgrade
 +apt-get autoremove -y
 </code> </code>