Прикладные программные средства применяемые в Web

Вебсервер Apache

Установка - 1 минута.
Настройка кодировки сайта.
Настройка разных кодировок для разных директорий.
Запрет просмотра каталога.
Виртуальный хост.
Домены, DNS. Настройка зоны.
 

Язык программирования PHP

Установка - 0 минут - входит в состав апачи.
 

База данных MySQL

Установка - 1 минута.
Смена пароля рута. Отличие системного рута от мускульного.
Права на доступ к базе.
Создание базы и таблиц.
Команды SQL: select, update, delete
Администрирование базы данных.
 

CMS и фреймворк Drupal

Установка
Приемы работы
Темы
Модули
Комьюнити
 

Средства обеспечения работоспособности сайта под большой нагрузкой

Проблеммы производительности платформы.
Проблеммы производительности CMS.
Измерение производительности, определене узких мест.

Инструменты: top, netstat, nginx
 

Средства обеспечения безопасности

Заводская проходная использующая для учета трудящихся советские манфреймы серий EC и CM, а через дырки в заборе (тащи с завода каждый гвоздь - ты здесь хозяин а не гость) выносили даже автомобильные двигатели.
Проблема периметра. Проблема комплексной безопасности.

iptables

 

Приемы работы редактора контента

1. Вставка фотографии внутрь текста возможна только в режиме FullHTML:

На панели инструментов наживаем кнопку Изображение

  • В окрывшемся окне находим синюю кнопку Выбор на сервере
  • Откроется интерфейс управления файлами на сервере, где можно закачать и/или выбрать закачанный файл для вставки в текст
  • Далее, в том же окне Свойство изображения обязательно необходимо указать:
    • Горизонтальный отступ: 7-10
    • Вертикальный отступ: 2-3
    • Выравнивание: По левому или По прарвому краю (это неодходимо, чтобы фотография не торчала над текстом, а обтекалась им).

Видеоролик - иллюстрация к вышеизложенному
 

2. Пользуйтесь возможностью размещения документов

Ссылка прямо над кнопкой Сохранить:

По умолчанию для статьи настройки такие:

Настройки публикации
Опубликовано
Помещено на главную страницу
Закреплять вверху списков

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

Видеоролик - иллюстрация к вышеизложенному
 

3. Вставка видеоролика с Ютуба (или откуда еще)

Чтобы вставить в документ самовключающийся/самопроигрывающийся ролик нужно в квадратных скобках написать слово video без пробелов двоеточие и адрес ролика, например:

При повторном редактировании адрес будет норовить стать ссылкой - это надо пресекать - поставить курсор на ссылку (в любом месте) и нажать кнопку Убрать ссылку.

Как это выглядит можно посмотреть здесь.

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

Это работает потому, что у нас стоит модуль Video Filter, именно он перехватывает строку в квадратных скобках и выводит ролик вместо нее.

Видеоролик - иллюстрация к вышеизложенному

4. Видеоролики не с ютуба, а размещенные у нас сервере

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

Не забывайте поставить в окне ссылке Цель - всплывающее окно, и для него ширину, высоту (600-800) и отступы (20-50)

Например: Видеоролик - иллюстрация к вышеизложенному

 

5. Копировать контент с чужого сайта на свой

вообще говоря бессмысленно - яндекс такие тексты не индексирует.

Но если очень хочется, то правильно это делать так:

  1. Отдельно скопировать и вставить в своем редакторе (Формат ввода - Full HTML) заголовок публикации.
  2. Копирование. Если в исходном тексте есть фотографии, картинки или вставки рекламы, оглавлений, лозунгов, то текст придется копировать по частям, выбирая чистые от всего этого участки.
  3. Вставка. Каждый скопированный фрагмент в своем редакторе пропускать через фильтр - кнопка Вставить только текст. Это гарантирует избавление от чужих стилей, шрифтов, верстки.
  4. Картинки вставляются отдельно, предварительно сохранив на свой комп.
  5. Если есть таблицы их копировать и вставлять каждую в отдельности через фильтр Вставить из Word
  6. Выделения и прочую разметку сделать заново у себя, не пытаясь скопировать чужую.

Видеоролик - иллюстрация к вышеизложенному

Учебный скрипт "Выборы президента США"

<?php // index.php - Допуск к голосованию
error_reporting ( E_ERROR | E_WARNING | E_PARSE );
 
// объявление переменных
$ok  = "" ;
$err = "" ;
$title = "Выборы президента США" ;
 
// ловим данные отправленные из формы проверки возраста
if ( isset ( $_GET['buttn'] ) ) { // если нажата кнопка
 
  // если поле old непусто и содержит только буквы русского алфавита
  if ( $old = 0 + $_GET['old'] ) {
    // допустимый диапазон возрастов
    if ( $old < 0 ) $err = "<font color=red>Ты еще не родился малыш - посиди пока в мамином животике.</font>" ;
    elseif ( $old < 6 ) $err = "<font color=red>Ты еще маленький, пойди раскрась картинку.</font>" ;
    elseif ( $old < 15 ) $err = "<font color=red>Ты еще не дорос до выбора президента, пойди почитай книжку.</font>" ;
    elseif ( $old < 18 ) $err = "<font color=red>Рановато. Займись пока спортом.</font>" ;
    elseif ( $old > 200 ) $err = "<font color=red>Врешь старик - столько не живут.</font>" ;
    else $ok = 1 ;
  }
  else { // если после очистки $old пусто
    $err = "<font color=red>Вы забыли вписать свой возраст или использовали недопустимые символы.</font>" ;
  }
}
 
// ловим данные отправленные из формы проверки возраста
if ( isset ( $_GET['buttn2'] ) ) { // если нажата кнопка
 
    $vote = $_GET['vote'] ;
 
    if ( "1" == $vote ) $mes = "<font color=green>Вы проголосовали за Клинтон.</font>" ;
    elseif ( "2" == $vote ) $mes = "<font color=green>Вы проголосовали за Трампа.</font>" ;
    else $mes = "<font color=red>Вы не проголосовали.</font>" ;
 
    if ( "1" == $vote or "2" == $vote ) {
 
        // подключаем PHP к mysql DB
        mysql_connect ( "localhost", "root", "1q2w3e" ) ;
        mysql_select_db( 'vote' ) ;
 
        // устанавливаем кодировку utf8
        mysql_query ( "SET  character_set_connection = 'utf8'" ) ;
        mysql_query ( "SET  character_set_results = 'utf8'" ) ;
        mysql_query ( "SET  character_set_client = 'utf8'" ) ;
 
        if ( "1" == $vote ) {
            $sql = "select clinton, tramp from vote" ;
            $res = mysql_query ( $sql ) ;
            $rec = mysql_fetch_row ( $res ) ;
            $clinton = $rec[0] + 1 ;
            $tramp   = $rec[1]     ;
            $sql = "update vote set clinton=" . $clinton ;
        }
        elseif ( "2" == $vote ) {
            $sql = "select clinton, tramp from vote" ;
            $res = mysql_query ( $sql ) ;
            $rec = mysql_fetch_row ( $res ) ;
            $clinton = $rec[0]     ;
            $tramp   = $rec[1] + 1 ;
            $sql = "update vote set tramp=" . $tramp ;
        }
 
 
 
        // выполняем запрос к базе MYSQL средствами PHP
        // если запрос не выполнился - будет выдана ошибка
        if ( mysql_query ( $sql ) ) $ok = 2 ;
        else $err = "Error=$sql=" ;
    }
}
?>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title><?php echo $title ?></title>
</head>
 
<body>
 
<h1><?php echo $title ?></h1>
 
<?php if ( 1 == $ok ) { ?>
        <h2><font color=blue>Голосование</font></h2>
        <form>
            <input type="radio" name="vote" value="1" checked>Клинтон<br>
            или<br>
            <input type="radio" name="vote" value="2">Трамп<br><br>
            <input type="submit" name="buttn2" value="Голосовать">
        </form>
<?php }
    if ( 2 == $ok ) {
        echo "<h2>$mes</h2>" ;
        echo "<h3><font color=blue>Результат: Клинтон = $clinton, Трамп = $tramp</font></h3>" ;
    }
    elseif ( $err ) echo "<h4>" . $err . "</h4> <a href=\"JavaScript:history.back();\">Назад</a>" ;
    elseif ( ! $ok ) {
?>
    <h3>Проверка возраста</h3>
    <form action="index.php">
        Сколько вам лет: <input type="text" name="old">
        <input type="submit" name="buttn" value="Go">
    </form>
<?php } ?>
</body>
</html>
<?php
 
/*
 
Подготовка базы проекта "Голосование"
 
create table vote (clinton int, tramp int);
 
insert into vote values(0,0);
 
select * from vote;
 
+---------+-------+
| clinton | tramp |
+---------+-------+
|       0 |     0 |
+---------+-------+
 
*/
 
?>
 

Установка Drupal

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

Пропишу основные этапы:

1. Скачать с http://drupal.org ядро. Это файл с расширением .tar.gz, т.е. затаренный и запакованный юниксовым архиватором gzip набор папок и файлов - установочный пакет друпала.

2. Распаковать сей файл в папку на сервере (там уже настроенная апача, mysql, домен).

3. Найти файл sites/default/default/settings.php и скопировать его в туже папку под именем settings.php. Установить права владельца этого файла апач (www-data).

4. Создать папку sites/default/default/files и дать ей теже права www-data.

5. Скачать с drupal.org файл drupal-версия.ru.po последней версии и положить его на свое место: profiles/standard/translations

6.Создать базу данных: create database db_ваш_проект DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_unicode_ci;
и
назначить ей юзера с правами: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER  ON db_ваш_проект.*  TO 'usr_ваш_проект'@'localhost' IDENTIFIED BY 'psw_ваш_проект';

7. Отрыть в браузере подготовленный домен и ответить на все вопросы которые задаст инсталятор друпала.

Если чего-то не получилось посмотрите еще раз внимательно этот ролик.

Если и этого мало - пишите  - отвечу.