Ubuntu Server

от
Linux

Обновить систему
  1. sudo apt-get update
  2. sudo apt-get upgrade

Устанавливаем нужное ПО

файловый менеджер с поддержкой ftp ssh etc.
консольный текстовый редактор
  1. sudo apt-get install mc nano

установка почтовика
  1. sudo apt-get install sendmail

сервер баз данных mysql
  1. sudo apt-get install mysql-server mysql-client
даем пароль для root mysql

интерпретатор php
  1. sudo apt-get install php5-mysql php5-mysqlnd php5-fpm php5-dev php5-curl php5-gd
дополнения
  1. sudo apt-get install php5-gmp php5-ldap php5-mcrypt php5-sqlite php5-xcache php5-memcache php5-memcached php5-enchant php5-geoip php5-imagick php5-imap php5-intl php5-mongo php5-oauth php5-recode php5-snmp php5-svn php5-xsl

сервер nginx
  1. sudo apt-get install nginx-full
протокол ssh
  1. sudo apt-get install ssh
сервер ftp
  1. sudo apt-get install vsftpd
dns клиент
  1. sudo apt-get install ddclient ssh libio-socket-ssl-perl

создаем нужные каталоги и выставляем права
  1. cd /
  2. cd /srv
  3. sudo mkdir /srv/logs
  4. sudo mkdir /srv/tmp
  5. sudo mkdir /srv/www
  6. sudo mkdir /srv/www/localhost
  7. sudo mkdir /srv/logs/php
  8. sudo mkdir /srv/logs/mysql
  9. sudo mkdir /srv/logs/nginx
  10. sudo mkdir /srv/logs/ftp
  11.  
  12. sudo chmod -R 777 /srv/logs
  13. sudo chmod -R 777 /srv/www
  14. sudo chmod -R 777 /srv/tmp


настройка фаирвола
  1. sudo ufw enable
  2. sudo ufw allow 21
  3. sudo ufw allow 22
  4. sudo ufw allow 80

добавляем пользователя и группу server для php, ftp, etc...
  1. sudo useradd -d /srv -s /bin/bash server

проверяем passwd
  1. sudo nano /etc/passwd
  2. server:x:1001:1001::/srv:/bin/bash

даем пароль пользователю server
  1. sudo passwd server

Настройка nginx

для начала сделаем резервные копии конфигов
  1. sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.def

удаляем стандартный ярлык настроек
  1. sudo rm /etc/nginx/sites-enabled/default

добавляем настройку для localhost
  1. sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/localhost

создаем ярлык настроек для localhost
  1. sudo ln -nfs /etc/nginx/sites-available/localhost  /etc/nginx/sites-enabled/

правим конфиги
немного правим стандартный конф, логи, юзера и прочее по мелочи, можно более детально почитать оф доки
  1. sudo nano /etc/nginx/nginx.conf

  1. ########### /etc/nginx/nginx.conf ############
  2. user server;
  3.  
  4. # ставим количество ядер*2
  5. worker_processes 16
  6.  
  7. # в секции http меняем пути к логам
  8. access_log /srv/logs/nginx/access.log;
  9. error_log /srv/logs/nginx/error.log;
  10.  
  11. ############### end #######################

правим localhost
  1. sudo nano /etc/nginx/sites-available/localhost

  1. # в секции server ставим директорию для localhost, ip или домен и порт
  2. listen 127.0.0.1:80 default_server;
  3.  
  4. # прикручиваем прослушку php5-fpm
  5. location ~ \.php$ {
  6. #   fastcgi_split_path_info ^(.+\.php)(/.+)$;
  7. #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
  8. #
  9. #       # With php5-cgi alone: можно fpm пустить по tcp
  10. #       fastcgi_pass 127.0.0.1:9000;
  11. #       # With php5-fpm:
  12.     fastcgi_pass unix:/srv/tmp/php5-fpm.sock;
  13.     fastcgi_index index.php;
  14.     include fastcgi_params;
  15. }
  16.  
  17. # запрещаем читать .ht файлы, апача нет
  18. location ~ /\.ht {
  19.     deny all;
  20. }

проверка кривых рук, проверим что мы наизменяли, и ровно ли получилось, бывает забыли раскоментировать фигурную строку, проверка выдаст номер строки об которую споткнулся
  1. sudo service nginx configtest
должно получиться
* Testing nginx сonfiguration [ OK ]

перегружаем конфиг
  1. sudo service nginx reload

запускаем
  1. sudo service nginx start

проверка работы
  1. sudo service nginx status
пример
* nginx is not running

Настройка php5-fpm

для начала делаем резервные копии
  1. sudo cp /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.def
  2. sudo cp /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.def
называем default, так как инклюды только конфигов
  1. ### include=/etc/php5/fpm/pool.d/*.conf ###
  2. sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/default

редакция конфигов
  1. sudo nano /etc/php5/fpm/php-fpm.conf

  1. ### /etc/php5/fpm/php-fpm.conf #######
  2.  
  3. # лог
  4. error_log = /srv/logs/php/php5-fpm.log
  5. log_level = debug
  6.  
  7. emergency_restart_interval = 1h
  8. process_control_timeout = 10m
  9. daemonize = yes
  10. rlimit_files = 4096
  11. rlimit_core = 0
  12.  
  13. ####### end ##########

  1. sudo nano /etc/php5/fpm/pool.d/www.conf

  1. ######### /etc/php5/fpm/pool.d/www.conf ##########
  2. user = server
  3. group = server
  4. ## можно повесить на порт, нужно будет перенастроить nginx ##
  5. ### fastcgi_pass 127.0.0.1:9000;  ###
  6. #listen = 127.0.0.1:9000
  7.  
  8. ### fastcgi_pass unix:/srv/sockets/php5-fpm.sock; ###
  9. listen = /srv/tmp/php5-fpm.sock
  10.  
  11. listen.backlog = -1
  12.  
  13. listen.owner = server
  14. listen.group = server
  15. listen.mode = 0666
  16.  
  17. pm = dynamic
  18.  
  19. pm.max_children = 25
  20. pm.start_servers = 10
  21. pm.min_spare_servers = 5
  22. pm.max_spare_servers = 20
  23.  
  24. pm.max_requests = 4096
  25.  
  26. access.log = /srv/logs/php/$pool.access.log
  27.  
  28. access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
  29.  
  30. slowlog = /srv/logs/php/$pool.log.slow
  31. request_slowlog_timeout = 3m
  32. request_terminate_timeout = 10m
  33.  
  34. rlimit_files = 4096
  35. rlimit_core = 0
  36.  
  37. catch_workers_output = yes
  38. security.limit_extensions = .php
  39.  
  40. env[HOSTNAME] = $HOSTNAME
  41. env[PATH] = /usr/local/bin:/usr/bin:/bin
  42. env[TMP] = /srv/tmp
  43. env[TMPDIR] = /srv/tmp
  44. env[TEMP] = /srv/tmp
  45.  
  46. ########## end ##########

рестартуем
  1. sudo service php5-fpm restart

Настройка mysql
готовые конфиги
/usr/share/doc/mysql-server-5.5/example
копируем нужный
  1. sudo cp /usr/share/doc/mysql-server-5.5/example/my-huge.cnf.gz /etc/mysql
  2. sudo mysql_install_db
  3. sudo mysql_secure_installation
фаил подкачки и количество оперативы в мегабайтах
  1. sudo mysqltuner --forceswap 2048 --forcemem 6144

Настройка ftp

  1. sudo nano /etc/vsftpd.conf

  1. listen=YES
  2. local_enable=YES
  3. write_enable=YES
  4. local_umask=022
  5. dirmessage_enable=YES
  6. use_localtime=YES
  7. xferlog_enable=YES
  8. connect_from_port_20=YES
  9. xferlog_file=/srv/logs/ftp/vsftpd.log
  10. xferlog_std_format=YES
  11. idle_session_timeout=600
  12. data_connection_timeout=120
  13. ftpd_banner=Welcome to YOUR_NAME FTP service.
  14. secure_chroot_dir=/var/run/vsftpd/empty
  15. pam_service_name=vsftpd
  16. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
  17. rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

  1. sudo service vsftpd restart

  1. sudo apt-get remove nginx*
  2. sudo rm -rf /etc/nginx/ /usr/sbin/nginx /usr/share/man/man1/nginx.1.gz
  3. sudo apt-get --purge autoremove nginx && sudo dpkg --purge nginx
  4. sudo apt-get -o DPkg::options::=--force-confmiss --reinstall install nginx

Делаем регу на www.zoneedit.com
добавляем два ns

регаем домен и прописываем ему свои ns (agava.ru)

Выбирете DNS сервис: zoneedit.com
Имя пользователя для логина на сервисе: <ваше_имя_пользователя>
Пароль для входа на сервисе: <ваш_пароль>
Доменное имя: yourdomain.com
Интерфейс для работы (wlan0, eth0 и т.д.): <интерфейс>

  1. sudo nano /etc/ddclient.conf

  1. daemon=300
  2. pid=/var/run/ddclient.pid
  3. ssl=yes
  4. protocol=zoneedit1
  5. ## use=if, if=web
  6. use=web, web='http://legacy.zoneedit.com/checkip.html/', web-skip='IP Address'
  7. ## server=www.zoneedit.com
  8. server=dynamic.zoneedit.com
  9. login=
  10. password='*******
  11. tux.yourdomain.com

  1. sudo nano /etc/default/ddclient

  1. run_ipup="false"
  2. run_daemon="true"
  3. daemon_interval="300"

  1. sudo rm /var/cache/ddclient/ddclient.cache
  2.  
  3. sudo /etc/init.d/ddclient restart
  4. sudo /etc/init.d/ddclient status
  5.  
  6. sudo tail -f /var/log/syslog

Feb 5 21:16:36 tux ddclient[12034]: SUCCESS: updating yourdomain.com: IP address set to <ваш IP>(200: Update succeeded.)

(http://help.ubuntu.ru/wiki/ddclient)

  1. sudo apt-get install traceroute
  2. sudo traceroute google.com

  1. sudo apt-get install logrotate
http://debianworld.ru/articles...ate-v-debian-ubuntu/
  • 0
  • views 2097