Docker, часть 1 – установка, настройка и начало работы

Docker – это компактный инструмент виртуализации с открытым исходным кодом, работающий на уровне операционной системы, автоматизирующий развертывание приложений в контейнерах Linux и предоставляющий возможность упаковывать в контейнер приложение со всей необходимой структурой зависимостей (код, рабочая среда, библиотеки, переменные среды, файлы конфигурации). Читать

Не удалось найти HDD или SSD при установке Windows

Если вы пытаетесь установить Windows на виртуальной машине VirtualBox, но видите сообщение об ошибке «Не удалось найти диски». Чтобы получить драйвер хранилища, нажмите «Загрузить драйвер», тогда этот пост поможет вам решить эту проблему. Это сообщение об ошибке появляется на экране, где пользователю необходимо выбрать раздел для установки гостевой ОС. Основной причиной этой проблемы является отсутствие правильных настроек и повреждение виртуального диска. Если вы будете следовать этому руководству, вы сможете исправить проблему, исправив настройки оборудования.

Чтобы решить эту проблему, вы можете следовать этим инструкциям:

  1. Удалить существующие устройства хранения
  2. Создать новое устройство хранения
  3. Выберите правильный файл ISO

Для начала вам необходимо удалить все существующие устройства хранения. Поскольку VirtualBox имеет эту опцию по умолчанию, нет необходимости устанавливать стороннее программное обеспечение.

Поэтому откройте VirtualBox, выберите виртуальную машину и нажмите кнопку «Настройки». После этого перейдите в раздел «Хранилище». Справа вы найдете Контроллер: SATA и две другие суб-метки. Выберите «Контроллер: SATA» и нажмите красную крестообразную кнопку с надписью «Удалить выбранный контроллер хранилища».

После этого щелкните значок «Добавить новый контроллер хранилища» и выберите «Добавить контроллер SATA» из списка.

Затем нажмите кнопку «Добавить жесткий диск» и выберите «Создать новый диск».

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

После этого нажмите кнопку «Добавить оптический привод» и выберите «Выбрать диск». Теперь вам нужно выбрать файл ISO. Если вы можете найти файл ISO в списке, выберите его оттуда. В противном случае нажмите кнопку «Добавить», перейдите к папке и выберите свой файл ISO.

Теперь нажмите кнопку ОК и загрузите вашу виртуальную машину. Вместо сообщения об ошибке вы получите несколько вариантов, подобных этому:

Если вы достигли этого этапа, вы можете создать новый раздел и запустить процесс установки Windows.



2019-04-23T11:04:12
Вопросы читателей

Создание сайта на WordPress

Когда появляется необходимость запустить свой собственный сайт в интернете, многие заказчики данной категории услуг желают вложиться в небольшой бюджет, чтобы сократить свои материальные затраты. В таком случае предлагается выбрать создание сайта на wordpress в Полюс Альфа. Данные категории услуг сегодня можно заказать по приемлемой стоимости. Чтобы качество проделанной работы оставалось на высоком уровне, важно сотрудничать с опытными профессионалами, хорошо знающими свое дело, серьезно подходящими к работе с каждым из клиентов.

Разработка сайтов — актуальные и востребованные услуги

Обратившись в специализированную компанию, можно получить коммерческое предложение на разработку сайта. Сотрудники компании внимательно относятся к своим заказчикам. Клиенты сразу могут получить исчерпывающие ответы на все возникающие вопросы. В частности их интересует продолжительность выполнения заказов и стоимость, чтобы сориентироваться в сроках и своих материальных затратах.

Количество клиентов, заказывающих сегодня создание сайта на wordpress, а также с использованием других технологий, стремительно увеличивается. Ничего удивительного, ведь работа своего сайта во всемирной сети позволит достигнуть отличных результатов. Веб-ресурсы способствуют привлечению большего количества новых клиентов и удержанию постоянных.

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

Помощь опытных разработчиков

Сам сайт станет способом улучшения имиджа организации. Вместе с ним можно показать статус компании. Но чтобы достичь всех перечисленных преимуществ, необходимо грамотно подойти к столь ответственному делу как разработка. Получив выгодное коммерческое предложение на разработку сайта, стоит сотрудничать исключительно с опытными профессионалами https://p.kiev.ua, имеющими все требуемые знания и практические навыки.

Квалифицированные специалисты помогут подобрать оптимальные решения для достижения наилучших результатов. Ресурс должен быть оформленным на достойном уровне. Также стоит тщательно проработать его функциональность, чтобы при посещении у пользователей не возникало никаких проблем.



2019-04-22T16:02:29
Лучшие учебники по Wodpress

Чистые ссылки в Drupal 7 – общие сведения, неполадки и их устранение

Нередко разработчики или владельцы сайтов на Drupal сталкиваются с такой особенностью этой CMS, как «чистые» ссылки. Дело в том, что архитектура Drupal (до 7-й версии включительно) устроена таким образом, что ссылки на страницы генерируются только в машинопонятном виде. Это неудобно для ручной навигации по адресам, а также вызывает ряд других проблем. В данной статье будет рассказано, каким образом включать «чистые» ссылки в Drupal 7. А также рассмотрены некоторые распространённые неполадки, связанные с работой «чистых» ссылок и методы их устранения.

Что такое «чистые» ссылки и для чего они нужны?

«Чистая» красивая и понятная ссылка выглядит, например, так:

https://drupal-site/user

Обычная ссылка, генерируемая Drupal 7 куда менее привлекательна и наглядна:

https://drupal-site/?q=user

Обычному пользователю последний вариант практически ни о чём не говорит. А вот программист или хакер сразу поймёт, каким образом и какие параметры нужно передавать через базовый адрес drupal-site. Чтобы достичь (или даже попытаться взломать) какую-либо страницу сайта. Таким образом чистые ссылки играют не последнюю роль в безопасности сайта. Да и вообще любого веб-приложения.

Поисковые системы, когда встречают ссылку, которая не очищена от технического «мусора» обычно её пропускают и не индексируют. Какой бы интересный контент по этой ссылке ни находился. Отсюда вывод: «чистые» ссылки играют важную роль для SEO – поисковой оптимизации контента веб-приложения, т. е. сайта. Быстро и качественно продвинуть для поисковиков такой сайт точно не получится, если получится вообще.

Поэтому для сайтов, созданных на CMS Drupal версии 7 и более ранних необходимо следить за тем, чтобы «чистые» ссылки (ЧС) были во-первых: включены в панели администрирования, а во-вторых поддерживались конфигурацией веб-окружения, на котором работает сайт.

Как включить «чистые» ссылки в Drupal 7?

Перейдя в раздел «Конфигурация». А затем выбрав в категории «Поиск и метаданные» пункт «Чистые ссылки», ЧС могут быть включены:

Следует ещё раз обратить внимание на конкретном примере, насколько удобочитаемым выглядит адрес в режиме работы ЧС:

Обычно, опция включения «чистых» ссылок активна. Если Drupal не «сомневается» в задействовании такой возможности. Если же по каким-то причинам Drupal не может определить, возможно ли использование ЧС. Он предложит провести тест проверки вручную. Это сделано для того, чтобы лучше контролировать процесс устранения неполадок с работой ЧС. Например:

Неполадки с «чистыми» ссылками и их устранение

С работой ЧС часто возникают две основные проблемы:

  • отсутствует или отключен модуль для перестроения URL-адресов, в частности, преобразующий их в «чистые» ссылки, такой как mod_rewrite для Apache;
  • использование HTTPS-протокола для базового URL веб-приложения, что как таковой проблемой не является. Однако в этом случае Drupal не может корректно выполнить тест работы ЧС и активировать соответствующую опцию.

В первом случае необходимо проверить, установлен и включен ли модуль rewrite Apache:

$ apachectl -M | grep rewrite

rewrite_module (shared)

Данный вывод говорит о том, что нужный модуль включен, в противном случае вывод будет пустым. Это также можно проверить вручную, просмотрев содержимое каталога /etc/ apache2/mods-enabled:

$ ls /etc/apache2/mods-enabled | grep rewrite

rewrite.load

В случае, если вывод будет пустым, нужно установить модуль rewrite для Apache. Если в системе доступны служебные утилиты Apache, среди которых a2enmod, то включить требуемый модуль можно очень быстро командой:

$ sudo a2enmod rewrite

Со вторым случаем, когда не удаётся задействовать ЧС, часто сталкиваются, когда переводят сайт на использование защищённого протокола HTTPS. В такой ситуации используют редирект с обычной версии сайта на HTTPS. Например такой (зависит от настроек веб-окружения):

RewriteCond %{HTTPS} off

RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Подобные записи делаются в файле .htaccess Drupal и именно это мешает выполнению теста ЧС. В данном случае нужно просто задействовать их принудительно, добавив в файл drupal-site/sites/default/settings.php строку:

$conf[‘clean_url’] = 1;

Также необходимо определить новый базовый адрес сайта, основанный на HTTPS:

$base_url = ‘https://drupal-site’;

Стоит обратить внимание, что каталог default и сам файл settings.php защищены от записи. Перед внесением изменений необходимо настроить соответствующие режимы доступа.

Дополнительной мерой для обеспечения работы ЧС в Drupal является задание директивы Apache AllowOverride All для корневого каталога виртуальных хостов, например:

AllowOverride All

Также желательно, чтобы в файле .htacces или в конфигурационном файле виртуального хоста сайта на Drupal присутствовали следующие инструкции:

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !=/favicon.ico

RewriteRule ^ index.php [L]

Заключение

В заключение нужно отметить, что рассмотренные проблемы с ЧС — самые распространённые. Которые могут возникнуть на любом используемом хостинге. А рассмотренные методы их устранения рекомендованы самими разработчиками Drupal

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-04-22T15:14:51
Drupal

Программный вывод полей в Drupal 7

При работе с проектами на Drupal 7 нередко возникает необходимость вывода данных нестандартно, т. е. без использования инструментов пользовательского интерфейса. Несмотря на то, что даже стандартный способ вывода данных или полей достаточно гибок и универсален, однако бывают ситуации, когда лучше и проще прибегнуть к программному способу. Другими словами, выводить поля, написав соответствующий код, используя API Drupal. В данной статье будет показано, в каких ситуациях и как вывести поля программным способом.

Когда нужно выводить поля программно?

Поле необходимо выводить программно в следующих случаях:

  • Когда изначально не представляется возможным задействовать стандартный инструментарий пользовательского интерфейса, по-умолчанию предоставляемого Drupal. Например, когда разрабатывается новый модуль, который работает с данными полей, которые необходимо определённым образом отображать;
  • Когда необходимо вывести поле в непредусмотренном для него месте.

Все эти ситуации объединяет один фактор: поле выводится вне своей сущности. Любое поле в Drupal принадлежит какой-либо структуре данных. Когда из этой структуры данных берётся отдельное поле (или его значение) и далее выводится отдельно от его структуры данных, то это в частности, и есть программный вывод поля. Сама же структура данных, к которой принадлежит поле — это и есть сущность.

Для примера можно рассмотреть распространённую ситуацию. Пусть требуется вывести в боковой колонке содержимое самого популярного или высокооценённого комментария для какой-либо из статей. Сам комментарий — это целостная структура данных, состоящая из таких полей как: тема, автор, дата размещения, количество лайков, ну и конечно же — само основное содержимое комментария. Именно это содержимое (т. е. поле) необходимо вывести отдельно без остальных полей структуры данных в совершенно другом месте страницы. Для этого используется программный вывод вручную с помощью специальных функций API Drupal.

Конечно, для подобных задач можно использовать такие замечательные модули как Views и/или Panels. Однако, в простых случаях, проще и быстрее сделать это программно. Всё-таки Views и Panels разрабатывались как раз для очень сложного вывода полей и их компоновок.

В итоге, программный вывод полей применяется для их вывода вне их сущностей. Теперь, для более полного понимания, необходимо разобраться с «сущностями» Drupal.

Что такое сущности Drupal 7?

Сущность Druapl – это уровень абстракции, характеризующий структуры данных Drupal. Таких структур в Drupal очень много, поэтому в 7-й версии этой CMS разработчиками было введено такое понятие — сущность или entity.

Как можно догадаться из предыдущей главы, комментарий — это сущность типа «comment». Тип материала, нода (node – узел), пользователи, термины таксономии, блоки — это также сущности, состоящие из определённого набора полей. Сущности можно формировать и создавать самостоятельно. После этого они будут готовы к выводу как единое целое.

Поле Drupal является базовым элементом в структуре объектов Drupal. Что касается ноды Drupal, то с технической точки зрения, нода — это верхушка иерархии этих объектов, наиболее общая сущность, практически объединяющая все остальные. Визуально для пользователя, нода — это отображаемая в конечном виде страница Drupal. Содержащая материал, блоки, комментарии, теги и т. д. Которые, в свою очередь, также являются сущностями. Получить доступ к отдельным полям сущностей, и автоматически настроить их вывод позволяет функция field_view_field() из API Drupal 7.

Использование функции field_view_field()

Теперь можно более подробно рассмотреть, как работает функция field_view_field(). Она сама ничего не выводит, но производит большую работу:

  • получает доступ к самому полю, используя в качестве входных параметров тип его сущности, идентификатор сущности, а также машинное имя самого поля;
  • с помощью дополнительных параметров (если так будет угодно программисту) настраивает поле для последующего вывода.

Второй пункт позволяет использовать функцию field_view_field() гибко, передавая в неё массив, содержащий всевозможные опции вывода, например:

  • выводить ли поле вместе с его меткой (Label);
  • если это текст, то в каком объёме (по количеству символов) его вывести;
  • если это изображения (или ссылка на него), то какой формат (размер, графические эффекты) к нему применить;
  • и многие другие.

В итоге функция field_view_field() вернёт отформатированный набор данных, который остаётся только отрендерить на странице в нужном месте с помощью функции render().

Синтаксис функции field_view_field() следующий:

<?php

field_view_field($entity_type, $entity, $field_name, $display, $langcode)

Назначение её параметров:

  • $entity_type – тип сущности (например комментарий или нода), к полю которого нужно получить доступ;
  • $entity – идентификатор сущности;
  • $field_name – машинное имя поля, к которому нужно получить доступ;
  • $display – настройки отображения поля, которые могут быть заданы в составе массива опций, определяющих вывод;
  • $langcode – опционально, задаёт язык кода, на котором должно отображаться значение поля.

Небольшой пример:

<?php

$nid = node_load($node);

$output = field_view_field(‘node’, $nid, ‘field_preamble’, array(

         ‘label’ => ‘hidden’,

         ‘type’ => ‘test_summary_or_trimmed’,

         ‘settings’ => array(‘trim_length’ => 150)));

render($output);

В данном примере опущена HTML-разметка для чистоты восприятия кода, который в произвольном месте страницы выводит поле «field_preamble». Хранящее содержимое преамбулы к статье. Также производится его форматирование, которое заключается в том, чтобы не выводилась метка этого поля, а содержимое было обрезано до 150 символов. Возвращаемый результат присваивается переменной $output. После чего она передаётся в функцию render() для рендеринга на странице.

А как быть, когда сущность имеет несколько значений одного поля? Например, когда для поля «field_image» определено несколько значений, т. е. изображений. Нужно сначала получить список всех значений поля с помощью функции field_get_items(). А затем, отобрав нужное значение, обработать его функцией field_view_value(). Которая аналогична field_view_field(), но предназначена для работы с конкретным значением поля. Пример:

<?php

$image = field_get_items(‘node’, $nid, ‘field_image’);

$output = field_view_value(‘node’, $nid, ‘field_image’, $image[0], array(

       ‘label’ => ‘hidden’,

       ‘type’ => ‘image’,

       ‘settings’ => array(

               ‘image_style’ => ‘thumbnail’,

               ‘image_link’ => ‘content’,

      ),

));

Как можно видеть, сначала определяется список значений поля «field_image», который присваивается переменной $image. Далее, функция field_view_value() получает доступ к переданному ей нужному значению поля «field_image» (по индексу списка или массива $image[]) и форматирует его вывод для последующего рендеринга.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-04-22T13:54:15
Drupal

Можно ли изменить язык интерфейса в Chrome или Firefox?

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

Если ваш браузер — Google Chrome или Mozilla Firefox, и вы не знаете, как изменить язык его интерфейса, проверьте это руководство. Это может помочь вам заставить ваш браузер работать на любом языке, который вы предпочитаете. Этот пост охватывает следующее:

  1. Изменить язык интерфейса браузера Chrome
  2. Изменить язык интерфейса браузера Firefox

1] Изменить язык интерфейса пользователя браузера Chrome

По-умолчанию Google Chrome настраивает язык вашей операционной системы как язык пользовательского интерфейса (UI). Тем не менее, вы можете легко изменить его. Самый простой способ изменить этот параметр в Google Chrome для Windows — через настройки браузера. Итак, начнём.

Запустите браузер Google Chrome, нажмите «Меню» (отображается в виде трех точек) и выберите «Настройки» из списка параметров.

Теперь прокрутите вниз до нижней части страницы, чтобы найти ссылку «Дополнительно». Когда найдете, нажмите на ссылку.

После этого нажмите кнопку «Язык» и выберите «Добавить языки», если нужного языка нет в списке.

Выберите язык, который вы хотели бы добавить из списка.

Наконец, установите флажок «Показать Chrome на этом языке» и перезапустите браузер, чтобы изменения вступили в силу.

2] Изменить язык интерфейса браузера Firefox

В отличие от Chrome, Firefox ранее поддерживал две опции для изменения языка интерфейса браузера:

  1. Загрузку и установку языковых пакетов.
  2. Переустановку Firefox, используя установщик с поддержкой нужного языка.

Оба эти варианта были сочтены уступающими тому, как Google Chrome обрабатывал подобные изменения. Зачем? Браузер позволил своим пользователям напрямую изменять язык интерфейса без необходимости установки языкового пакета или всего браузера.

Firefox теперь изменил это, поскольку в настройках браузера есть опции переключения языков.

Чтобы изменить язык пользовательского интерфейса в Firefox, загрузите about:preferences в адресной строке браузера. Как вы, возможно, знаете, страница позволяет вам сбросить настройки предпочтений Firefox, если это необходимо.

Когда страница откроется, прокрутите вниз до раздела «Язык и внешний вид».

Там вы найдете текущий язык интерфейса, отображаемый под языком. Кроме того, вы увидите кнопку «Выбрать альтернативные», чтобы изменить эту настройку.

Нажмите «Выбрать язык, чтобы добавить его…», а затем «Найти больше языков».

Затем выберите «Добавить», чтобы добавить язык. Ваш браузер должен загрузить языковой пакет и автоматически добавить его. Кроме того, если словарь доступен для того же самого, он также будет загружен.

Повторите шаги, указанные выше, для других языков, которые вы хотели бы добавить.

Как только порядок языков будет определен, будет установлен приоритет, в котором они должны использоваться. Вы можете изменить его в любое время, просто перемещая кнопки вверх или вниз. Прежде всего, предпочтение intl.locale.requested определяет приоритет языков в браузере Mozilla. Однако он виден или виден только в том случае, если в браузере установлено два или более языков.

Наконец, нажмите кнопку «ОК», чтобы Firefox сохранил сделанные изменения. Когда это будет сделано, Firefox отобразит уведомление о перезапуске. Выберите опцию «Применить и перезапустить», чтобы перезапустить Firefox и начать работу с новым языком интерфейса.



2019-04-21T18:22:17
Вопросы читателей