Ubuntu Server
от Koenig
Обновить систему
Устанавливаем нужное ПО
файловый менеджер с поддержкой ftp ssh etc.
консольный текстовый редактор
установка почтовика
сервер баз данных mysql
даем пароль для root mysql
интерпретатор php
дополнения
сервер nginx
протокол ssh
сервер ftp
dns клиент
создаем нужные каталоги и выставляем права
настройка фаирвола
добавляем пользователя и группу server для php, ftp, etc...
проверяем passwd
даем пароль пользователю server
Настройка nginx
для начала сделаем резервные копии конфигов
удаляем стандартный ярлык настроек
добавляем настройку для localhost
создаем ярлык настроек для localhost
правим конфиги
немного правим стандартный конф, логи, юзера и прочее по мелочи, можно более детально почитать оф доки
правим localhost
проверка кривых рук, проверим что мы наизменяли, и ровно ли получилось, бывает забыли раскоментировать фигурную строку, проверка выдаст номер строки об которую споткнулся
должно получиться
* Testing nginx сonfiguration [ OK ]
перегружаем конфиг
запускаем
проверка работы
пример
* nginx is not running
Настройка php5-fpm
для начала делаем резервные копии
называем default, так как инклюды только конфигов
редакция конфигов
рестартуем
Настройка mysql
готовые конфиги
/usr/share/doc/mysql-server-5.5/example
копируем нужный
фаил подкачки и количество оперативы в мегабайтах
Настройка ftp
Делаем регу на www.zoneedit.com
добавляем два ns
регаем домен и прописываем ему свои ns (agava.ru)
Выбирете DNS сервис: zoneedit.com
Имя пользователя для логина на сервисе: <ваше_имя_пользователя>
Пароль для входа на сервисе: <ваш_пароль>
Доменное имя: yourdomain.com
Интерфейс для работы (wlan0, eth0 и т.д.): <интерфейс>
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)
http://debianworld.ru/articles...ate-v-debian-ubuntu/
- sudo apt-get update
- sudo apt-get upgrade
Устанавливаем нужное ПО
файловый менеджер с поддержкой ftp ssh etc.
консольный текстовый редактор
- sudo apt-get install mc nano
установка почтовика
- sudo apt-get install sendmail
сервер баз данных mysql
- sudo apt-get install mysql-server mysql-client
интерпретатор php
- sudo apt-get install php5-mysql php5-mysqlnd php5-fpm php5-dev php5-curl php5-gd
- 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
- sudo apt-get install nginx-full
- sudo apt-get install ssh
- sudo apt-get install vsftpd
- sudo apt-get install ddclient ssh libio-socket-ssl-perl
создаем нужные каталоги и выставляем права
- cd /
- cd /srv
- sudo mkdir /srv/logs
- sudo mkdir /srv/tmp
- sudo mkdir /srv/www
- sudo mkdir /srv/www/localhost
- sudo mkdir /srv/logs/php
- sudo mkdir /srv/logs/mysql
- sudo mkdir /srv/logs/nginx
- sudo mkdir /srv/logs/ftp
- sudo chmod -R 777 /srv/logs
- sudo chmod -R 777 /srv/www
- sudo chmod -R 777 /srv/tmp
настройка фаирвола
- sudo ufw enable
- sudo ufw allow 21
- sudo ufw allow 22
- sudo ufw allow 80
добавляем пользователя и группу server для php, ftp, etc...
- sudo useradd -d /srv -s /bin/bash server
проверяем passwd
- sudo nano /etc/passwd
- server:x:1001:1001::/srv:/bin/bash
даем пароль пользователю server
- sudo passwd server
Настройка nginx
для начала сделаем резервные копии конфигов
- sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.def
удаляем стандартный ярлык настроек
- sudo rm /etc/nginx/sites-enabled/default
добавляем настройку для localhost
- sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/localhost
создаем ярлык настроек для localhost
- sudo ln -nfs /etc/nginx/sites-available/localhost /etc/nginx/sites-enabled/
правим конфиги
немного правим стандартный конф, логи, юзера и прочее по мелочи, можно более детально почитать оф доки
- sudo nano /etc/nginx/nginx.conf
- ########### /etc/nginx/nginx.conf ############
- user server;
- # ставим количество ядер*2
- worker_processes 16
- # в секции http меняем пути к логам
- access_log /srv/logs/nginx/access.log;
- error_log /srv/logs/nginx/error.log;
- ############### end #######################
правим localhost
- sudo nano /etc/nginx/sites-available/localhost
- # в секции server ставим директорию для localhost, ip или домен и порт
- listen 127.0.0.1:80 default_server;
- # прикручиваем прослушку php5-fpm
- location ~ \.php$ {
- # fastcgi_split_path_info ^(.+\.php)(/.+)$;
- # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
- #
- # # With php5-cgi alone: можно fpm пустить по tcp
- # fastcgi_pass 127.0.0.1:9000;
- # # With php5-fpm:
- fastcgi_pass unix:/srv/tmp/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi_params;
- }
- # запрещаем читать .ht файлы, апача нет
- location ~ /\.ht {
- deny all;
- }
проверка кривых рук, проверим что мы наизменяли, и ровно ли получилось, бывает забыли раскоментировать фигурную строку, проверка выдаст номер строки об которую споткнулся
- sudo service nginx configtest
* Testing nginx сonfiguration [ OK ]
перегружаем конфиг
- sudo service nginx reload
запускаем
- sudo service nginx start
проверка работы
- sudo service nginx status
* nginx is not running
Настройка php5-fpm
для начала делаем резервные копии
- sudo cp /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.def
- sudo cp /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.def
- ### include=/etc/php5/fpm/pool.d/*.conf ###
- sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/default
редакция конфигов
- sudo nano /etc/php5/fpm/php-fpm.conf
- ### /etc/php5/fpm/php-fpm.conf #######
- # лог
- error_log = /srv/logs/php/php5-fpm.log
- log_level = debug
- emergency_restart_interval = 1h
- process_control_timeout = 10m
- daemonize = yes
- rlimit_files = 4096
- rlimit_core = 0
- ####### end ##########
- sudo nano /etc/php5/fpm/pool.d/www.conf
- ######### /etc/php5/fpm/pool.d/www.conf ##########
- user = server
- group = server
- ## можно повесить на порт, нужно будет перенастроить nginx ##
- ### fastcgi_pass 127.0.0.1:9000; ###
- #listen = 127.0.0.1:9000
- ### fastcgi_pass unix:/srv/sockets/php5-fpm.sock; ###
- listen = /srv/tmp/php5-fpm.sock
- listen.backlog = -1
- listen.owner = server
- listen.group = server
- listen.mode = 0666
- pm = dynamic
- pm.max_children = 25
- pm.start_servers = 10
- pm.min_spare_servers = 5
- pm.max_spare_servers = 20
- pm.max_requests = 4096
- access.log = /srv/logs/php/$pool.access.log
- access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
- slowlog = /srv/logs/php/$pool.log.slow
- request_slowlog_timeout = 3m
- request_terminate_timeout = 10m
- rlimit_files = 4096
- rlimit_core = 0
- catch_workers_output = yes
- security.limit_extensions = .php
- env[HOSTNAME] = $HOSTNAME
- env[PATH] = /usr/local/bin:/usr/bin:/bin
- env[TMP] = /srv/tmp
- env[TMPDIR] = /srv/tmp
- env[TEMP] = /srv/tmp
- ########## end ##########
рестартуем
- sudo service php5-fpm restart
Настройка mysql
готовые конфиги
/usr/share/doc/mysql-server-5.5/example
копируем нужный
- sudo cp /usr/share/doc/mysql-server-5.5/example/my-huge.cnf.gz /etc/mysql
- sudo mysql_install_db
- sudo mysql_secure_installation
- sudo mysqltuner --forceswap 2048 --forcemem 6144
Настройка ftp
- sudo nano /etc/vsftpd.conf
- listen=YES
- local_enable=YES
- write_enable=YES
- local_umask=022
- dirmessage_enable=YES
- use_localtime=YES
- xferlog_enable=YES
- connect_from_port_20=YES
- xferlog_file=/srv/logs/ftp/vsftpd.log
- xferlog_std_format=YES
- idle_session_timeout=600
- data_connection_timeout=120
- ftpd_banner=Welcome to YOUR_NAME FTP service.
- secure_chroot_dir=/var/run/vsftpd/empty
- pam_service_name=vsftpd
- rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
- rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
- sudo service vsftpd restart
- sudo apt-get remove nginx*
- sudo rm -rf /etc/nginx/ /usr/sbin/nginx /usr/share/man/man1/nginx.1.gz
- sudo apt-get --purge autoremove nginx && sudo dpkg --purge nginx
- 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 и т.д.): <интерфейс>
- sudo nano /etc/ddclient.conf
- daemon=300
- pid=/var/run/ddclient.pid
- ssl=yes
- protocol=zoneedit1
- ## use=if, if=web
- use=web, web='http://legacy.zoneedit.com/checkip.html/', web-skip='IP Address'
- ## server=www.zoneedit.com
- server=dynamic.zoneedit.com
- login=
- password='*******
- tux.yourdomain.com
- sudo nano /etc/default/ddclient
- run_ipup="false"
- run_daemon="true"
- daemon_interval="300"
- sudo rm /var/cache/ddclient/ddclient.cache
- sudo /etc/init.d/ddclient restart
- sudo /etc/init.d/ddclient status
- 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)
- sudo apt-get install traceroute
- sudo traceroute google.com
- sudo apt-get install logrotate