Информация Обсуждение настроек VPS сервера для PrestaShop

Вот пример моего.
Например max_execution_time 60000 или 0 не будет работать)
тк в fastcgi.conf 60)
А зачем такие большие тайминги выставлять, на что это влияет?
Как понимаю это ограничение по времени на выполнения скрипта.
В какой ситуации это может быть актуально?
Ведь по идеи скрипты должны быть написаны таким образом, чтобы они грузились быстро и не зависали работу сервера.
На то тайминги как я понимаю и нужны, чтобы кривые скрипты завершать не давая им такой возможности.
 
Для тех кто еще плохо знает, что такое VPS и чем он отличается от обычного хостинга, Для просмотра ссылки Войди или Зарегистрируйся

Эта же статья создана специально для тех, кому не нужно глубоко вникать в суть процесса, а кому нужно быстро и без головной боли настроить современный и быстрый web сервер для своего сайта на VPS - в частности для PrestaShop. Поэтому многие теоретические аспекты и пояснения будут опущены. Делайте просто как описано в инструкции, ну а если вам захочется более детально вникнуть в суть процесса то Google и Яндекс вам в помощь ;)

Любые рекомендации по улучшению и дополнению данной статьи со стороны спецов - приветствуются!
Часть 1:
Скажу сразу, что данная статья подойдет не для всех VPS хостингов, т.к. разные хостинги предоставляют свои VPS с различными конфигурациями операционных систем. В каких-то уже установлены пакеты: apache и mysql и т.п. а в каких-то нет, в каких-то стоит пакет curl и т.п., а в каких-то нет.
Собственно в зависимости от этих конфигураций, следует какой-то нужный пакет установить, а где-то наоборот удалить не нужный. Но для этого вам нужны базовые знания английского языка, чтобы читать ошибки и делать выводы, а также опыт работы в linux.
Именно поэтому в рамках этой статьи мы привязываемся к конкретному хостингу VPS, с конкретной операционной системой, чтобы у вас все получилось с первого раза ;)

Приступаем.
1. Мой выбор в качестве VPS хост провайдера пал на компанию hostland.ru. Я бы не сказал, что это лучший VPS хостинг, можно найти варианты поинтереснее, но зато мы можем бесплатно и быстро получить тестовый VPS сервер на 3 дня и в дальнейшем продлить его на любое количество дней, т.к. у них действует подневная тарификация (~10 руб. в день) - Удобно, не правда ли?
Я так и сделал - протестировал сервер 2 дня и кинул сразу 100 руб., чтобы продлить свои эксперименты еще на 10 дней. Более того я уже более 5-ти лет пользуюсь услугами хостинга этой компании и полностью удовлетворен сервисом и качеством обслуживания. Также я тестировал сервера и других хост провайдеров с бесплатным тестовым периодом(не буду называть их имена), но мне они не понравились: где-то интерфейс админки через-чур перемудренный, где-то надо долго ждать, где-то все хорошо, но проблемы с тех. поддержкой и т.п. Из рекомендуемых VPS в сети выделил 2 хост провайдера: firstvds.ru и fastvps.ru, но у них отсутствует возможность тестового периода и надо платить сразу на месяц вперед.

- Переходим по ссылке: Для просмотра ссылки Войди или Зарегистрируйся и выбираем самый дешевый тариф - 1 ядро 2000 MHz и 256 Mb оперативки. Для начала деятельности нашего интернет-магазина этого более чем достаточно.
- Выбираем операционную систему Debian 7, вводим свой email, и нажимаем на кнопку создать аккаунт.
- Проверяем почту, на нее нам выслали доступ к админ панели хостинга.
- Заходим в админ панель и подтверждаем номер своего мобильного телефона
- Дожидаемся пока создастся сервак
- Получаем доступ к серверу по SSH на почту.
Вуаля! Все быстро и без гемора, без изнурительного заполнения анкет, ожиданий ответов и т.п.

Теперь нам надо скачать программу для соединения с сервером. Называется она Putty (для Windows систем) и доступна по Для просмотра ссылки Войди или Зарегистрируйся.
Для "Маководов" затрудняюсь, что-либо посоветовать т.к. не юзал.
Для просмотра ссылки Войди или Зарегистрируйся по организации SSH доступа. Надеюсь найдете где у вас там терминал запускается )

Запускаем программу Putty, вводим ip адрес сервера, который пришел вам на e-mail и нажимаем кнопку внизу - open.
У нас откроется окно с консолью.
- вводим логин: root и жмем enter
- копируем пароль который пришел на почту и вставляем комбинацией клавиш shift+insert или нажатием правой клавиши мыши и жмем enter.
- Все, мы приконнектелись к серверу и вошли в систему - поздравляю!

Копируем следующую команду и вставляем (shift+insert или правая клавиша мыши) в строку консоли и нажимаем enter:
Код:
apt-get update
Тоже самое с другой:
Код:
apt-get upgrade
Спросит: "Do you want to continue [Y/n]?" - отвечаем: y и жмем enter.

Теперь приступим к установке панели управления Vesta. Vesta – бесплатная, с удобным интерфейсом панель от русских разработчиков. Менее прожорливая в отличие от ISP или Cpanel, имеет отдельный независимый пакет php и nginx.

Сначала устанавливаем пакет curl:
Код:
apt-get install curl
Спросит: "Do you want to continue [Y/n]?" - отвечаем: y и жмем enter.

Ставим панель Vesta, по очереди выполняем следующие команды:
Код:
curl -O http://vestacp.com/pub/vst-install.sh
Код:
bash vst-install.sh

Когда спросит:
Код:
Would you like to continue [y/n]:
отвечаем y и жмем enter.
Указываем ваш существующий e-mail.
Указываем хостнейм. Я указываю тот, что написан в квадратных скобках.
пример:
Код:
Would you like to continue [y/n]: y
Please enter admin email address: yourmail@mail.ru
Please enter FQDN hostname [host1451673]: host1451673

После чего ждем пока панель установится, примерно минуты 3.

По завершению установки увидим в консоли:
Код:
Congratulations, you have just successfully installed Vesta Control Panel
    https://183.26.122.92:8083
    username: admin
    password: vsE5jcB265
Выделяем мышкой и сохраняем эти данные в блокнот. Для копирования комбинация клавиш: ctrl+insert
Будьте внимательны в будущем с копированием из консоли! т.к. привычная комбинация ctrl+c отменяет выполнение текущего процесса. Не страшно если вы нажмете эту комбинацию в режиме простоя, но если вы например запустили процесс установки какого-то пакета и решили что-то скопировать то комбинация ctrl+c прервет процесс, что будет не приятно и придется немного поковыряться, чтобы установить пакет заново корректно.
Отлично, давайте теперь проверим работу панели. Заходим по предложенному адресу в браузере, вводим полученный логин и пароль и убеждаемся что панель работает.

Возвращаемся к нашей консоли, смотрим какие версии php и mysql у нас установились:
Сначала вводим команду:
Код:
php -v
видим:
Код:
PHP 5.4.45-0+deb7u2 (cli) (built: Oct 17 2015 08:26:31)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

Потом вводим:
Код:
mysql --version
видим:
Код:
mysqld  Ver 5.5.47-0+deb7u1 for debian-linux-gnu on x86_64 ((Debian))

Фиксим конфигурационный файл phpMyAdmin, который установился с Vesta, выполняем:
Код:
curl -O -k https://raw.githubusercontent.com/skurudo/phpmyadmin-fixer/master/pma-debian.sh && chmod +x pma-debian.sh && ./pma-debian.sh
 
Часть 2:
Теперь наша задача обновить php и заменить mysql на mariadb. Обновленный php позволит нам воспользоваться кешированием - Zend OPcache(простым языком - наш web сервер будет работать заметно быстрее) , а mariadb жрет меньше памяти и работает быстрее (так говорят и принято считать).
Открываем файл /etc/apt/sources.list, и добавляем новые источники:
Код:
nano /etc/apt/sources.list
Команда nano открывает файл для редактирования.
Стрелочкой вниз переходим в конец файла и комбинацией: shift+insert вставляем следующие скопированные строки:
Код:
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
deb http://packages.dotdeb.org wheezy-php56 all
deb-src http://packages.dotdeb.org wheezy-php56 all
Потом жмем комбинацию cntrl+x чтобы выйти из файла.
Жмем y чтобы согласится на сохранение файла и жмем enter

Скачиваем ключи командой:
Код:
wget http://www.dotdeb.org/dotdeb.gpg
Устанавливаем ключи командой:
Код:
apt-key add dotdeb.gpg

Далее выполняем команду для обновления списка доступных к установке пакетов:
Код:
apt-get update
И запускаем обновление командой:
Код:
apt-get upgrade
Отвечаем на "Do you want to continue [Y/n]?" y
И когда спросит " *** my.cnf (Y/I/N/O/D/Z) [default=N] ?" жмем n и enter

Теперь запускаем обновление самой системы командой:
Код:
apt-get dist-upgrade
Отвечаем на "Do you want to continue [Y/n]?" y
В процессе обновления спросит 3 раза: "Modified configuration file" оставляем "keep the local version currently installed" и жмем enter каждый раз.

Проверяем версию php после обновления:
Код:
php -v
видим:
Код:
PHP 5.6.19-1~dotdeb+7.1 (cli) (built: Mar  4 2016 07:24:13)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Видим версию php 5.6.x и родной кеш Zend OPcache - отлично!

Теперь переходим к базам данных. Выполняем команду:
Код:
apt-get install python-software-properties
Отвечаем на "Do you want to continue [Y/n]?" y
И выполняем команду:
Код:
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
И команду:
Код:
add-apt-repository 'deb [arch=amd64,i386] http://mirror.mephi.ru/mariadb/repo/10.1/debian wheezy main'

Обновляем список пакетов командой:
Код:
apt-get update

Теперь приступим к установке mariadb при помощи команды:
Код:
apt-get install mariadb-server mariadb-client
Отвечаем на "Do you want to continue [Y/n]?" y
В процессе установки попросит задать пароль к БД для root пользователя - придумайте пароль, запишите себе в блокнот, введите его и нажмите enter. Попросит повторить ввод пароля - повторяем и жмем enter.
В процессе установки удалится mysql и поставится mariadb.

Проверим что получилось, командой:
Код:
mysql --version
Видим:
Код:
mysql  Ver 15.1 Distrib 10.1.12-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Отлично!

Когда мы устанавливали панель Vesta, то вместе с ней установился пакет mysql и Vesta в тот момент сгенерировала пароль пользователю root для доступа к БД. Потом мы установили пакет mariadb, в процессе установки которого пакет mysql был удален и задали новый пароль пользователю root для доступа к БД (в предыдущем пункте).
Давайте обновим этот пароль в конфигурационном файле Vest'ы.
Выполняем команду:
Код:
nano /usr/local/vesta/conf/mysql.conf
Меняем PASSWORD на тот, что вы указали в предыдущем пункте и для выхода и сохранения изменений жмем: ctrl+x и y и enter

Открываем для редактирования файл php.ini, командой:
Код:
nano /etc/php5/apache2/php.ini
Ищем следующие параметры и меняем на указанные значения:
(чтобы быстро найти нужное значение нажимаем: ctrl+w, вводим название и нажимаем enter)
Код:
max_execution_time =  180
upload_max_filesize = 64M
post_max_size = 64M
Для выхода из файла и сохранения изменений: ctrl+x и y и enter

Теперь займемся конфигурацией apache, выполняем команду:
Код:
nano /etc/apache2/apache2.conf
Находим следующее:
Код:
Timeout 30
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 10

<IfModule mpm_prefork_module>
    StartServers          8
    MinSpareServers       5
    MaxSpareServers      20
    ServerLimit         256
    MaxClients          200
    MaxRequestsPerChild 4000
</IfModule>
и меняем на следующее: (данные параметры оптимально подходят для VPS с количеством памяти 256Mb)
Код:
Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 20

<IfModule mpm_prefork_module>
    StartServers          3
    MinSpareServers       3
    MaxSpareServers       9
    ServerLimit         256
    MaxClients           100
    MaxRequestsPerChild 3000
</IfModule>
Для выхода из файла и сохранения изменений: ctrl+x и y и enter

Теперь перейдем к конфигурации БД, выполняем команду:
Код:
nano /etc/mysql/my.cnf
Чтобы удалить все содержимое файла жмем: alt+t
Потом копируем код ниже и вставляем его командой: shift+insert
Код:
[client]
port=3306
socket=/var/run/mysqld/mysqld.sock

[mysqld_safe]
socket=/var/run/mysqld/mysqld.sock

[mysqld]
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
port=3306
basedir=/usr
datadir=/var/lib/mysql
tmpdir=/tmp
lc-messages-dir=/usr/share/mysql
symbolic-links=0
log_error=/var/log/mysql/error.log

skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 16M
thread_cache_size = 16
table_open_cache = 250
sort_buffer_size = 1M
read_buffer_size = 256K
join_buffer_size = 2M
bulk_insert_buffer_size = 16M
tmp_table_size = 16M
max_heap_table_size = 16M
read_rnd_buffer_size = 512K
net_buffer_length = 8K
thread_stack = 256K

query_cache_size  = 10M
query_cache_limit = 2M
query_cache_type = ON

myisam_recover = BACKUP
myisam_sort_buffer_size = 8M
concurrent_insert = 2

innodb_file_per_table
innodb_buffer_pool_size = 8M
innodb_log_buffer_size = 8M
innodb_open_files = 400
innodb_io_capacity = 400
innodb_flush_method = O_DIRECT

max_connections = 50
connect_timeout = 5
max_user_connections = 20
wait_timeout = 30
interactive_timeout = 50
long_query_time = 5
Закрываем наш файл и соглашаемся на сохранение изменений: ctrl+x и y и enter
 
Последнее редактирование:
Часть 3:
Теперь займемся конфигурацией nginx, выполняем команду:
Код:
nano /etc/nginx/nginx.conf
Чтобы удалить все содержимое файла жмем: alt+t
Потом копируем код ниже и вставляем его командой: shift+insert
Код:
# Server globals
user                    www-data;
worker_processes        1;
error_log               /var/log/nginx/error.log;
pid                     /var/run/nginx.pid;




# Worker config
events {
        worker_connections  1024;
        use                 epoll;
}




http {
    # Main settings
    sendfile                        on;
    tcp_nopush                      on;
    tcp_nodelay                     on;
    client_header_timeout           1m;
    client_body_timeout             1m;
    client_header_buffer_size       2k;
    client_body_buffer_size         256k;
    client_max_body_size            100m;
    large_client_header_buffers     4   8k;
    send_timeout                    30;
    keepalive_timeout               60 60;
    reset_timedout_connection       on;
    server_tokens                   off;
    server_name_in_redirect         off;
    server_names_hash_max_size      512;
    server_names_hash_bucket_size   512;




    # Log format
    log_format  main    '$remote_addr - $remote_user [$time_local] $request '
                        '"$status" $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
    log_format  bytes   '$body_bytes_sent';
    #access_log          /var/log/nginx/access.log  main;
    access_log off;




    # Mime settings
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;




    # Compression
    gzip                on;
    gzip_comp_level     9;
    gzip_min_length     1000;
    gzip_buffers        8 64k;
    gzip_types          text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
    gzip_proxied        any;




    # Proxy settings
    proxy_redirect      off;
    proxy_set_header    Host            $host;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass_header   Set-Cookie;
    proxy_connect_timeout   90;
    proxy_send_timeout  90;
    proxy_read_timeout  90;
    proxy_buffers       32 4k;




    # Cloudflare https://www.cloudflare.com/ips
    set_real_ip_from   199.27.128.0/21;
    set_real_ip_from   173.245.48.0/20;
    set_real_ip_from   103.21.244.0/22;
    set_real_ip_from   103.22.200.0/22;
    set_real_ip_from   103.31.4.0/22;
    set_real_ip_from   141.101.64.0/18;
    set_real_ip_from   108.162.192.0/18;
    set_real_ip_from   190.93.240.0/20;
    set_real_ip_from   188.114.96.0/20;
    set_real_ip_from   197.234.240.0/22;
    set_real_ip_from   198.41.128.0/17;
    set_real_ip_from   162.158.0.0/15;
    set_real_ip_from   104.16.0.0/12;
    set_real_ip_from   172.64.0.0/13;
    #set_real_ip_from   2400:cb00::/32;
    #set_real_ip_from   2606:4700::/32;
    #set_real_ip_from   2803:f800::/32;
    #set_real_ip_from   2405:b500::/32;
    #set_real_ip_from   2405:8100::/32;
    real_ip_header     CF-Connecting-IP;




    # SSL PCI Compliance
    ssl_session_cache   shared:SSL:10m;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers        "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";




    # Error pages
    error_page          403          /error/403.html;
    error_page          404          /error/404.html;
    error_page          502 503 504  /error/50x.html;




    # Cache
    proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=512m;
    proxy_cache_key "$host$request_uri $cookie_user";
    proxy_temp_path  /var/cache/nginx/temp;
    proxy_ignore_headers Expires Cache-Control;
    proxy_cache_use_stale error timeout invalid_header http_502;
    proxy_cache_valid any 3d;


    map $http_cookie $no_cache {
        default 0;
        ~SESS 1;
        ~wordpress_logged_in 1;
    }




    # Wildcard include
    include             /etc/nginx/conf.d/*.conf;


server {

location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        expires max;
    }
}

}
Закрываем наш файл и соглашаемся на сохранение изменений: ctrl+x и y и enter

Теперь займемся конфигурацией Zend Opcache, выполняем:
Код:
nano /etc/php5/mods-available/opcache.ini
Жмем alt+t и вставляем следующий код:
Код:
; configuration for php ZendOpcache module
; priority=05
zend_extension=opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=3000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1

Ну и наконец перезагружаем сервер командой:
Код:
shutdown -r now

Отлично, на этом базовые настройки нашего сервера закончены!
Теперь осталось прикрепить домен, настроить DNS записи и организовать FTP доступ.
(для тех кому нет необходимости прикреплять домен и вам пока достаточно ip адреса, допустим вы пока только тестируете ваш VPS сервер, то для организации FTP доступа вам нужно зайти в контрольную панель Vesta на вкладку WEB, навести мышкой на ваш хост и нажать на кнопку EDIT. Активировать галочку напротив: "Additional FTP". Ввести имя пользователя, пароль и нажать на SAVE. Все, теперь по ip вашего VPS сервера организован доступ по FTP.)

Для начала нам нужно прикрепить домен в панели управления нашим хостингом. Заходим в панель управления Для просмотра ссылки Войди или Зарегистрируйся, переходим на вкладку "Домены" и прикрепляем существующий или регистрируем новый домен.

Следующий этап - настройка DNS записей, нажимаем на следующую кнопку:
(если электронная почта с именем вашего домена вам не нужна - этот пункт можно пропустить)
7ec0eae739684ccb8b2c9cfb14f92e0b.jpg


Пожалуй основное, что нам нужно здесь сделать это прописать DNS для нашего почтового сервера.
Я лично пользуюсь и рекомендую всем: Для просмотра ссылки Войди или Зарегистрируйся - подробные инструкции по настройке также там имеются.
В итоге должно получится что-то вроде этого:
1f5263cc3e5243619c01f9c96e8d9474.jpg


Теперь добавим наш новый домен к нам на сервер и организуем ftp доступ для него.
Для этого открываем контрольную панель Vesta и переходим на вкладку WEB.
Нажимаем: "Add new domain" и делаем как на скриншоте:
8fa6d584afbf4d38b6224e440a1a883a.jpg

Нажимаем "Add". Отлично теперь мы прикрепили наш домен к нашему web серверу и организовали FTP доступ к нему.

Осталось добавить базу данных, для этого вам нужно перейти по адресу your-domain.ru/phpmyadmin войти из под root(введя тот пароль, который мы вводили во время установки mariadb), создать новую базу, нового пользователя и наделить его привилегиями доступа на эту базу.

Поздравляю вы сделали это сами! Теперь у вас есть свой собственный и быстрый сервер, а также все необходимое для того, чтобы загрузить сайт, подключить базу данных и т.п.!
 
Последнее редактирование:
А зачем такие большие тайминги выставлять, на что это влияет?
Как понимаю это ограничение по времени на выполнения скрипта.
В какой ситуации это может быть актуально?
Ведь по идеи скрипты должны быть написаны таким образом, чтобы они грузились быстро и не зависали работу сервера.
На то тайминги как я понимаю и нужны, чтобы кривые скрипты завершать не давая им такой возможности.
Например импорт товаров в Prestashop)
Обновление индекса поиска...

Для начала mysql тестер. Очень удобный и понятный.
Для просмотра ссылки Войди или Зарегистрируйся

Также полезна инфа для выбора форков
Для просмотра ссылки Войди или Зарегистрируйся

Теперь обещанные анализаторы mysql... Точнее самый удобный который скажет: "Эй ты там! Впиши вот это в конфиг и будет лучше!"
Что удобно для новичков. и так...

Для начала изучите это
Для просмотра ссылки Войди или Зарегистрируйся

Ну или вот
Для просмотра ссылки Войди или Зарегистрируйся

Полезная прога. Мне лично помогла.
 
Часть 3:
Теперь займемся конфигурацией nginx, выполняем команду:
Код:
nano /etc/nginx/nginx.conf
Чтобы удалить все содержимое файла жмем: alt+t
Потом копируем код ниже и вставляем его командой: shift+insert
Код:
# Server globals
user                    www-data;
worker_processes        1;
error_log               /var/log/nginx/error.log;
pid                     /var/run/nginx.pid;




# Worker config
events {
        worker_connections  1024;
        use                 epoll;
}




http {
    # Main settings
    sendfile                        on;
    tcp_nopush                      on;
    tcp_nodelay                     on;
    client_header_timeout           1m;
    client_body_timeout             1m;
    client_header_buffer_size       2k;
    client_body_buffer_size         256k;
    client_max_body_size            100m;
    large_client_header_buffers     4   8k;
    send_timeout                    30;
    keepalive_timeout               60 60;
    reset_timedout_connection       on;
    server_tokens                   off;
    server_name_in_redirect         off;
    server_names_hash_max_size      512;
    server_names_hash_bucket_size   512;




    # Log format
    log_format  main    '$remote_addr - $remote_user [$time_local] $request '
                        '"$status" $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
    log_format  bytes   '$body_bytes_sent';
    #access_log          /var/log/nginx/access.log  main;
    access_log off;




    # Mime settings
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;




    # Compression
    gzip                on;
    gzip_comp_level     9;
    gzip_min_length     1000;
    gzip_buffers        8 64k;
    gzip_types          text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;
    gzip_proxied        any;




    # Proxy settings
    proxy_redirect      off;
    proxy_set_header    Host            $host;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass_header   Set-Cookie;
    proxy_connect_timeout   90;
    proxy_send_timeout  90;
    proxy_read_timeout  90;
    proxy_buffers       32 4k;




    # Cloudflare https://www.cloudflare.com/ips
    set_real_ip_from   199.27.128.0/21;
    set_real_ip_from   173.245.48.0/20;
    set_real_ip_from   103.21.244.0/22;
    set_real_ip_from   103.22.200.0/22;
    set_real_ip_from   103.31.4.0/22;
    set_real_ip_from   141.101.64.0/18;
    set_real_ip_from   108.162.192.0/18;
    set_real_ip_from   190.93.240.0/20;
    set_real_ip_from   188.114.96.0/20;
    set_real_ip_from   197.234.240.0/22;
    set_real_ip_from   198.41.128.0/17;
    set_real_ip_from   162.158.0.0/15;
    set_real_ip_from   104.16.0.0/12;
    set_real_ip_from   172.64.0.0/13;
    #set_real_ip_from   2400:cb00::/32;
    #set_real_ip_from   2606:4700::/32;
    #set_real_ip_from   2803:f800::/32;
    #set_real_ip_from   2405:b500::/32;
    #set_real_ip_from   2405:8100::/32;
    real_ip_header     CF-Connecting-IP;




    # SSL PCI Compliance
    ssl_session_cache   shared:SSL:10m;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers        "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";




    # Error pages
    error_page          403          /error/403.html;
    error_page          404          /error/404.html;
    error_page          502 503 504  /error/50x.html;




    # Cache
    proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=512m;
    proxy_cache_key "$host$request_uri $cookie_user";
    proxy_temp_path  /var/cache/nginx/temp;
    proxy_ignore_headers Expires Cache-Control;
    proxy_cache_use_stale error timeout invalid_header http_502;
    proxy_cache_valid any 3d;


    map $http_cookie $no_cache {
        default 0;
        ~SESS 1;
        ~wordpress_logged_in 1;
    }




    # Wildcard include
    include             /etc/nginx/conf.d/*.conf;


server {

location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        expires max;
    }
}

}
Закрываем наш файл и соглашаемся на сохранение изменений: ctrl+x и y и enter

Теперь займемся конфигурацией Zend Opcache, выполняем:
Код:
nano /etc/php5/mods-available/opcache.ini
Жмем alt+t и вставляем следующий код:
Код:
; configuration for php ZendOpcache module
; priority=05
zend_extension=opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=3000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1

Ну и наконец перезагружаем сервер командой:
Код:
shutdown -r now

Отлично, на этом базовые настройки нашего сервера закончены!
Теперь осталось прикрепить домен, настроить DNS записи и организовать FTP доступ.


Для начала нам нужно прикрепить домен в панели управления нашим хостингом. Заходим в панель управления Для просмотра ссылки Войди или Зарегистрируйся, переходим на вкладку "Домены" и прикрепляем существующий или регистрируем новый домен.

Следующий этап - настройка DNS записей, нажимаем на следующую кнопку:
(если электронная почта с именем вашего домена вам не нужна - этот пункт можно пропустить)
7ec0eae739684ccb8b2c9cfb14f92e0b.jpg


Пожалуй основное, что нам нужно здесь сделать это прописать DNS для нашего почтового сервера.
Я лично пользуюсь и рекомендую всем: Для просмотра ссылки Войди или Зарегистрируйся - подробные инструкции по настройке также там имеются.
В итоге должно получится что-то вроде этого:
1f5263cc3e5243619c01f9c96e8d9474.jpg


Теперь добавим наш новый домен к нам на сервер и организуем ftp доступ для него.
Для этого открываем контрольную панель Vesta и переходим на вкладку WEB.
Нажимаем: "Add new domain" и делаем как на скриншоте:
8fa6d584afbf4d38b6224e440a1a883a.jpg

Нажимаем "Add". Отлично теперь мы прикрепили наш домен к нашему web серверу и организовали FTP доступ к нему.

Осталось добавить базу данных, для этого вам нужно перейти по адресу your-domain.ru/phpmyadmin войти из под root(введя тот пароль, который мы вводили во время установки mariadb), создать новую базу, нового пользователя и наделить его привилегиями доступа на эту базу.

Поздравляю вы сделали это сами! Теперь у вас есть свой собственный и быстрый сервер, а также все необходимое для того, чтобы загрузить сайт, подключить базу данных и т.п.!
Покажите пожалуйста живой магазин развернутый на этом VPS с настройками.
 
Покажите пожалуйста живой магазин развернутый на этом VPS с настройками.
Скинул адрес в личку, ибо потом он уже будет не актуален для размещения в этой теме, в связи с изменениями и переездом.
Так что если будут мысли, советы после просмотра - пиши тут о результатах увиденного
 
После настройки и конфигурации nginx+php-fmp магазин работает нормально, только не могу зайти в конфиги модулей, пример - аналитика Для просмотра ссылки Войди или Зарегистрируйся
В чем может быть проблема?
 
Что за конфиги и как туда заходил?
Что касается fmp может быть в этом проблема:
Преимущество наверное у nginx + php-fpm... меньше жрёт памяти озу + лишний узел апач убран.
Но минус - нет поддержки htaccess. Но можно реврайты прописать в конфиг.
 
После настройки и конфигурации nginx+php-fmp магазин работает нормально, только не могу зайти в конфиги модулей, пример - аналитика Для просмотра ссылки Войди или Зарегистрируйся
В чем может быть проблема?
То что вы показали, это креш по синтаксической ошибке или notice.
Включите показ ошибок и увидите причину.
 
Назад
Сверху