Виталий Серый

Виталий Серый

С нами с 17 января 2013; Место в рейтинге пользователей: #107
Василий Наумкин
29 апреля 2014, 23:38
2
0
sudo service php5-fpm stop
sudo killall php5-fpm
sudo service php5-fpm start
Алексей
29 апреля 2014, 23:36
1
0
после апдейта на 64х битное ядро не дает добавить сайт на Modx через стандартные скрипты установки.
Вернее сайт скачивается, устанавливается, однако при попытке зайти на него через браузер — вылезает 502 ошибка.
В логах nginx для этого домена:
[crit] 29714#0: *277730 connect() to unix:/var/run/php5-domain.sock failed (2: No such file or directory) while connecting to upstream, client: 92.4.9.1, server: domain.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-domain.sock:"
И конечно nginx пишет:
502 Bad Gateway
Кстати, зашел в /var/run/ — посмотрел, там действительно нету файла «php5-domain.sock» — как его там создать? я на сколько понимаю это «процесс» а не «файл».
Василий Наумкин
28 апреля 2014, 16:49
1
0
Не знаю, почему у тебя сломалось только сейчас, но проблема в отключенной функции stream_socket_client().

Она указана у меня в моих скриптах автоустановки, и там я накидал всё потенциально опасное. Очевидно, что если на хостинге работаешь только ты, можно эту строку просто закомментировать.
#php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source,stream_socket_client,stream_set_write_buffer,stream_socket_sendto,highlight_file,com_load_typelib

Вообще, не уверен, что она действительно нужна, учитывая open_basedir, владельца процесса php и выставленные права на файлы.
Василий Наумкин
27 апреля 2014, 06:04
1
0
Летом должна выйти 14.04.1 и тогда можно будет обновить сервера через do-release-upgrade.

Это будет вполне себе удобно и безопасно.
Iaroslav tkachuk
07 апреля 2014, 14:55
3
0
Возможно будет полезно, в файле core/model/phpthumb/phpthumb.class.php заменить строчку 2126 а именно
$this->thumbnail_image_width = round($this->thumbnail_image_height * $aspectratio);
на
if ( $this->thumbnail_image_width<$this->thumbnail_image_height ){
	$this->thumbnail_image_width = round($this->thumbnail_image_height / $aspectratio);
} else {
	$this->thumbnail_image_width = round($this->thumbnail_image_height * $aspectratio);
}
и надеяться что баг будет исправлен.
Илья Ершов
28 марта 2014, 13:38
2
0
Для потомков:
Предложенный вариант
$cache = $modx->getCacheManager()->getCacheProvider($modx->getOption('cache_resource_key', null, 'resource'));
$key = $modx->resource->getCacheKey();
$cache->delete($key, array('deleteTop' => true));
$cache->delete($key);
работает, но как-то странно… я наблюдал, что при первом обновлении страницы после выполнения этого кода — страница всё равно загружается из Кэша, очень похоже, что это был кэш браузера.

А вот такой вариант чистит сразу:
$id=79;
$resource=$modx->getObject('modResource',$id);
$cacheKey = $resource->getCacheKey();
$modx->cacheManager->refresh(array(
    'resource' => array('key' => $cacheKey),
));
Изменения видны при первом же обновлении страницы.

Но в обоих вариантах используется объект cacheManager
Василий Наумкин
28 января 2014, 14:18
4
0
Я выставляю пользователю переменную в поле extended профиля, а потом проверяю её при загрузке им страницы.

Если есть — перезагружаю его права.
$extended = $modx->user->Profile->get('extended')) {
if (!empty($extended['updateGroups'])) {
	unset($_SESSION['modx.user.'.$modx->user->id.'.userGroupNames']);
	$extended['updateGroups'] = 0;
	$modx->user->Profile->set('extended', $extended);
	$modx->user->Profile->save();
	
	$ctxQuery = $modx->newQuery('modContext');
	$ctxQuery->select($modx->getSelectColumns('modContext', '', '', array('key')));
	if ($ctxQuery->prepare() && $ctxQuery->stmt->execute()) {
		if ($contexts = $ctxQuery->stmt->fetchAll(PDO::FETCH_COLUMN)) {
			$serialized = serialize($contexts);
			$modx->exec("UPDATE {$modx->getTableName('modUser')} SET {$modx->escape('session_stale')} = {$modx->quote($serialized)}");
		}
	}
}
Олег Трубин
11 сентября 2013, 17:47
3
0
Я сделал так. Задача: Нужно разным группам пользователей показывать разные ресурсы.
1. Иду «Безопасность — Группы ресурсов». Создаю группу ресурсов: имя — «vkm-kurs», контекст — «web», ставлю галочку — «Создать параллельную группу пользователей», жму «сохранить»;
2. Прямо там же, перетаскиванием, добавляю в эту группу нужный ресурс;
3. Иду «Безопасность — Контроль доступа». На вкладке «Группы пользователей» щелкаю правой кнопкой по автоматически созданной группе пользователей «vkm-kurs» и выбираю «Добавить пользователя в группу». В появившемся окошке выбираю нужного пользователя и выбираю роль «member» (у неё ранг 9999).
4. Далее, для проверки, опять щелкаю правой кнопкой по группе пользователей «vkm-kurs» и выбираю «Редактировать группу пользователей». На открывшейся страничке, на вкладке «Доступ к группам ресурсов» в табличке вижу запись: Группа ресурсов — «vkm-kurs», минимальная роль — «Member — 9999», Политика доступа — «Resource», Контекст — «web».
5. Далее проверяю её видимость на фронте для анонимов и для нужного юзера. Проверяю в другом браузере — где НЕ залогинен админом — вроде всё работает.
Василий Наумкин
08 мая 2013, 21:22
1
0
You can store additional fields in «properties» of msOrder.

Customization of back-end now is only by plugins, that will load custom ExtJS and modify page
if ($modx->event->name == 'OnManagerPageBeforeRender') {
	$controller->addHtml('
	<script type="text/javascript">
		Ext.onReady(function() {
			// your code here
		});
	</script>');
}