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

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

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

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

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

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

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

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

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

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

вывел ошибки

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>

вывел ошибки

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

вывел ошибки

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

По умолчанию, ключи в 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.

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

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

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

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

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

Спасибо!

Помогите!

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

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

Помогите!

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

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

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

Покажите конфигурацию 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 стали доступны

Всем привет!

Нашел ахренительно дешевый и вроде как быстрый 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?

Спасибо!