За последние 24 часа нас посетили 20837 программистов и 1111 роботов. Сейчас ищут 392 программиста ...

Установка Nginx+Apache на Ubuntu 16.04

Тема в разделе "Настройка веб-сервера", создана пользователем eldor, 17 мар 2017.

  1. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    С ОС на базе Linux я впервые познакомился в этом году. По этому за ниже изложенное просьба сильно не пинать. Я составил небольшой гайд по установке связки Nginx (front-end)+Apache (back-end) (по аргументированному предложению Fell-x27, а далее и по подтвержденному - сюда) на ubuntu 16.04. Данный гайд собирал из нескольких статей и форумов. Но за основу взял вот эту статью. От себя добавил более подробное описание некоторых действий, т.к. они меня в начале работы в Ubuntu вводили в ступор и я не знал что делать. Это сейчас уже они мне кажутся очевидными)).

    Вот что у меня получилось:

    1. Качаем ubuntu (отсюда) серверную версию 16.04 с расширением .ISO

    2. Устанавливаем ее на флешку с помощью UltraISO.

    3. Установка Ubuntu:
    - определить раскладку клавиатуры: Нет
    - переключение языков: Alt+shift
    - имя компьютера: ubuntu
    - полное имя пользователя: testing
    - имя учетной записи: test (используется как логин при входе на сервер)
    - пароль для пользователя: t_123 (на реальном сервере нужно использовать более сложный пароль)
    - шифрование домашнего каталога: нет
    - метод разметки: авто использовать весь диск и настроить lvm (для обучения и этого достаточно - имхо. Подробнее про lvm можно почитать тут)
    - информация о HTTP-прокси: не заполняем - оставляем пустым
    - управление обновлением системы: без автоматического обновления
    - устанавливаемое программное обеспечение: ничего не выбираем – далее сами будем ставить нужные пакеты
    - установка системного загрузчика GRUB в главную загрузочную запись: да
    P.S. Очевидные вещи на подобии выбора языка или часового пояса я не стал указывать. Все имена и пароли Вы пишите свои.

    4. Первая загрузка на сервере:
    - обновляем индексы пакетов
    Код (Text):
    1.  
    2. sudo apt update
    - обновляем пакеты
    Код (Text):
    1.  
    2. sudo apt upgrade
    - устанавливаем nano для корректировки файлов (данный редактор мне больше понравился)
    Код (Text):
    1.  
    2. sudo apt install nano
    - перезагружаем ubuntu
    Код (Text):
    1.  
    2. shutdown -r 0
    5. SSH сервер:

    - устанавливаем SSH-сервер
    Код (Text):
    1.  
    2. sudo apt install ssh openssh-server
    - управление SSH-сервером: остановка | запуск | перезапуск
    Код (Text):
    1.  
    2. sudo service ssh stop | start | restart
    - открываем основной файл конфигурации SSH-сервера для редактирования (sshd_config)
    Код (Text):
    1.  
    2. sudo nano /etc/ssh/sshd_config
    - корректировка sshd_config:
    * измененяем стандартный порт 22 на любой другой, к примеру 2222
    Код (Text):
    1.  
    2. Port 2222
    * из семейства обрабатываемых адресов можно выбрать:
    -- IPv4
    Код (Text):
    1.  
    2. AddressFamily inet
    -- или IРv6
    Код (Text):
    1.  
    2. AddressFamily inet6
    -- или работу сразу обеих семейств
    Код (Text):
    1.  
    2. AddressFamily any
    Я выбираю только IPv4
    * разрешаем работу с протоколом sha 2, т.к. sha 1 не безопасен
    Код (Text):
    1.  
    2. Protocol 2
    * запрещаем пользователю root авторизоваться по ssh
    Код (Text):
    1.  
    2. PermitRootLogin no
    * если нужно, предоставляем доступ по SSH только указанным пользователям, к примеру test и user3
    Код (Text):
    1.  
    2. AllowUsers test user3
    * если нужно, предоставляем доступ по SSH только группе, к примеру admins
    Код (Text):
    1.  
    2. AllowGroups admins
    * запрещаем удаленный доступ с использованием пустого пароля
    Код (Text):
    1.  
    2. PermitEmptyPasswords no
    * сохраняем, подтверждаем и выходим из sshd_config (Ctrl+o– сохранить, Enter– подтвердить, Ctrl+x– выйти)
    - перезагружаем SSH-сервер
    Код (Text):
    1.  
    2. sudo service ssh restart
    - смотрим какой ip-адрес у сервера в сети.
    Код (Text):
    1.  
    2. ifconfig
    ip-адрес нужен для удаленной работы через PuTTY (что такое PuTTY см. здесь)
    - запускаем PuTTY:
    * переходим "Сеанс", вбиваем ip-адрес сервера и порт (порт вбиваем тот, на который поменяли в sshd_config, 2222)
    * в "Управление сеансами" вводим любое понравившееся название (к примеру test) и нажимаем "Сохранить", а далее - "Соединиться"
    - авторизация на основе SSH2 RSA - ключей:
    * место хранения по умолчанию
    Код (Text):
    1.  
    2. /home/test/.ssh
    где test – имя учетной записи
    * на стороне клиента для создания пары ключей (приватный и публичный) запускаем RunPuTTYgen из пакета PuTTY и в нем выполняем следующее:
    -- задаем параметры ключа (предпочтительные: "Тип ключа для генерации" выбираем SSH2-RSA, "Длина генерируемого ключа" указываем не менее 2048)
    -- нажимаем напротив "Генерировать ключевую пару" кнопку "Генерировать" и водим мышкой в поле программы до того момента пока не завершится генерация ключа
    -- если для ключа нужен пароль, то вводим его в 2-х полях "Парольная фраза" и "Повторить пароль" (к примеру: ssh_123)
    -- нажимаем напротив "Сохранить сгенерированные ключи" на кнопку "Личный ключ", даем название (к примеру key.ppk) личному ключу и сохраняем где удобно
    -- нажимаем напротив "Сохранить сгенерированные ключи" на кнопку "Открытый ключ", даем название публичному ключу (к примеру key_pub) и сохраняем где удобно
    -- RunPuTTYgen не закрываем
    * заходим на сервер под тем пользователем, которому настраиваем доступ по SSH к серверу
    * создаем папку для хранения публичного ключа пользователя по след. пути: /home/test/.ssh
    Код (Text):
    1.  
    2. mkdir /home/test/.ssh
    * изменяем права на созданную папку .ssh
    Код (Text):
    1.  
    2. chmod 700 /home/test/.ssh
    * создаем в новом каталоге .ssh файл authorized_keys
    Код (Text):
    1.  
    2. nano /home/test/.ssh/authorized_keys
    * копируем публичный ключ из окна RunPuTTYgen под надписью "Открытый ключ для вставки в файл authorized_keys формата OpenSSH", переходим в PuTTY и вставляем его в файл authorized_keys, нажав в окне PuTTY 1 раз ПКМ (Правую Кнопку Мыши), сохраняем и закрываем

    * изменяем права на файл authorized_keys
    Код (Text):
    1.  
    2. chmod 600 /home/test/.ssh/authorized_keys
    * RunPuTTYgen можно закрыть
    * настраиваем удаленный доступ с помощью SSH в PuTTY, предварительно закрыв PuTTY:
    -- в "Управление сеансами" выбираем наш сеанс (к примеру ранее сохраненный test) и нажимаем "Загрузить"
    -- переходим "Соединение">>"SSH">>"Аутентификация"
    -- под "Файл с личным ключом для аутентификации" нажимаем "Обзор..." и выбираем путь к приватному ключу (к примеру key.ppk)
    -- возвращаемся в "Сеанс", в "Управление сеансами" выбираем наш сеанс и нажимаем "Сохранить", а потом "Соединиться"
    -- авторизация уже должна проходить с помощью пары ключей, а не обычного пароля пользователя (вводим теперь пароль от ключа: ssh_123). Это происходит из-за того, что мы привязали приватный ключ к сеансу "test" - если бы ключ не был привязан, то нужно было бы вводить пароль пользователя (Пароль пользователя: t_123)
    * включаем авторизацию только по ключам:
    -- открываем для редактирования конфигурационный файл SSH
    Код (Text):
    1.  
    2. sudo nano /etc/ssh/sshd_config
    -- вносим изменения следующим образом:
    ** авторизация при помощи ключей по умолчанию включена - если не включена, то включаем
    Код (Text):
    1.  
    2. PubkeyAuthentication yes
    ** путь, по которому находятся публичные ssh-ключи - для каждого пользователя свой файл в его директории (если строка закомментирована, то ее раскомментируем)
    Код (Text):
    1.  
    2. AuthorizedKeysFile %h/.ssh/authorized_keys
    ** сохраняем и закрываем конфигурационный файл SSH

    ** перезагружаем SSH-сервер
    Код (Text):
    1.  
    2. sudo service ssh restart
    ** отключаем аутентификацию по паролю (предварительно убедившись в возможности доступа по ключам, закрыв и заново открыв PuTTY – доступ должен быть по ключам)
    * открываем основной файл конфигурации SSH-сервера для редактирования
    Код (Text):
    1.  
    2. sudo nano /etc/ssh/sshd_config
    * отключаем аутентификацию по паролю
    Код (Text):
    1.  
    2. PasswordAuthentication no
    * сохраняем и закрываем конфигурационный файл SSH

    * перезагружаем SSH-сервер
    Код (Text):
    1.  
    2. sudo service ssh restart
    * теперь можно работать удаленно с сервером через SSH-соединение - в нашем случае с помощью настроенной программы PuTTY.
     
    #1 eldor, 17 мар 2017
    Последнее редактирование модератором: 20 мар 2017
    Aerofreak, Fell-x27, mahmuzar и ещё 1-му нравится это.
  2. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    6. Комплексная установка Apache+nginx+php+mysql+phpmyadmin:
    - устанавливаем apache
    Код (Text):
    1. sudo apt install apache2
    - проверяем синтаксис конфигурационных файлов.
    Код (Text):
    1. sudo apache2ctl -t
    Синтаксис должен быть в порядке, только будет не определено доменное имя сервера
    - копируем на всякий случай конфиг сервера apache
    Код (Text):
    1. sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
    - открываем apache2.conf,
    Код (Text):
    1. sudo nano /etc/apache2/apache2.conf
    все из него удаляем и вставляем следующее:

    Код (Text):
    1.  
    2. ServerName 127.0.1.1
    3.  
    4. Mutex file:${APACHE_LOCK_DIR} default
    5.  
    6. PidFile ${APACHE_PID_FILE}
    7.  
    8. Timeout 300
    9.  
    10. KeepAlive On
    11.  
    12. MaxKeepAliveRequests 100
    13.  
    14. KeepAliveTimeout 5
    15.  
    16. User ${APACHE_RUN_USER}
    17. Group ${APACHE_RUN_GROUP}
    18.  
    19. HostnameLookups Off
    20.  
    21. ErrorLog ${APACHE_LOG_DIR}/error.log
    22.  
    23. LogLevel warn
    24.  
    25. IncludeOptional mods-enabled/*.load
    26. IncludeOptional mods-enabled/*.conf
    27.  
    28. Include ports.conf
    29.  
    30. <Directory />
    31.         Options FollowSymLinks
    32.         AllowOverride None
    33.         Require all denied
    34. </Directory>
    35.  
    36. <Directory /usr/share>
    37.         AllowOverride None
    38.         Require all granted
    39. </Directory>
    40.  
    41. <Directory /var/www/>
    42.         Options Indexes FollowSymLinks
    43.         AllowOverride None
    44.         Require all granted
    45. </Directory>
    46.  
    47. #<Directory /srv/>
    48. #       Options Indexes FollowSymLinks
    49. #       AllowOverride None
    50. #       Require all granted
    51. #</Directory>
    52.  
    53. AccessFileName .htaccess
    54.  
    55. <FilesMatch "^\.ht">
    56.         Require all denied
    57. </FilesMatch>
    58.  
    59. LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    60. LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
    61. LogFormat "%h %l %u %t \"%r\" %>s %O" common
    62. LogFormat "%{Referer}i -> %U" referer
    63. LogFormat "%{User-agent}i" agent
    64.  
    65. IncludeOptional conf-enabled/*.conf
    66.  
    67. IncludeOptional sites-enabled/*.conf
    - сохраняем и перезапускаем сервер apache
    Код (Text):
    1. sudo service apache2 restart
    - еще раз проверяем синтаксис конфигурационных файлов.
    Код (Text):
    1. sudo apache2ctl -t
    Должен быть OK
    - если в браузере запросим несуществующий файл к примеру «адрес/ararar», то получим сообщение об ошибке, в которой указана версия сервера
    - скрываем версию сервера apache:
    * откроем security.conf для редактирования
    Код (Text):
    1. sudo nano /etc/apache2/conf-available/security.conf
    * меняем
    Код (Text):
    1. ServerTokens OS
    2. ServerSignature On
    на
    Код (Text):
    1. ServerTokens Prod
    2. ServerSignature Off
    - сохраняем и перезапускаем сервер apache
    Код (Text):
    1. sudo service apache2 restart
    - устанавливаем php и некоторые модули к нему
    Код (Text):
    1. sudo apt install php7.0 php-pear libapache2-mod-php7.0 php7.0-mysql
    - открываем для редактирования php.ini
    Код (Text):
    1. sudo nano /etc/php/7.0/apache2/php.ini
    * проверяем скрыта или нет версия, найдя строку expose_php в php.ini, и если там,
    Код (Text):
    1. expose_php = On
    то делаем
    Код (Text):
    1. expose_php = Off
    * отключаем функцию phpinfo, если не планируете ее использовать, добавив в самое начало disable_functions, перед имеющимися там функциями. "..." - имеющиеся функции, которые там уже вписаны по умолчанию
    Код (Text):
    1. disable_functions = phpinfo,...
    - устанавливаем mysql с модулем для работы с php
    Код (Text):
    1. sudo apt install mysql-server php7.0-mysql
    * в процессе установки нужно будет придумать пароль администратора Mysql (это пароль не root системы, а root Mysql) (к примеру mysql_123)
    - устанавливаем phpmyadmin и некоторые модули к нему,
    Код (Text):
    1. sudo apt install phpmyadmin php7.0-mbstring php-gettext
    далее, в процессе установки:
    * выбираем сервер apache2
    * отвечаем «ДА» на след. вопрос: «Настроить базу данных для phpmyadmin с помощью dbconfig-common?»
    * далее просят придумать пароль для автоматической создаваемой базы phpmyadmin
    - прячем нашу БД, изменив путь к phpmyadmin:
    * открываем apache.conf
    Код (Text):
    1. sudo nano /etc/phpmyadmin/apache.conf
    -- предоставляем доступ к phpmyadmin только по указанным IP-адресам, добавив в<Directory /usr/share/phpmyadmin> после DirectoryIndex index.php следующее:

    Код (Text):
    1. Order deny,allow
    2.  
    3. Deny from all
    4.  
    5. # ip-адрес, с которого разрешен доступ.
    6. Allow from 192.168.0.100
    7. # ip-адрес, с которого разрешен доступ.
    8. Allow from 77.73.66.26
    --- Добавлено ---
    - редактируем файл ports.conf
    Код (Text):
    1. sudo nano /etc/apache2/ports.conf
    - перебрасываем apache на другой порт и разрешаем принимать только локальные запросы:
    * меняем строку
    Код (Text):
    1. Listen 80
    на
    Код (Text):
    1. Listen 127.0.0.1:81
    - создаём в корневой директории сервера папку с названием сайта sitetest
    Код (Text):
    1. sudo mkdir /var/www/sitetest
    и в ней еще одну папку site
    Код (Text):
    1. sudo mkdir /var/www/sitetest/site
    - задаём пользователя и группу для папок
    Код (Text):
    1. sudo chown -R www-data:www-data /var/www/sitetest /var/www/sitetest/site
    - отключаем дефолтный конфиг apache
    Код (Text):
    1. sudo a2dissite 000-default.conf
    - создаём из дефолтного конфига apache конфиг своего сайта для apache
    Код (Text):
    1. sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/sitetest.conf
    - для теста создаем index.php,
    Код (Text):
    1. sudo nano /var/www/sitetest/site/index.php
    в котором пишем
    PHP:
    1. <?php echo " sitetest ";?>
    - открываем конфиг своего сайта,
    Код (Text):
    1. sudo nano /etc/apache2/sites-available/sitetest.conf
    удаляем все из него и вставляем следующее:

    Код (Text):
    1. <VirtualHost 127.0.0.1:81>
    2.         ServerAdmin webmaster@localhost
    3.         ServerName sitetest.ru
    4.         ServerAlias www.sitetest.ru
    5.  
    6.         DocumentRoot /var/www/sitetest/site
    7.  
    8. #       <Directory /var/www/sitetest/>
    9. #               Options Indexes FollowSymLinks
    10. #               AllowOverride All
    11. #               Require all granted
    12. #       </Directory>
    13.  
    14.         LogLevel warn
    15.  
    16.         ErrorLog ${APACHE_LOG_DIR}/error.log
    17.         CustomLog ${APACHE_LOG_DIR}/access.log combined
    18.  
    19.         #Include conf-available/serve-cgi-bin.conf
    20.  
    21.         # Если есть ошибка 404, то выводим свою страницу данной ошибки
    22.         ErrorDocument 404 /er404.html
    23. </VirtualHost>
     
    #2 eldor, 17 мар 2017
    Последнее редактирование модератором: 21 мар 2017
    Aerofreak, Fell-x27, mahmuzar и ещё 1-му нравится это.
  3. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    - активируем сайт
    Код (Text):
    1. sudo a2ensite sitetest.conf
    - проверяем синтаксис
    Код (Text):
    1. sudo apache2ctl -t
    - перезапускаем сервер apache
    Код (Text):
    1. sudo service apache2 restart
    - теперь сайт виден только по 127.0.0.1:81,
    Код (Text):
    1. curl 127.0.0.1:81
    т.е. локально – удаленно он не виден
    - устанавливаем nginx
    Код (Text):
    1. sudo apt install nginx
    - перезапускаем сервер nginx
    Код (Text):
    1. sudo service nginx restart
    - копируем на всякий случай конфиг сервера nginx
    Код (Text):
    1. sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
    - открываем конфиг сервера nginx для редактирования
    Код (Text):
    1. sudo nano /etc/nginx/nginx.conf
    и приводим к след. виду:

    Код (Text):
    1.  
    2. user www-data;
    3. worker_processes auto;
    4. pid /run/nginx.pid;
    5. events {
    6.         worker_connections 768;
    7. }
    8. http {
    9.         sendfile on;
    10.         tcp_nopush on;
    11.         tcp_nodelay on;
    12.         keepalive_timeout 65;
    13.         types_hash_max_size 2048;
    14.         # разрешаем загружать указанный максимальный объем файла; влияет на заливку дампа БД на сервер
    15.        client_max_body_size 10m;
    16.        # скрываем версию сервера nginx
    17.        server_tokens off;
    18.         include /etc/nginx/mime.types;
    19.         default_type application/octet-stream;
    20.         access_log /var/log/nginx/access.log;
    21.         error_log /var/log/nginx/error.log;
    22.         gzip on;
    23.         gzip_disable "msie6";
    24.         gzip_vary on; # Разрешить выдавать в ответе строку заголовка "Vary: Accept-Encoding"
    25.         gzip_proxied any; # Разрешить сжатие для всех проксированных запросов
    26.         gzip_comp_level 6; # Степень сжатия (от 1 до 9 цифра больше увеличивает степень сжатия и увеличивает нагрузку на ЦПУ)
    27.         gzip_buffers 16 8k; # Размер буферов, в которые будет сжиматься ответ
    28.         gzip_http_version 1.1; # Устанавливает минимальную HTTP-версию запроса для сжатия ответа
    29.         gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    30.         #include /etc/nginx/conf.d/*.conf; # Если папка conf.d пустая, то можно закомментировать
    31.         include /etc/nginx/sites-enabled/*;
    32. }
    - создаём из дефолтного конфига nginx конфиг для своего сайта для nginx
    Код (Text):
    1. sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/sitetest.conf
    Если у вас отсутствует каталог /etc/nginx/sites-available, не беда. Это зависит от сборки и настроения мэйнтейнеров. Возможно, конфиги хранятся в /etc/nginx/conf.d. А может, где-то еще. Для точного ответа вернитесь в дефолтный конфиг, но не в тот, что мы поправили, а в бекап - там, в последней строке идет инклуд каталога с виртуальными хостами. Используйте его здесь и далее.

    - редактируем конфиг своего сайта для nginx
    Код (Text):
    1. sudo nano /etc/nginx/sites-available/sitetest.conf
    и вставляем следующее:

    Код (Text):
    1.  
    2. server{
    3. listen 80;
    4.  
    5. root /var/www/sitetest/site;
    6. index index.html index.php index.htm;
    7.  
    8. server_name sitetest.ru www.sitetest.ru;
    9.  
    10. # xrennaideshmyphpmyadmin - это ваш секретный путь к phpMyadmin, таким образом всё
    11. # что касается phpMyadmin, будет отдавать Apacheи страница будет корректно отображаться.
    12. # Картинки и прочее отдаёт Nginx
    13.  
    14. location ~*^(?!/xrennaideshmyphpmyadmin/).+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|b)$ {
    15. access_log off;
    16. expires 30d;
    17. }
    18.  
    19. # запрет на доступ к .htaccess
    20. location ~/\.ht {
    21. deny all;
    22. }
    23.  
    24.   # Если есть ошибка 404, то выводим свою страницу данной ошибки.
    25.  
    26.   error_page 404 /er404.html;
    27.  
    28.         # передача запроса апачу
    29.         location /{
    30.                 proxy_pass http://127.0.0.1:81/; # Порт на котором висит Apache
    31.                 proxy_set_header X-Real-IP $remote_addr;
    32.                 proxy_set_header X-Forwarded-for $remote_addr;
    33.                 proxy_set_header Host $host;
    34.                 proxy_connect_timeout 300;
    35.                 proxy_send_timeout 300;
    36.                 proxy_read_timeout 300;
    37.                 proxy_redirect off;
    38.                 proxy_set_header Connection close;
    39.                 proxy_pass_header Content-Type;
    40.                 proxy_pass_header Content-Disposition;
    41.                 proxy_pass_header Content-Length;
    42.         }
    43. }
    - создаем ссылку на новый конфиг своего сайта для nginx
    Код (Text):
    1. sudo ln -s /etc/nginx/sites-available/sitetest.conf /etc/nginx/sites-enabled/sitetest.conf
    - перезапускаем сервер nginx
    Код (Text):
    1. sudo service nginx restart
    - чтобы apache получал в логах ip-адреса клиентов нужно установить модуль libapache2-mod-rpaf
    Код (Text):
    1. sudo apt-get install libapache2-mod-rpaf
    - если вышеуказанные настройки прошли удачно, то удаляем не нужные элементы:
    * удаляем папку/var/www/html
    Код (Text):
    1. sudo rm -rf /var/www/html
    * удаляем дефолтный конфиг сайта apache
    Код (Text):
    1. sudo rm /etc/apache2/sites-available/000-default.conf
    * удаляем дефолтный конфиг сайта nginx
    Код (Text):
    1. sudo rm /etc/nginx/sites-available/default
    и ссылку на него
    Код (Text):
    1. sudo rm /etc/nginx/sites-enabled/default
    * удаляем копию основного конфига apache
    Код (Text):
    1. sudo rm /etc/apache2/apache2.conf.bak
    * удаляем копию основного конфига nginx
    Код (Text):
    1. sudo rm /etc/nginx/nginx.conf.bak
    * удаляем проверочную страницу сайта
    Код (Text):
    1. sudo rm /var/www/sitetest/site/index.php
    - перезагружаем apache и nginx
    Код (Text):
    1. sudo service nginx restart
    2. sudo service apache2 restart
    - проверяем доступ к phpmyadmin, зайдя по —адрес/phpmyadmin/ (если не открывается, удаляем в адресной строке 81-ый порт, если появился)
    - проверяем как грузится свой сайт. Если есть какие-либо ошибки - исправляем.

    - КОНЕЦ!
    P.S. Из зала подсказывают, что ставить PMA на продакшен не обязательно. Работать с БД без проблем можно через консоль по ssh или, если вам больше нравится графический интерфейс, то через удаленные редакторы вроде MySQL WorkBench. Кроме того, многие IDE тоже могут выступать в роли удаленного клиента. А еще можно использовать пакетный деплой, чтобы скрипты на сервере сами ковыряли базу согласно инструкциям в патче и тд и тп. Вариантов уйма, но, главное, не забудьте правильно настроить пользователей БД, особенно привелегии, и, разумеется, адреса, с которых будет возможен доступ.
    --- Добавлено ---
    Что еще можно добавить для повышения безопасности к вышеописанному? Буду рад узнать.
     
    #3 eldor, 20 мар 2017
    Последнее редактирование модератором: 13 май 2017
    Aerofreak, Fell-x27 и mahmuzar нравится это.
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    прошу дополнить упоминание Putty такой программой как mremoteng, а то путти это совсем анахронизм и не слишком удобный, если серверов больше одного. сам я пользуюсь mobaxterm.
     
  5. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Дело в том, что я знаком только с PuTTY. Вот по этому только про нее и написал. Может ты сам расскажешь про ту программу, которой пользуешься?
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    она удобнее. попробуй.
     
  7. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Мимикрокодилю православный Xshell.

    И это, автор, выв выбрали хреновую площадку для факу и статей, вам на хабрач или какой-нить бложик. Но, спасибо.
     
  8. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Позже попробую - спс)
    Я до хабра еще не дорос) А на данном форуме я давно нахожусь - люди тут приятные и отзывчивые, если научиться правильно вопросы задавать (правда, у меня не всегда получается вопрос правильно задать из-за неопытности) :)
    p.s. И тебе спасибо за тесты))
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    На данный момент актуальна уже ветка php7.1, однако, 7.0 тоже не выброшена и развивается параллельно. Для нее тоже выходят патчи безопасности и багфиксы. Во всех командах в данном туторе, связанных с php7, можно смело писать php7.1, если нужна другая ветка.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Может кому пригодится, кого задолбало, что в дефолтных репах старье валяется.
    Годные репы:
    1) Репа с папачем(+ модули); deb-only
    2) Репа с пыхой(+ модули); deb-only
    3) Репа с нжинксой, официальная, мультидистриб;
    4) Репа мускуля. По ссылке deb-only, но рядом остальные лежат;

    Да прибудут с вами свежие стейблы.
     
    eldor и denis01 нравится это.
  11. dobrmir

    dobrmir Активный пользователь

    С нами с:
    8 окт 2012
    Сообщения:
    200
    Симпатии:
    2
    А какой из 4 вариантов предыдущего поста мне брать и вообще как действовать, раз у автора темы дистрибутив на флэшке, а сам планирую брать VDS хостинг в интернете? Чего в этой теме не хватает, что ещё надо доустановить, может быть какой то дополнительный модуль полезный?
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А какая разница?
    В репозиториях тысячи пакетов. Кто ж знает, что для вас полезно?
    Зависит от базы дистрибутива. Если deb-based, то все 4. Если rpm-based, то только два последних подойдут. Альтернативы для 1 и 2 надо искать самостоятельно.
     
  13. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Пробовал на днях предложение Fell-x27 и к сожалению в данном туторе чистая замена с "php7" на "php7.1" не пройдет, т.к. на данный момент времени в стандартных репозиториях ubuntu 16.04 лежит версия php7.0. Эксперимент ставил на виртуальной машине.

    Касаемо репозиториев.
    До недавнего времени я имел обобщенное понятие слова "репозиторий". Т.е. я в общем понимал, что где-то в ОС есть файл, в котором лежат ссылки на разные сервера. На этих серверах лежат разные версии разных программ для данной ОС. При загрузке ОС появляется информация о кол-ве доступных обновлений. Т.е. во время загрузки (на сколько я понял) ОС проверяет обновления в репозиториях и выдает инфу о кол-ве новых версий программ. Через update->upgrade обновляем. До недавнего времени мои знания о репозиториях на этом заканчивались. Т.е. я не знал как с ними правильно работать (как правильно добавлять, удалять, редактировать). Погуглив - узнал некоторую информацию по данной теме. Но у меня еще остались некоторые пробелы.
    Некоторые из них:
    1. Каким репозиториям (не считая оф. сайты программ) можно доверять? Почему?
    2. В ОС ubuntu есть файл (/etc/apt/sources.list) с ссылками на репозитории и есть папка (/etc/apt/sources.list.d), в которой лежат так же файлы с ссылками на репозитории. В чем их различие?
    К примеру, Fell-x27 предложил добавить 4 репозитория.
    С 3 и 4 пунктом в плане безопасности для меня ясно - оф. сайты.
    А как быть с предложенными в 1 и 2 пунктах? На сколько им можно доверять? И почему?
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Тем, у которых широкая общественная поддержка.
    Ты такие вещи еще часто увидишь. Это для организации модульных списков. По факту, при проверке репозиториев, все, что лежит в list.d будет подцеплено к файлу list, а потом прочитано как единое целое. В линуксе так организовываются конфиги многие. Это очень удобно, когда вместо одной огромной простыни конфигов есть десяток мелких файлов, где в каждом описан только кусочек конфига.
    Их мэйнтейнер - Ondřej Surý. Человек, уважаемый и довольно широко известный в php-сообществе. Он стартовал кампанию по запиливанию альтернативных репозиториев для php и apache на патреоне, в свое время, и имеет с этого деньги в виде пожертвований стабильных. Других репозиториев для пыхи на deb-системах с такой оперативностью обслуживания лично я не встречал. Во всех мануалах на просторах интернетов "как подключить свежий пых к деб-системе", ты увидишь ссылки именно на репы Ондрея. Крч, ему можешь верить, он бро. Плюс...этот репозиторий выставлен на Launchpad - это официальная площадка для частных репозиториев от Canonical. Если чуть какой косяк или жалоба - репозиторий будет публично расстрелян. Плюс это таки опенсорс - ты всегда можешь взять исходники, проверить хэш-суммы, и собрать все сам, если не доверяешь Онджеевым бинарникам.
    --- Добавлено ---
    Стандартные репозитории - это всегда болото. Софта там много, мейнтейнеры все не успевают обновлять своевременно. То, что там 7.0 появилась - уже круто. Когда гайд писался, там только 5.5 была. Даже не 5.6.
     
    eldor нравится это.