Общие Вопросы По Настройке Серверов


#141

Подскажите,случайно удалили все папки с хостинга,база данных цела,закачиваю бэкап файлов,но система не поднимается,выводит пустую страницу вместо сайта.

По идее должно было встать на свои места,т.к все файлы полностью идентичные,но нет

Где искать проблему?

Отображение ошибок включите в config.local.php

ini_set('display_errors', 1);
define('DEVELOPMENT', true);

#142

Отображение ошибок включите в config.local.php

ini_set('display_errors', 1);
define('DEVELOPMENT', true);

Включил,напомните,где смотреть ошибки?


#143

Включил,напомните,где смотреть ошибки?

вывел ошибки

Message

"APC" PHP extension is not installed.

Error at

app/Tygh/Backend/Cache/Apc.php, line: 28

Backtrace

			File:
		
			app/Tygh/Registry.php
	
			Line:
		
			309
	
			Function:
		
			<b>__construct</b>
	
			File:
		
			app/Tygh/Registry.php
	
			Line:
		
			264
	
			Function:
		
			<b>cacheInit</b>
	
			File:
		
			app/functions/fn.init.php
	
			Line:
		
			772
	
			Function:
		
			<b>registerCache</b>
	
			File:
		
			app/functions/fn.init.php
	
			Line:
		
			929
	
			Function:
		
			<b>fn_init_settings</b>
	
			File:
		
			init.php
	
			Line:
		
			138
	
			Function:
		
			<b>fn_init</b>
	
			File:
		
			index.php
	
			Line:
		
			24
	
			Function:
		
			<b>require</b>

#144

вывел ошибки

Message

"APC" PHP extension is not installed.

Error at

app/Tygh/Backend/Cache/Apc.php, line: 28

Backtrace File: app/Tygh/Registry.php Line: 309 Function: __construct File: app/Tygh/Registry.php Line: 264 Function: cacheInit File: app/functions/fn.init.php Line: 772 Function: registerCache File: app/functions/fn.init.php Line: 929 Function: fn_init_settings File: init.php Line: 138 Function: fn_init File: index.php Line: 24 Function: require

Лог ошибок запускается только на версии PHP 5.4 native


#145

вывел ошибки

Message

"APC" PHP extension is not installed.

Error at

app/Tygh/Backend/Cache/Apc.php, line: 28

Backtrace File: app/Tygh/Registry.php Line: 309 Function: __construct File: app/Tygh/Registry.php Line: 264 Function: cacheInit File: app/functions/fn.init.php Line: 772 Function: registerCache File: app/functions/fn.init.php Line: 929 Function: fn_init_settings File: init.php Line: 138 Function: fn_init File: index.php Line: 24 Function: require

Уберите из config.local.php cache_backend с названием apc, заменив на file.


#146

Уберите из config.local.php cache_backend с названием apc, заменив на file.

Проблему решили,перебрались на другой хостинг)


#147

Здравствуйте!

На основной витрине для хранения сессий использую redis, на тестовой поставил database. Всё ПО на чистый сервер устанавливалось ansible-сценарием, который вы рекомендуете. Настройки redis остались те, что создаёт этот сценарий.

Вопрос в следующем: на тестовой витрине (сессии в database) неавторизованный пользователь кинул товар в корзину, через день-два заходит и видит свои товары в корзине. На основной же витрине (сессии в redis) уже через пару часов сессия сбрасывается, корзина очищается. Как-нибудь можно это победить при использовании redis для хранения сессий? Может в его конфиге нужны какие-то особые настройки?


#148

Здравствуйте!

На основной витрине для хранения сессий использую redis, на тестовой поставил database. Всё ПО на чистый сервер устанавливалось ansible-сценарием, который вы рекомендуете. Настройки redis остались те, что создаёт этот сценарий.

Вопрос в следующем: на тестовой витрине (сессии в database) неавторизованный пользователь кинул товар в корзину, через день-два заходит и видит свои товары в корзине. На основной же витрине (сессии в redis) уже через пару часов сессия сбрасывается, корзина очищается. Как-нибудь можно это победить при использовании redis для хранения сессий? Может в его конфиге нужны какие-то особые настройки?

Сценарием устанавливается два инстанса Redis: один для кеша (хранится в памяти, не сбрасывается на диск), другой — для сессий (хранится в памяти и периодически сбрасывается на диск). Использовать нужно второй (127.0.0.1:6380). Если у вас не планируется высокая нагрузка, то хранение сессий в redis не даст вам особого прироста, так что можно использовать и MySQL.


#149

Сценарием устанавливается два инстанса Redis: один для кеша (хранится в памяти, не сбрасывается на диск), другой — для сессий (хранится в памяти и периодически сбрасывается на диск). Использовать нужно второй (127.0.0.1:6380). Если у вас не планируется высокая нагрузка, то хранение сессий в redis не даст вам особого прироста, так что можно использовать и MySQL.

Да, вот настройки в конфиге:

$config['session_backend'] = 'redis';
$config['session_redis_server'] = 'localhost:6380';
Файл sessions.aof заполняется. Очистка его по достижении 64Мб происходит пока что где-то раз в два месяца.
Для кэша использую apc. Нагрузку ожидаем высокую, пока разработка ведётся, поэтому хотелось бы разобраться с этим моментом.

#150

Да, вот настройки в конфиге:

$config['session_backend'] = 'redis';
$config['session_redis_server'] = 'localhost:6380';
Файл sessions.aof заполняется. Очистка его по достижении 64Мб происходит пока что где-то раз в два месяца.
Для кэша использую apc. Нагрузку ожидаем высокую, пока разработка ведётся, поэтому хотелось бы разобраться с этим моментом.

Обратите также внимание на TTL для записей в Redis в config.local.php.


#151

Обратите также внимание на TTL для записей в Redis в config.local.php.

Эм, это которое задаётся настройкой $config['cache_redis_global_ttl']?

Оно на сессии тоже влияет? Просто и в названии про cache, и располагается оно в месте, где про кэш пишется, и коммент (// set this if your cache size reaches Redis server memory size) про кэш.


#152

Эм, это которое задаётся настройкой $config['cache_redis_global_ttl']?

Оно на сессии тоже влияет? Просто и в названии про cache, и располагается оно в месте, где про кэш пишется, и коммент (// set this if your cache size reaches Redis server memory size) про кэш.

По умолчанию, ключи в sessions не имеют срока жизни.

Проверить гипотезу можно следующим образом:

- подключиться к консоли redis с помощью redis-cli

- найти нужный ключ с сессией

- посмотреть его время жизни с помощью команды TTL.


#153

По умолчанию, ключи в sessions не имеют срока жизни.

Проверить гипотезу можно следующим образом:

- подключиться к консоли redis с помощью redis-cli

- найти нужный ключ с сессией

- посмотреть его время жизни с помощью команды TTL.

У меня вот так, т.е. TTL устанавливается равным 3900 после обновления страницы, судя по всему.

127.0.0.1:6380> keys *

4) “session:3c20c5bfcfc0377b9178e75427e2ca65-C”

8) “online:session:3c20c5bfcfc0377b9178e75427e2ca65-C”

127.0.0.1:6380> ttl online:session:3c20c5bfcfc0377b9178e75427e2ca65-C
(integer) 288
127.0.0.1:6380> ttl session:3c20c5bfcfc0377b9178e75427e2ca65-C
(integer) 3878
127.0.0.1:6380>

Происходит это здесь, похоже (app/Tygh/Backend/Session/Redis.php - и код этот стандартный)

public function write($sess_id, $data)
    {
        $this->query('hmSet', $this->id($sess_id), $data);
        $this->query('setTimeout', $this->id($sess_id), $this->config['ttl'] + SECONDS_IN_HOUR); // increase alive time to allow garbage collector move session to stored sessions storage
    $this->query('set', $this->id($sess_id, 'online:'), 1);
    $this->query('setTimeout', $this->id($sess_id, 'online:'), $this->config['ttl_online']);

    return true;
}

Правда, я не совсем понимаю, почему у меня ставится 3900, когда должно быть 3600 + $this->config['ttl'] (это насколько я понял тянется из app/Tygh/Session.php:

protected static $ttl = SESSION_ALIVE_TIME;

что равно:

define('SESSION_ALIVE_TIME', SECONDS_IN_HOUR * 2); // 2 hours)

Т.е. должно быть итоговое TTL 10800.


#154

Да, $this->config['ttl'] нашёл. Он в app/Tygh/Providers/SessionProvider.php устанавливается со значением SESSION_ONLINE, как раз равным 300.


#155

Да, $this->config['ttl'] нашёл. Он в app/Tygh/Providers/SessionProvider.php устанавливается со значением SESSION_ONLINE, как раз равным 300.

Спасибо за исследования. Предлагаю увеличить $this->config['ttl'] в app/Tygh/Providers/SessionProvider.php до требуемого значения и пронаблюдать за TTL в Redis.


#156

Спасибо за исследования. Предлагаю увеличить $this->config['ttl'] в app/Tygh/Providers/SessionProvider.php до требуемого значения и пронаблюдать за TTL в Redis.

Пожалуй да, это самое простое решение.

Спасибо!


#157

Помогите!

Имеем Nginx + PHP-FPM + MySQL, в файле конфигурации прописали вроде все рекомендуемые настройки, но (из замеченного) /sitemap.xml и /yandex_market.yml при переходе отдают ошибку 404 Not Found

подскажите пожалуйста может еще надо внести какие-то настройки в файл конфигурации Nginx?


#158

Помогите!

Имеем Nginx + PHP-FPM + MySQL, в файле конфигурации прописали вроде все рекомендуемые настройки, но (из замеченного) /sitemap.xml и /yandex_market.yml при переходе отдают ошибку 404 Not Found

подскажите пожалуйста может еще надо внести какие-то настройки в файл конфигурации Nginx?

Покажите конфигурацию nginx. Скорее всего вам нужно удалить из списка расширений xml для того, чтобы nginx не отдавал файлы напрямую.


#159

Покажите конфигурацию nginx. Скорее всего вам нужно удалить из списка расширений xml для того, чтобы nginx не отдавал файлы напрямую.

Спасибо! Действительно, удалил расширения xml и yml из

# Настройки статики, первое правило

location ~* \.(jpeg|ico|jpg|gif|png|css|js|pdf|txt|tar|gz|wof|csv|zip|xml|yml) {
access_log off;

и файлы /sitemap.xml и /yandex_market.yml стали доступны


#160

Всем привет!

Нашел ахренительно дешевый и вроде как быстрый VPS хостинг (по крайней мере сравнение времени ответа магазина на ihor.ru и этом показывает выигрыш в ПЯТЬ РАЗ). Полкз все сам настраивать, вроде все настроил и заработало. Но уперся в NginX. Скажите мне, вот эта статья актуальна?

http://www.cs-cart.ru/docs/4.3.x/install/vps/nginx/

Ибо я сразу споткнулся что у меня нет

Найдите на сервере и откройте файл:

/etc/nginx/sites-available/default

Но есть

/etc/nginx/conf.d/default.conf

И в нем

server {
    listen       80;
    server_name  localhost;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

Означает ли это что:

1. У меня по факту не работае ваще NginX?

2. Надо все переделывать как в статье Баженова?

Но у меня на этой машине несколько сайтов...

И нет ли где какого-свежего мануала по настройке centos?

Спасибо!