Поиск по сайту:

Как установить WordPress с Nginx на Ubuntu 14.04


Введение

WordPress — самая популярная CMS (система управления контентом) в мире. Это позволяет вам легко запустить свой сайт или блог. После установки вы сможете управлять практически всем в удобном веб-интерфейсе.

В этом руководстве мы рассмотрим, как установить WordPress на сервер Ubuntu 14.04. Для компонента веб-сервера мы будем использовать nginx, мощный и эффективный веб-сервер, получивший широкое распространение благодаря своим возможностям производительности.

Предпосылки

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

Во-первых, вам понадобится пользователь без полномочий root с привилегиями sudo. Вы можете выполнить шаги 1-4 в руководстве по начальной настройке сервера Ubuntu 14.04, чтобы создать эту учетную запись.

Вам также потребуется стек LEMP (операционная система Linux, веб-сервер Nginx, база данных MySQL и обработка PHP), установленный и настроенный на вашем сервере. Вы можете узнать, как установить и настроить необходимые компоненты, следуя нашему руководству по установке стека LEMP в Ubuntu 14.04 здесь.

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

Шаг первый — создайте базу данных MySQL и пользователя для WordPress

Первое, что нам нужно сделать, чтобы начать работу с WordPress, — это подготовить нашу базу данных.

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

Мы должны начать с входа в интерактивный сеанс с нашей административной учетной записью MySQL следующим образом:

mysql -u root -p

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

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

<пред>

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

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

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

<пред>

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

<пред>

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

FLUSH PRIVILEGES;

Теперь выйдите из командной строки MySQL:

exit

Теперь мы вернулись в нашу командную строку и готовы двигаться дальше.

Шаг второй — загрузите WordPress на свой сервер

Далее нам нужно загрузить фактический контент WordPress на наш сервер. Это доступно на веб-сайте WordPress.

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

cd ~
wget http://wordpress.org/latest.tar.gz

Файлы нашего приложения были загружены в виде сжатой архивной структуры каталогов, хранящейся в файле с именем latest.tar.gz. Мы можем извлечь содержимое, набрав:

tar xzvf latest.tar.gz

Это создаст каталог с именем wordpress, содержащий файлы сайта.

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

sudo apt-get update
sudo apt-get install php5-gd libssh2-php

Эти два пакета позволяют вам работать с изображениями и устанавливать/обновлять плагины и компоненты с использованием SSH соответственно.

Шаг третий — настроить WordPress

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

Нам нужно изменить основной файл конфигурации, расположенный в нашем новом каталоге. Перейдите в каталог, который вы извлекли в последнем разделе:

cd ~/wordpress

Внутри этого каталога у нас есть пример файла конфигурации с именем wp-config-sample.php. В нем правильно указаны большинство деталей конфигурации, поэтому мы можем скопировать его, чтобы использовать в качестве основы нашего файла конфигурации:

cp wp-config-sample.php wp-config.php

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

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

  1. 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:

nano 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');

. . .

Теперь файл подходит для наших нужд; ему просто не хватает информации для подключения к созданной нами базе данных. Нам нужно установить следующие параметры: DB_NAME, DB_USER и DB_PASSWORD.

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

<пред>

/** Имя пользователя базы данных MySQL */

/** Пароль базы данных MySQL */

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

Шаг четвертый — скопируйте файлы в корень документа

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

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

Расположение корневого каталога документов nginx по умолчанию в Ubuntu 14.04 — /usr/share/nginx/html/.

Однако мы собираемся настроить корень нашего документа в /var/www/html/, чтобы избежать изменения местоположения каталога, которым управляет пакет nginx. Мы изменим это в нашей конфигурации nginx чуть позже.

Мы можем создать новый корневой каталог документа, набрав:

sudo mkdir -p /var/www/html

Теперь мы можем скопировать файлы в это место, набрав:

sudo rsync -avP ~/wordpress/ /var/www/html/

Это рекурсивно скопирует содержимое нашего каталога ~/wordpress в корень нашего документа.

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

cd /var/www/html/

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

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

Группа, в которой работает nginx, называется www-data. Для пользовательской части введите имя своей учетной записи пользователя. Мы продемонстрируем это с помощью учетной записи под названием demo здесь:

<пред>

Это даст нашим файлам необходимое право собственности.

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

mkdir wp-content/uploads

Для нового каталога уже должна быть установлена групповая запись, но новому каталогу еще не назначено владение группой www-data. Давайте исправим это:

sudo chown -R :www-data /var/www/html/wp-content/uploads

Шаг пятый — изменение блоков сервера Nginx

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

Мы можем использовать блок сервера nginx по умолчанию в качестве основы для нашего нового блока сервера. Скопируйте его вот так:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress

Откройте новый файл, который мы сделали, чтобы мы могли внести некоторые изменения:

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

Мы хотим внести следующие изменения:

<пред>

    root <span class="highlight">/var/www/html</span>;
    index <span class="highlight">index.php</span> index.html index.htm;

    server_name <span class="highlight">your_domain.com</span>;

    location / {
            <span class="highlight">#</span> try_files $uri $uri/ =404;
            try_files $uri $uri/ <span class="highlight">/index.php?q=$uri&$args</span>;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/html;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

}

Краткий обзор изменений, которые вы должны внести:

  • Измените значение директивы root, чтобы она указывала на наш новый корень документа в /var/www/html.
  • Измените параметр index, чтобы файл index.php искался перед другими файлами.
  • Измените значение директивы server_name, чтобы оно указывало на доменное имя или IP-адрес вашего сервера.
  • Настройте try_files в блоке location /, чтобы отправлять запросы в PHP, если они не совпадают точно.

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

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

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

Файл, который мы только что связали, конфликтует с нашим старым файлом по умолчанию, поскольку он так много заимствовал из него. Нам нужно отключить старый файл:

sudo rm /etc/nginx/sites-enabled/default

Теперь перезапустите веб-сервер и PHP-процессор, чтобы наши изменения вступили в силу:

sudo service nginx restart
sudo service php5-fpm restart

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

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

Укажите в браузере доменное имя или IP-адрес вашего сервера, например:

<пред>

Если это показывает вашу старую страницу nginx по умолчанию, возможно, вам придется обновить страницу без кеша.

Вы увидите базовую стадию приветствия WordPress. Выберите параметры (имя сайта, имя пользователя, пароль и адрес электронной почты), а затем нажмите кнопку «Установить WordPress»:

Вам нужно будет войти в систему с только что созданной учетной записью:

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

Заключение

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