В фреймворке Yii 2.0 встроена поддержка jquery плагина pjax, объединяющего pushState и ajax технологии. Подробнее на гитхабе разработчика. Для примера сделаем возможность добавления новой Заметки в списке заметок без перезагрузки страницы.
Одной из замечательных особенностей Yii 2.0 является встроенная поддержка Bootstrap 3.0 от Twitter. Для вывода компонентов бутстрапа в шаблонах приложения можно использовать виджеты. Виджеты в Yii2 — небольшие блоки кода, которые можно легко многократно использовать для форматированного вывода данных. Как и большинство объектов в Yii 2.0, настройки виджету можно передать в виде массива параметров. Вместо немного монструозного $param = array(‘key1′ =>’value1’,… Читать далее »
Одно из основных понятий в фреймворке Yii 2.0 — приложение. В контексте Yii2, приложение — объект, который определяет структуру и и жизненный цикл запросов на веб-сайте. Приложение, так же, может быть и консольным, но мы будем рассматривать веб-приложение. Каждый запрос к Yii-приложению осуществляется через входной скрипт, который настраивает приложение: $application = new yii\web\Application($config); и запускает его: $application->run();
Один из самых часто встречающихся вопросов по Yii 2.0 — реализация управления доступом на основе ролей. Поддержка RBAC встроена в Yii2, но она может быть сложновата для реализации начинающими разработчиками, впервые столкнувшимися с этим вопросом при знакомстве с Yii 2.0. Часто бывает достаточно всего двух ролей: Пользователь и Администратор. Эта реализация поможет понять как работает механизм RBAC в Yii2 и… Читать далее »
В данной статье мы установим Yii 2.0, настроим локальную среду для разработки и создадим первое простое приложение из встроенного шаблона basic. Релиз Yii 2.0, новой версии замечательного фреймворка, состоялся 12 октября 2014 года. Установка Yii 2.0 Подробную информацию по установке фреймворка можно найти в соответствующем разделе Документации по Yii 2.0. Там же можно найти и описание классов и расширений. Русская… Читать далее »
Недавно появилась необходимость собирать скриншоты с нескольких управляемых PTZ купольных IP камер RVi-IPC52DN20. Стандарт Onvif подразумевает взаимодействие с устройством через SOAP интерфейс. Получаем информацию об устройстве Согласно официальной спецификации, на запрос GetDeviceInformation: [xml]<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <GetDeviceInformation xmlns="http://www.onvif.org/ver10/device/wsdl"/> </s:Body> </s:Envelope>[/xml]
Несколько раз приходилось сталкиваться с серверами, использующими жесткие диски объемом 2Тб. На одном из них нужно было оставить 100Гб под нужны операционной системы и другого программного обеспечения, а все остальное место предназначено для хранения данных. Диск был разбит с использованием LVM (Linux Volume Manager) /dev/sda на весь диск. Использование fdisk для создания дополнительных разделов было невозможно. Создадим новый логический том… Читать далее »
Столкнулся со следующей проблемой, иногда curl возвращает ошибку «406 Not Acceptable» answer: # curl http://domain.com/curl.php <html><head> <title>406 Not Acceptable</title> </head><body> <h1>Not Acceptable</h1> <p>An appropriate representation of the requested resource /curl.php could not be found on this server.</p> <p>Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.</p> </body></html> Способ решения проблемы найден достаточно… Читать далее »
Недавно, в очередной раз, понадобилось сделать снимок работающей базы данных MySQL и развернуть его в другом месте. Этот метод сохраняет ВСЕ базы данных в один файл, который может быть импортирован на другом сервере. Для этого понадобится учетная запись root MySQL сервера. Экспортируем: # mysqldump -u root -p $PASS —all-databases > MyDUMP.sql Импортируем:
Столкнулся с проблемой, пользователь не может переслать письмо на адреса root@somehost и postmaster@somehost в Plesk. Я, так же, пробовал сделать это вручную, через командную строку. Меня привлекла следующая запись об ошибке в логах qmail: Uh-oh:_first_line_of_.qmail_file_is_blank.
Ежедневно тысячи «скрипт-киддисов» бороздят просторы интернетов при помощи специальных сканеров, анализирующих версии серверного программного обеспечения на предмет наличия уязвимостей, упрощающих удаленный взлом. Например версия устаревшего Apache может выдать уязвимость, через которую злоумышленник сможет загрузить шелл и скомпрометировать безопасность всего сервера. Список сайтов со старыми, уязвимыми версиями скриптов, cms, форумных движков можно найти в любой поисковой системе.
Рассмотрим общий алгоритм добавления нового диска в систему CentOS или RedHat. Убедимся, что диск отформатирован. Первый, второй и третий диски будут, соответственно, /dev/sda, /dev/sdb и /dev/sdc. Проверяем командой fdisk -l: [13:23:12] [root@localhost ~]# fdisk -l Disk /dev/sda: 25.7 GB, 24741258411 bytes 255 heads, 63 sectors/track, 3471 cylinders Units = cylinders of 12254 * 512 = 6274048 bytes Device Boot Start… Читать далее »
Проблема со слишком большим количеством подключений к MySQL возникает обычно по двум причинам: Все логично — очень большое количество посетителей и, как следствие, большая нагрузка на сервер. Встречается не так часто, но и не редко — большое количество подключений MySQL, при небольшом количестве посетителей. Не оптимизированные скрипты, работающие с субд, в том числе и не закрывающие подключения. Первый способ решения… Читать далее »
Сегодня вышла в свет стабильная версия php-фреймворка yii 2.0 и я не могу не написать об этом знаменательном событии, которого многие ожидали с нетерпением. Официальную информацию можно узнать здесь. Чем больше я узнаю yii2, тем больше он мне нравится. Начиная с альфа версии, я приступил к его изучению, тогда документация была совсем еще сырая. И несмотря на это, я смог… Читать далее »
Я часто встречаю в сети вопросы пользователей wordpress и других cms вроде этого: При попытке загрузить файл, сервер выдает ошибку: Не удалось загрузить файл image.jpg. Невозможно создать директорию wp-content/uploads/2014/09. Проверьте доступность данной директории на запись! Обычно каталог «uploads» должен иметь разрешения 777 или принадлежать пользователю, под которым работает веб-сервер/php, но в зависимости от используемых инструментов разработчика (Webmin/cPanel/Pleask и других), права… Читать далее »
Данная таблица позволяет легко понять и запомнить механизм разграничения прав доступа в linux: User (пользователь) Group (группа) Other (все остальные) Read 4 4 4 Write 2 2 2 Execute 1 1 1 U G O X X X И, на последок, пример расшифровки некоторых значений chmod: 777 rwxrwxrwx 755 rwxr-xr-x 750 rwxr-x— 700 rwx—— 644 rw-r—r—
В определенной степени, мне надоело часто набирать пароль root — он у меня достаточно длинный. Нашел для себя решение, все-лишь нужно подправить файл /etc/sudoers в: <user> ALL=NOPASSWD: ALL Не забываем заменить <user> на имя пользователя, которому даем такую привилегию. Теперь простой командой sudo su — мы повышаемся до root: [17:53:21] [nix@localhost ~]$ sudo su — [17:53:22] [root@localhost ~]# Не забываем, что это… Читать далее »
Поиск больших файлов в Linux может понадобиться в случае нехватки свободного места на жестком диске. Я обычно использую этот метод когда меня просят помочь с решением вопроса пропажи свободного места в системе Linux. С этой командой (с правами root или обычного пользователя) можно найти большие файлы и узнать их местоположение и удалить, если потребуется: $ find <path> -size +40M -exec… Читать далее »
При работе с внешними жесткими дисками и другими съемными носителями нередко случается ситуация, когда при размонтировании диска возникает ошибка «Device is busy» : [root@localhost]# umount /external/ umount: /external: device is busy umount: /external: device is busy В реальности, мой внешний диск /dev/sdb2 смонтирован к /external: [rootlocalhost]# fuser -m /dev/sdb2 /dev/sdb2: 12432
EPEL (Extra Packages for Enterprise Linux) — включает в себя большое количество программных пакетов, отсутствующих в стандартной поставке CentOS/RHEL. Все пакеты EPEL протестированы на совместимость с системой и оперативно обновляются. CentOS 7.x rpm -ivh http://mirror.logol.ru/epel/7/x86_64/e/epel-release-7-5.noarch.rpm CentOS 6.x (i386) rpm -ivh http://mirror.logol.ru/epel/6/i386/epel-release-6-8.noarch.rpm CentOS 6.x (x86_64) rpm -ivh http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm Подробное описание, пакеты для устаревших версий linux и много полезной информации всегда можно найти… Читать далее »