Предыдущая версия данного обучающего руководства была написана Джастином Эллингвудом
WordPress — это самая популярная CMS (система управления контентов) в сети Интернет. Она позволяет вам легко настраивать блоги и веб-сайты, устанавливаемые поверх отвечающего за за серверную часть MySQL с поддержкой PHP. WordPress обладает невероятной адаптивностью и позволяет в кратчайшие сроки создать и запустить веб-сайт. После настройки практически все административные функции доступны через пользовательский веб-интерфейс.
В этом руководстве мы сфокусируемся главным образом на создании экземпляра WordPress на стеке LAMP (Linux, Apache, MySQL и PHP) на сервере Ubuntu 18.04.
Для выполнения этого обучающего руководства вам потребуется доступ к серверу Ubuntu 18.04.
Вам нужно будет выполнить следующие действия перед выполнением инструкций из данного руководства:
sudo
на вашем сервере: мы будем выполнять шаги из этого руководства, используя пользователя без прав root с привилегиями sudo
. Вы можете создать пользователя с привилегиями sudo
, следуя указаниям нашего Руководства по начальной настройке сервера Ubuntu 18.04.Завершив выполнение действий по первоначальной настройке, выполните вход на ваш сервер с помощью пользователя sudo
и перейдите к выполнению шагов ниже.
Первый шаг, который мы выполним, будет подготовительным. WordPress использует MySQL для управления и хранения сайта, а также информации пользователя. Мы уже установили MySQL, но нам нужно создать базу данных и пользователя, которые будет использовать WordPress.
Выполните вход в учетную запись MySQL с правами root (адмнистративную запись), введя следующую команду:
- mysql -u root -p
Вам будет предложено ввести пароль, который вы задали для учетной записи 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 узнал о последних внесенных нами изменениях:
- FLUSH PRIVILEGES;
Выйдите из MySQL, введя следующую команду:
- EXIT;
При настройке нашего стека 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
Теперь мы внесем несколько незначительных изменений в нашу конфигурацию Apache. Согласно руководствам по предварительным требованиям, у вас должен быть файл конфигурации для вашего сайта в директории /etc/apache2/sites-available
. В качестве примера мы будем использовать /etc/apache2/sites-available/wordpress.conf
, но вы должны использовать путь к вашему файлу конфигурации при необходимости.
Также мы будем использовать /var/www/wordpress
в качестве корневой директории для нашей установки WordPress. Вы должны корневой веб-узел, указанный в вашей собственной конфигурации.
Примечание. Вы можете использовать конфигурацию /000-default.conf
по умолчанию (с /var/www/html
в качестве корневого веб-узла). Это допустимо, если вы собираетесь размещать только один веб-сайт на этом сервере. Если нет, рекомендуется разделить необходимую конфигурацию на логические части, по одному файлу на каждый сайт.
В настоящее время использование файлов .htaccess
отключено. WordPress и многие плагины WordPress активно используют эти файлы для манипуляций с поведением веб-сервера внутри директории.
Откройте файл конфигурации Apache для вашего веб-сайта:
- sudo nano /etc/apache2/sites-available/wordpress.conf
Чтобы разрешить использование файлов .htaccess
, нам нужно настроить директиву AllowOverride
внутри блока Directory
, которая будет указывать на корневую директорию документа. Добавьте следующий текстовый блок внутри блока VirtualHost
в вашем файле конфигурации, убедившись, что вы используете правильный корневой веб-узел:
<Directory /var/www/wordpress/>
AllowOverride All
</Directory>
После завершения редактирования сохраните и закройте файл.
Теперь мы сможем активировать mod_rewrite
для использования постоянных ссылок в WordPress:
- sudo a2enmod rewrite
Перед применением внесенных изменений убедитесь, что мы не допустили ошибки в синтаксисе:
- sudo apache2ctl configtest
Вывод может содержать сообщение, которое выглядит следующим образом:
OutputAH00558: 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.
Теперь, когда программное обеспечение для сервера настроено, мы можем загрузить и настроить WordPress. В целях обеспечения безопасности обычно рекомендуется использовать последнюю версию WordPress с официального сайта.
Перейдите в директорию с возможностью записи и загрузите сжатый релиз, введя следующую команду:
- cd /tmp
- curl -O https://wordpress.org/latest.tar.gz
Извлеките сжатый файл для создания структуры директории WordPress:
- tar xzvf latest.tar.gz
Мы сразу же перенесем эти файлы в корневую директорию документов. Перед этим мы можем добавить пустой файл .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
Перед настройкой 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, введите:
- curl -s https://api.wordpress.org/secret-key/1.1/salt/
Вы получите уникальные значения, которые будут выглядеть следующим образом:
Предупреждение! Важно каждый раз запрашивать уникальные значения. НЕ копируйте значения, приведенные ниже!
Outputdefine('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
Найдите раздел, содержащий фиктивные значения для этих настроек. Он будет выглядеть примерно так:
. . .
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');
. . .
Удалите эти строки и добавьте значения, которые вы скопировали из командной строки:
. . .
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.
Эта настройка может быть добавлена под настройками подключения базы данных или в любом другом месте в файле:
. . .
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wordpressuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
. . .
define('FS_METHOD', 'direct');
Сохраните файл и закройте его после завершения.
Теперь, когда настройка сервера завершена, мы можем завершить установку через веб-интерфейс.
В адресной строке браузера введите доменное имя или открытый IP-адрес вашего сервера:
https://server_domain_or_IP
Выберите язык, который вы хотите использовать:
После этого вы должны попасть на главную страницу настройки.
Выберите имя для вашего сайта WordPress и имя пользователя (не рекомендуется использовать имя «admin» или что-то подобное в целях безопасности). Надежный пароль создается автоматически. Сохраните этот пароль или выберите другой надежный пароль.
Введите адрес электронной почты и укажите, хотите ли вы, чтобы поисковые машины индексировали ваш сайт:
При нажатии далее вы перейдете на страницу входа:
После входа вы перейдете в панель управления WordPress:
WordPress установлен и готов к использованию! Ниже представлены некоторые общие шаги по выбору параметров для постоянных ссылок для ваших постов (см. Настройка > Постоянные ссылки
) или выбора новой темы (см. Внешний вид > Темы
). Если вы впервые работаете с WordPress, краткое изучите интерфейс для знакомства с вашей новой CMS.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
If command “GRANT ALL ON wordpress.* TO ‘wordpressuser’@‘localhost’ IDENTIFIED BY ‘password’;” doesn’t work for you try to write " CREATE USER ‘wordpressuser’@‘localhost’ IDENTIFIED BY ‘password’; GRANT ALL ON wordpress.* TO ‘wordpressuser’@‘localhost’; ". The problem arises because mysql 8 requires you to explicitly create a user.