One place for hosting & domains

      Начало работы со строками в Go


      Строка — это последовательность из одного или нескольких символов (буквы, числа, символы), которая может представлять собой константу или переменную. Строки составляются из символов Unicode и являются неизменяемыми последовательностями, т. е. порядок этой последовательности нельзя изменить.

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

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

      Строковые литералы

      В Go строки добавляются либо внутри обратных кавычек ` (иногда их называют еще обратными метками) или внутри двойных кавычек ". В зависимости от того, какие кавычки вы использовать, строка будет иметь различные характеристики.

      При использовании обратных кавычек, например, `bar`, будет создаваться необработанный строковый литерал. В необработанном строковом литерале любой символ может появляться между кавычками, за исключением обратных кавычек. Ниже представлен пример необработанного строкового литерала:

      `Say "hello" to Go!`
      

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

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

      `Go is expressive, concise, clean, and efficient.
      Its concurrency mechanisms make it easy to write programs
      that get the most out of multi-core and networked machines,
      while its novel type system enables flexible and modular
      program construction. Go compiles quickly to machine code
      yet has the convenience of garbage collection and the power
      of run-time reflection. It's a fast, statically typed,
      compiled language that feels like a dynamically typed,
      interpreted language.`
      

      Интерпретируемые строковые литералы — это последовательность символов внутри двойных кавычек, например, "bar". Внутри кавычек отображается любой символ, за исключением символа переноса строки и неэкранированных двойных кавычек.

      "Say "hello" to Go!"
      

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

      Теперь, когда вы знаете, как выполняется форматирование строк в Go, давайте посмотрим, как вы можете выводить строки на экран в своих программах.

      Вывод строк на экран

      Вы можете вывести на экран строки с помощью пакета fmt из системной библиотеки и вызова функции Println():

      fmt.Println("Let's print out this string.")
      

      Output

      Let's print out this string.

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

      package main
      
      import "fmt"
      
      func main() {
          fmt.Println("Let's print out this string.")
      }
      

      Конкатенация строк

      Конкатенация — это объединение строк для получения новой строки. Для выполнения конкатенации строк воспользуйтесь оператором +. Необходимо учитывать, что при работе с числами оператор + будет выполнять сложение, а при работе со строками будет выполняться конкатенация.

      Давайте объединим строковые литералы "Sammy" и "Shark" с помощью выражения fmt.Println():

      fmt.Println("Sammy" + "Shark")
      

      Output

      SammyShark

      Если вам нужно поместить пробелы между двумя строками, вы можете просто включить в строку пробел. В этом примере пробел добавлен внутри кавычек после слова Sammy:

      fmt.Println("Sammy " + "Shark")
      

      Output

      Sammy Shark

      Оператор + не может использоваться для работы с двумя разными типами данных. Например, вы не сможете выполнить сложение строк и чисел. Если вы попытаетесь выполнить следующее:

      fmt.Println("Sammy" + 27)
      

      Вы получите следующие ошибки:

      Output

      cannot convert "Sammy" (type untyped string) to type int invalid operation: "Sammy" + 27 (mismatched types string and int)

      Если вы хотите создать строку "Sammy27", вы можете поместить число 27 в кавычки ("27"), в результате чего оно больше не будет числом, а превратится в строку. Преобразование чисел в строки для выполнения конкатенации может быть полезным при работе с почтовыми индексами или телефонными номерами. Например, вы не хотите выполнять сложение кода страны и кода города, а хотите поместить их рядом.

      При объединении двух или более строк вы создаете новую строку, которую можно использовать в вашей программе.

      Хранение строк в переменных

      Переменные — это символы, которые вы можете использовать для хранения данных в программе. Их можно сравнить с пустой коробкой, в которую вы помещаете данные или значение. Строки — это данные, а значит вы можете использовать их для заполнения переменной. Объявление строк в качестве переменных упрощает работу со строками в ваших программах Go.

      Чтобы сохранить строку внутри переменной, нужно просто назначить переменную для строки. В нашем случае мы объявим s как переменную:

      s := "Sammy likes declaring strings."
      

      Примечание. Если вы знакомы с другими языками программирования, вы можете использовать в качестве переменной sammy. В Go приветствуется использование коротких имен переменных. Выбор s в качестве имени переменной в нашем случае будет выглядеть более уместным для стиля написания программ на языке Go.

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

      fmt.Println(s)
      

      Вы получите следующий вывод:

      Output

      Sammy likes declaring strings.

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

      Заключение

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



      Source link

      Установка WordPress со стеком LAMP в Ubuntu 18.04


      Предыдущая версия данного обучающего руководства была написана Джастином Эллингвудом

      Введение

      WordPress — это самая популярная CMS (система управления контентов) в сети Интернет. Она позволяет вам легко настраивать блоги и веб-сайты, устанавливаемые поверх отвечающего за за серверную часть MySQL с поддержкой PHP. WordPress обладает невероятной адаптивностью и позволяет в кратчайшие сроки создать и запустить веб-сайт. После настройки практически все административные функции доступны через пользовательский веб-интерфейс.

      В этом руководстве мы сфокусируемся главным образом на создании экземпляра WordPress на стеке LAMP (Linux, Apache, MySQL и PHP) на сервере Ubuntu 18.04.

      Предварительные требования

      Для выполнения этого обучающего руководства вам потребуется доступ к серверу Ubuntu 18.04.

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

      • Создайте пользователя sudo на вашем сервере: мы будем выполнять шаги из этого руководства, используя пользователя без прав root с привилегиями sudo. Вы можете создать пользователя с привилегиями sudo, следуя указаниям нашего Руководства по начальной настройке сервера Ubuntu 18.04.
      • Установите стек LAMP: WordPress требуется веб-сервер, база данных и PHP для корректной работы. Настройка стека LAMP (Linux, Apache, MySQL и PHP) позволяет удовлетворить все эти требования. Воспользуйтесь этим руководством для установки и настройки данного программного обеспечения.
      • Защитите ваш сайт с помощью SSL: WordPress обслуживает динамический контент и отвечает за аутентификацию и авторизацию пользователя. TLS/SSL — это технология, которая позволяет вам шифровать трафик с сайта для защиты вашего соединения. Способ настройки SSL зависит от того, есть ли у вашего сайта доменное имя.
        • Если у вас есть доменное имя… самым простым способом защиты вашего сайта будет использование Let’s Encrypt, который предоставляет бесплатные доверенные сертификаты. Воспользуйтесь нашим Руководством по Let’s Encrypt для Apache для выполнения настройки.
        • Если у вас нет домена… и вы просто используете данную конфигурацию для тестирования или в личных целях, вы можете использовать самоподписанный сертификат. Данный способ обеспечивает аналогичный тип шифрования, но без подтверждения домена. Воспользуйтесь нашим руководством по самоподписанным сертификатам SSL для Apache для настройки.

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

      Шаг 1 — Создание базы данных MySQL и пользователя для WordPress

      Первый шаг, который мы выполним, будет подготовительным. WordPress использует MySQL для управления и хранения сайта, а также информации пользователя. Мы уже установили MySQL, но нам нужно создать базу данных и пользователя, которые будет использовать WordPress.

      Выполните вход в учетную запись MySQL с правами root (адмнистративную запись), введя следующую команду:

      Вам будет предложено ввести пароль, который вы задали для учетной записи root при установке программного обеспечения MySQL.

      Сначала нам нужно создать отдельную базу данных, которую будет контролировать WordPress. Вы можете использовать любое название, но мы в этом руководстве будем использовать wordpress для простоты. Создайте базу данных для WordPress, введя следующую команду:

      • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

      Примечание. Каждый оператор MySQL должен заканчиваться точкой с запятой (;). Убедитесь, что это правило не нарушено, если вы столкнетесь с какими-либо проблемами.

      Затем мы создадим отдельную учетную запись пользователя MySQL, которую будем использовать исключительно для работы с нашей новой базы данных. Создание баз данных и учетных записей с одной функцией является хорошей идеей с точки зрения управления и безопасности. В этом руководстве мы будем использовать имя wordpressuser. Вы можете использовать любое имя по вашему желанию.

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

      • GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

      Теперь у вас есть база данных и учетная запись пользователя, которые созданы специально для WordPress. Нам нужно установить права, чтобы текущий экземпляр MySQL узнал о последних внесенных нами изменениях:

      Выйдите из MySQL, введя следующую команду:

      Шаг 2 — Установка дополнительных расширений PHP

      При настройке нашего стека LAMP нам требуется только минимальный набор расширений, чтобы реализовать коммуникацию PHP с MySQL. WordPress и многие плагины используют дополнительные расширения PHP.

      Мы можем загрузить и установить некоторые из самых популярных расширений PHP, которые будет использовать WordPress, введя следующую команду:

      • sudo apt update
      • sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

      Примечание. Каждый плагин WordPress имеет собственный набор требований. Для поддержки некоторых из них может потребоваться установка дополнительных пакетов PHP. Ознакомьтесь с документацией плагина для получения информации о требованиях к PHP. Если они доступны, их можно установить с помощью apt, как показано выше.

      Сейчас мы перезапустим Apache, чтобы загрузить эти новые расширения в следующем разделе. Если вы вернетесь на к этому шагу при установке дополнительных плагинов, введите следующую команду для перезагрузки Apache:

      • sudo systemctl restart apache2

      Шаг 3 — Настройка конфигурации Apache для получения доступа к переопределения и перезаписи .htaccess

      Теперь мы внесем несколько незначительных изменений в нашу конфигурацию Apache. Согласно руководствам по предварительным требованиям, у вас должен быть файл конфигурации для вашего сайта в директории /etc/apache2/sites-available. В качестве примера мы будем использовать /etc/apache2/sites-available/wordpress.conf, но вы должны использовать путь к вашему файлу конфигурации при необходимости.

      Также мы будем использовать /var/www/wordpress в качестве корневой директории для нашей установки WordPress. Вы должны корневой веб-узел, указанный в вашей собственной конфигурации.

      Примечание. Вы можете использовать конфигурацию /000-default.conf по умолчанию (с /var/www/html в качестве корневого веб-узла). Это допустимо, если вы собираетесь размещать только один веб-сайт на этом сервере. Если нет, рекомендуется разделить необходимую конфигурацию на логические части, по одному файлу на каждый сайт.

      Активация переопределения .htaccess

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

      Откройте файл конфигурации Apache для вашего веб-сайта:

      • sudo nano /etc/apache2/sites-available/wordpress.conf

      Чтобы разрешить использование файлов .htaccess, нам нужно настроить директиву AllowOverride внутри блока Directory, которая будет указывать на корневую директорию документа. Добавьте следующий текстовый блок внутри блока VirtualHost в вашем файле конфигурации, убедившись, что вы используете правильный корневой веб-узел:

      /etc/apache2/sites-available/wordpress.conf

      <Directory /var/www/wordpress/>
          AllowOverride All
      </Directory>
      

      После завершения редактирования сохраните и закройте файл.

      Активация модуля перезаписи

      Теперь мы сможем активировать mod_rewrite для использования постоянных ссылок в WordPress:

      Активация изменений

      Перед применением внесенных изменений убедитесь, что мы не допустили ошибки в синтаксисе:

      • sudo apache2ctl configtest

      Вывод может содержать сообщение, которое выглядит следующим образом:

      Output

      AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

      Если вы хотите скрыть верхнюю строку, добавьте директиву ServerName в ваш основной (глобальный) файл конфигурации Apache в /etc/apache2/apache2conf. Вместо ServerName вы можете использовать домен или IP-адрес вашего сервера. Это просто сообщение, которое не влияет на функциональность вашего сайта. Если вывод содержит Syntax OK, вы можете двигаться дальше.

      Перезапустите Apache для внесения изменений:

      • sudo systemctl restart apache2

      Теперь мы загрузим и настроим непосредственно WordPress.

      Шаг 4 — Загрузка WordPress

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

      Перейдите в директорию с возможностью записи и загрузите сжатый релиз, введя следующую команду:

      • cd /tmp
      • curl -O https://wordpress.org/latest.tar.gz

      Извлеките сжатый файл для создания структуры директории WordPress:

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

      Создайте файл, введя следующую команду:

      • touch /tmp/wordpress/.htaccess

      Мы также заменим имя примера файла конфигурации на имя файла, который на практике использует WordPress:

      • cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

      Также мы создадим директорию upgrade, чтобы WordPress не испытывал проблем с разрешениями при попытке сделать это самостоятельно после обновления программного обеспечения:

      • mkdir /tmp/wordpress/wp-content/upgrade

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

      • sudo cp -a /tmp/wordpress/. /var/www/wordpress

      Шаг 5 — Настройка директории WordPress

      Перед настройкой WordPress с помощью веб-интерфейса, нам нужно изменить некоторые элементы в директории WordPress.

      Настройка принадлежности и разрешений

      Одним из важных действий, которые которые нам нужно будет выполнить, является создание разумных разрешений и принадлежности для файла.

      Для начала мы укажем принадлежность всех файлов пользователю и группе www-data. Именно этот пользователь используется веб-сервером Apache, а Apache потребуется выполнять чтение и запись файлов WordPress для обслуживания веб-сайта и выполнения автоматических обновлений.

      Обновите принадлежность с помощью команды chown:

      • sudo chown -R www-data:www-data /var/www/wordpress

      Теперь мы запустим две команды find для установки корректных разрешений для директорий и файлов WordPress:

      • sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ;
      • sudo find /var/www/wordpress/ -type f -exec chmod 640 {} ;

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

      Настройка файла конфигурации WordPress

      Теперь нам нужно внести некоторые изменения в основной файл конфигурации WordPress.

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

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

      • curl -s https://api.wordpress.org/secret-key/1.1/salt/

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

      Предупреждение! Важно каждый раз запрашивать уникальные значения. НЕ копируйте значения, приведенные ниже!

      Output

      define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

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

      Теперь откройте файл конфигурации WordPress:

      • sudo nano /var/www/wordpress/wp-config.php

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

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'put your unique phrase here');
      define('SECURE_AUTH_KEY',  'put your unique phrase here');
      define('LOGGED_IN_KEY',    'put your unique phrase here');
      define('NONCE_KEY',        'put your unique phrase here');
      define('AUTH_SALT',        'put your unique phrase here');
      define('SECURE_AUTH_SALT', 'put your unique phrase here');
      define('LOGGED_IN_SALT',   'put your unique phrase here');
      define('NONCE_SALT',       'put your unique phrase here');
      
      . . .
      

      Удалите эти строки и добавьте значения, которые вы скопировали из командной строки:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
      define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
      
      . . .
      

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

      Еще одно изменение, которое нам нужно внести, — это настройка метода, который WordPress должен использовать для записи данных в файловой системе. Поскольку мы предоставили веб-серверу разрешение на запись там, где ему потребуется, мы можем прямо установить для метода записи значение «прямая». Если бы мы не внесли это изменение в текущие настройки, это привело бы к тому, что при выполнении некоторых действий WordPress будет запрашивать данные учетной записи для FTP.

      Эта настройка может быть добавлена под настройками подключения базы данных или в любом другом месте в файле:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('DB_NAME', 'wordpress');
      
      /** MySQL database username */
      define('DB_USER', 'wordpressuser');
      
      /** MySQL database password */
      define('DB_PASSWORD', 'password');
      
      . . .
      
      define('FS_METHOD', 'direct');
      

      Сохраните файл и закройте его после завершения.

      Шаг 6 — Завершение установки через веб-интерфейс

      Теперь, когда настройка сервера завершена, мы можем завершить установку через веб-интерфейс.

      В адресной строке браузера введите доменное имя или открытый IP-адрес вашего сервера:

      https://server_domain_or_IP
      

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

      Выбор языка WordPress

      После этого вы должны попасть на главную страницу настройки.

      Выберите имя для вашего сайта WordPress и имя пользователя (не рекомендуется использовать имя «admin» или что-то подобное в целях безопасности). Надежный пароль создается автоматически. Сохраните этот пароль или выберите другой надежный пароль.

      Введите адрес электронной почты и укажите, хотите ли вы, чтобы поисковые машины индексировали ваш сайт:

      Настройка установки WordPress

      При нажатии далее вы перейдете на страницу входа:

      Запрос входа в WordPress

      После входа вы перейдете в панель управления WordPress:

      Запрос входа в WordPress

      Заключение

      WordPress установлен и готов к использованию! Ниже представлены некоторые общие шаги по выбору параметров для постоянных ссылок для ваших постов (см. Настройка > Постоянные ссылки) или выбора новой темы (см. Внешний вид > Темы). Если вы впервые работаете с WordPress, краткое изучите интерфейс для знакомства с вашей новой CMS.



      Source link

      Установка WordPress со стеком LEMP в Ubuntu 18.04


      Введение

      WordPress — это самая популярная CMS (система управления контентов) в сети Интернет. Она позволяет вам легко настраивать блоги и веб-сайты, устанавливаемые поверх отвечающего за за серверную часть MySQL с поддержкой PHP. WordPress обладает невероятной адаптивностью и позволяет в кратчайшие сроки создать и запустить веб-сайт. После настройки практически все административные функции доступны через пользовательский веб-интерфейс.

      В этом руководстве мы сфокусируемся главным образом на создании экземпляра WordPress на стеке LEMP (Linux, Nginx, MySQL и PHP) на сервере Ubuntu 18.04.

      Предварительные требования

      Для выполнения этого обучающего руководства вам потребуется доступ к серверу Ubuntu 18.04.

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

      • Создайте пользователя sudo на вашем сервере: мы будем выполнять шаги из этого руководства, используя пользователя без прав root с привилегиями sudo. Вы можете создать пользователя с привилегиями sudo, следуя указаниям нашего Руководства по начальной настройке сервера Ubuntu 18.04.
      • *Установите стек LEMP *: WordPress требуется веб-сервер, база данных и PHP для корректной работы. Настройка стека LEMP (Linux, Nginx, MySQL и PHP) позволяет удовлетворить все эти требования. Воспользуйтесь этим руководством для установки и настройки данного программного обеспечения.
      • Защитите ваш сайт с помощью SSL: WordPress обслуживает динамический контент и отвечает за аутентификацию и авторизацию пользователя. TLS/SSL — это технология, которая позволяет вам шифровать трафик с сайта для защиты вашего соединения. Способ настройки SSL зависит от того, есть ли у вашего сайта доменное имя.
        • Если у вас есть доменное имя… самым простым способом защиты вашего сайта будет использование Let’s Encrypt, который предоставляет бесплатные доверенные сертификаты. Воспользуйтесь нашим Руководством по Nginx для выполнения настройки.
        • Если у вас нет домена… и вы просто используете данную конфигурацию для тестирования или в личных целях, вы можете использовать самоподписанный сертификат. Данный способ обеспечивает аналогичный тип шифрования, но без подтверждения домена. Воспользуйтесь нашим руководством по самоподписанным сертификатам SSL для Nginx для настройки.

      Завершив выполнение действий по настройке, выполните вход на ваш сервер с помощью пользователя sudo и переходите к описанным ниже действиям.

      Шаг 1 — Создание базы данных MySQL и пользователя для WordPress

      Первый шаг, который мы выполним, будет подготовительным. WordPress использует MySQL для управления и хранения сайта, а также информации пользователя. Мы уже установили MySQL, но нам нужно создать базу данных и пользователя, которые будет использовать WordPress.

      Выполните вход в учетную запись MySQL с правами root (административную запись). Если MySQL настроен для использования плагина аутентификации auth_socket (по умолчанию), вы можете войти в административную учетную запись MySQL с помощью sudo:

      Если вы измените метод аутентификации на использование пароля для учетной записи MySQL с правами root, воспользуйтесь следующим форматом:

      Вам будет предложено ввести пароль, который вы задали для учетной записи MySQL с правами root.

      Сначала нам нужно создать отдельную базу данных, которую сможет контролировать WordPress. Вы можете использовать любое название, но мы в этом руководстве будем использовать wordpress для простоты. Создайте базу данных для WordPress, введя следующую команду:

      • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

      Примечание. Каждый оператор MySQL должен заканчиваться точкой с запятой (;). Убедитесь, что это правило не нарушено, если вы столкнетесь с какими-либо проблемами.

      Затем мы создадим отдельную учетную запись пользователя MySQL, которую будем использовать исключительно для работы с нашей новой базы данных. Создание баз данных и учетных записей с одной функцией является хорошей идеей с точки зрения управления и безопасности. В этом руководстве мы будем использовать имя wordpressuser. Вы можете использовать любое имя по вашему желанию.

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

      • GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

      Теперь у вас есть база данных и учетная запись пользователя, которые созданы специально для WordPress. Нам нужно установить права, чтобы текущий экземпляр MySQL узнал о последних внесенных нами изменениях:

      Выйдите из MySQL, введя следующую команду:

      Сессия MySQL будет закрыта, а вы вернетесь к стандартной командной строке Linux.

      Шаг 2 — Установка дополнительных расширений PHP

      При настройке нашего стека LEMP нам требуется только минимальный набор расширений, чтобы реализовать коммуникацию PHP с MySQL. WordPress и многие плагины используют дополнительные расширения PHP.

      Мы можем загрузить и установить некоторые из самых популярных расширений PHP, которые будет использовать WordPress, введя следующую команду:

      • sudo apt update
      • sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

      Примечание. Каждый плагин WordPress имеет собственный набор требований. Для поддержки некоторых из них может потребоваться установка дополнительных пакетов PHP. Ознакомьтесь с документацией плагина для получения информации о требованиях к PHP. Если они доступны, их можно установить с помощью apt, как показано выше.

      Завершив установку расширений, перезапустите процесс PHP-FPM, чтобы запущенный процессор PHP мог использовать новые установленные функции:

      • sudo systemctl restart php7.2-fpm

      Теперь у нас на сервере есть все необходимые расширения PHP.

      Шаг 3 — Настройка Nginx

      Далее мы внесем несколько незначительных изменений в наши файлы серверного блока Nginx. Согласно руководствам по предварительным требованиям, у вас должен быть файл конфигурации для вашего сайта в директории /etc/nginx/sites-available/, настроенный на ответ на доменное имя или IP-адрес вашего сервера, и защищенный сертификат TLS/SSL. В качестве примера мы будем использовать /etc/apache2/sites-available/wordpress, но вы должны использовать путь к вашему файлу конфигурации при необходимости.

      Также мы будем использовать /var/www/wordpress в качестве корневой директории для нашей установки WordPress. Вы должны корневой веб-узел, указанный в вашей собственной конфигурации.

      Примечание. вы можете использовать конфигурацию /etc/nginx/sites-available/default по умолчанию (с /var/www/html в качестве корневого веб-узла). Это допустимо, если вы собираетесь размещать только один веб-сайт на этом сервере. Если нет, рекомендуется разделить необходимую конфигурацию на логические части, по одному файлу на каждый сайт.

      Чтобы начать, откройте файл серверного блока вашего сайта с привилегиями sudo:

      • sudo nano /etc/nginx/sites-available/wordpress

      Внутри основного блока server нам нужно добавить несколько блоков location.

      Начнем с создания блоков с точным совпадением расположения для запросов к /favicon.ico и /robots.txt, для которых мы не хотим регистрировать запросы.

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

      /etc/nginx/sites-available/wordpress

      server {
          . . .
      
          location = /favicon.ico { log_not_found off; access_log off; }
          location = /robots.txt { log_not_found off; access_log off; allow all; }
          location ~* .(css|gif|ico|jpeg|jpg|js|png)$ {
              expires max;
              log_not_found off;
          }
          . . .
      }
      

      Внутри существующего блока location / нам нужно изменить список try_files, чтобы вместо возвращения ошибки 404 по умолчанию, управление передавалось файлу index.php с аргументами запроса.

      Вы должны получить примерно следующий вывод:

      /etc/nginx/sites-available/wordpress

      server {
          . . .
          location / {
              #try_files $uri $uri/ =404;
              try_files $uri $uri/ /index.php$is_args$args;
          }
          . . .
      }
      

      После завершения редактирования сохраните и закройте файл.

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

      Если не будет выявлено ошибок, перезагрузите Nginx, введя следующую команду:

      • sudo systemctl reload nginx

      Теперь мы загрузим и настроим непосредственно WordPress.

      Шаг 4 — Загрузка WordPress

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

      Перейдите в директорию с возможностью записи и загрузите сжатый релиз, введя следующую команду:

      • cd /tmp
      • curl -LO https://wordpress.org/latest.tar.gz

      Извлеките сжатый файл для создания структуры директории WordPress:

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

      • cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

      Теперь мы можем скопировать все содержимое директории в корневую директорию. Мы будем использовать флаг -a для гарантии того, что наши разрешения поддерживаются. Мы используем точку в конце директории источника, чтобы указать, что все содержимое директории должно быть скопировано, включая любые скрытые файлы.

      • sudo cp -a /tmp/wordpress/. /var/www/wordpress

      Теперь, когда наши файлы на месте, мы укажем принадлежность к пользователю и группе www-data. Именно этот пользователь и группа используются Nginx, а Nginx потребуется выполнять чтение и запись файлов WordPress для обслуживания веб-сайта и выполнения автоматических обновлений.

      • sudo chown -R www-data:www-data /var/www/wordpress

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

      Шаг 5 — Настройка файла конфигурации WordPress

      Далее нам нужно внести некоторые изменения в основной файл конфигурации WordPress.

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

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

      • curl -s https://api.wordpress.org/secret-key/1.1/salt/

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

      Предупреждение. Важно каждый раз запрашивать уникальные значения. НЕ копируйте значения, приведенные ниже!

      Output

      define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

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

      Теперь откройте файл конфигурации WordPress:

      • sudo nano /var/www/wordpress/wp-config.php

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

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'put your unique phrase here');
      define('SECURE_AUTH_KEY',  'put your unique phrase here');
      define('LOGGED_IN_KEY',    'put your unique phrase here');
      define('NONCE_KEY',        'put your unique phrase here');
      define('AUTH_SALT',        'put your unique phrase here');
      define('SECURE_AUTH_SALT', 'put your unique phrase here');
      define('LOGGED_IN_SALT',   'put your unique phrase here');
      define('NONCE_SALT',       'put your unique phrase here');
      
      . . .
      

      Удалите эти строки и добавьте значения, которые вы скопировали из командной строки:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
      define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
      
      . . .
      

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

      Еще одно изменение, которое нам нужно внести, — это настройка метода, который WordPress должен использовать для записи данных в файловой системе. Поскольку мы предоставили веб-серверу разрешение на запись там, где ему потребуется, мы можем прямо установить для метода записи значение «прямая». Если бы мы не внесли это изменение в текущие настройки, это привело бы к тому, что при выполнении некоторых действий WordPress будет запрашивать данные учетной записи для FTP. Эта настройка может быть добавлена под настройками подключения базы данных или в любом другом месте в файле:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('DB_NAME', 'wordpress');
      
      /** MySQL database username */
      define('DB_USER', 'wordpressuser');
      
      /** MySQL database password */
      define('DB_PASSWORD', 'password');
      
      . . .
      
      define('FS_METHOD', 'direct');
      

      Сохраните файл и закройте его после завершения.

      Шаг 6 — Завершение установки через веб-интерфейс

      Теперь, когда настройка сервера завершена, мы можем завершить установку через веб-интерфейс.

      В адресной строке браузера введите доменное имя или открытый IP-адрес вашего сервера:

      http://server_domain_or_IP
      

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

      Выбор языка WordPress

      После этого вы должны попасть на главную страницу настройки.

      Выберите имя для вашего сайта WordPress и имя пользователя (не рекомендуется использовать имя «admin» или что-то подобное в целях безопасности). Надежный пароль создается автоматически. Сохраните этот пароль или выберите другой надежный пароль.

      Введите адрес электронной почты и укажите, хотите ли вы, чтобы поисковые машины индексировали ваш сайт:

      Настройка установки WordPress

      При нажатии далее вы перейдете на страницу входа:

      Запрос входа в WordPress

      После входа вы перейдете в панель управления WordPress:

      Запрос входа в WordPress

      Заключение

      WordPress установлен и готов к использованию! Ниже представлены некоторые общие шаги по выбору параметров для постоянных ссылок для ваших постов (см. Настройка > Постоянные ссылки) или выбора новой темы (см. Внешний вид > Темы). Если вы впервые работаете с WordPress, краткое изучите интерфейс для знакомства с вашей новой CMS.



      Source link