Why Ubuntu?
There are a ton of different Linux distributions. For servers, the most popular are Ubuntu, Debian, and CentOS. Ubuntu is one of the most popular Linux distributions for a few reasons:
- Heavily focussed on usability
- A large selection of packages
- Frequent software updates
- A large community leading to more helpful resources
Frequent software updates can also be a drawback as it’s possible to introduce new bugs and conflicts as packages are updated. But Ubuntu has a Long Term Support (LTS) release that uses packages that are more stable. LTS releases occur every 2 years and are supported for 5 years – making them suitable for production servers.
Step Two — Download WordPress to your Server
Next, we need to download the actual WordPress content onto our server. This is available on the WordPress website.
The latest stable version of the application is always given the same URL, which makes this part easy. We want to download the file to our user’s home directory:
Our application files have been downloaded as a compressed, archived directory structure stored in a file called . We can extract the contents by typing:
This will create a directory called that contains the site files.
We should take this opportunity to download some additional components that our WordPress instance will need. We can get these directly from Ubuntu’s software repositories using :
These two packages allow you to work with images and install/update plugins and components using SSH respectively.
Why MariaDB instead of MySQL?
When I first chose MariaDB for this guide, it was because it offered more features and speed improvements over a MySQL database. It’s also fully open source (unlike MySQL) and has been adopted by a number of large companies.
While the latter continues to be true, it seems MySQL 8 has caught up in features and performance. This is why we offer both MySQL 8 and MariaDB options when setting up a new server in SpinupWP.
For this guide however, I’ve chosen to stick with MariaDB for now because by default MySQL 8 is configured for large scale enterprise applications. It requires a lot of configuration to make it suitable for our use. SpinupWP handles modifying configuration files automatically when setting up a new server.
Step 1 — Creating a MySQL Database and User for WordPress
The first step that we will take is a preparatory one. WordPress uses MySQL to manage and store site and user information. We have MySQL installed already, but we need to make a database and a user for WordPress to use.
To get started, log into the MySQL root (administrative) account. If MySQL is configured to use the authentication plugin (the default), you can log into the MySQL administrative account using :
If you changed the authentication method to use a password for the MySQL root account, use the following format instead:
You will be prompted for the password you set for the MySQL root account.
First, we can create a separate database that WordPress can control. You can call this whatever you would like, but we will be using in this guide to keep it simple. You can create the database for WordPress by typing:
Note: Every MySQL statement must end in a semi-colon (;). Check to make sure this is present if you are running into any issues.
Next, we are going to create a separate MySQL user account that we will use exclusively to operate on our new database. Creating one-function databases and accounts is a good idea from a management and security standpoint. We will use the name in this guide. Feel free to change this if you’d like.
We are going to create this account, set a password, and grant access to the database we created. We can do this by typing the following command. Remember to choose a strong password here for your database user:
You now have a database and user account, each made specifically for WordPress. We need to flush the privileges so that the current instance of MySQL knows about the recent changes we’ve made:
Exit out of MySQL by typing:
The MySQL session will exit, returning you to the regular Linux shell.
Step 3 — Configuring Nginx
Next, let’s make a few adjustments to our Nginx server block files. Based on the prerequisite tutorials, you should have a configuration file for your site in the directory configured to respond to your server’s domain name or IP address and protected by a TLS/SSL certificate. We’ll use as an example here, but you should substitute the path to your configuration file where appropriate.
Additionally, we will use as the root directory of our WordPress install in this guide. Again, you should use the web root specified in your own configuration.
Note: It’s possible you are using the default configuration (with as your web root). This is fine to use if you’re only going to host one website on this server. If not, it’s best to split the necessary configuration into logical chunks, one file per site.
Open your site’s server block file with privileges to begin:
Within the main block, let’s add a few blocks.
Start by creating exact-matching location blocks for requests to and , both of which you do not want to log requests for.
Use a regular expression location to match any requests for static files. We will again turn off the logging for these requests and will mark them as highly cacheable, since these are typically expensive resources to serve. You can adjust this static files list to contain any other file extensions your site may use:
/etc/nginx/sites-available/wordpress
Inside of the existing block, let’s adjust the list. Comment out the default setting by prepending the line with a pound sign () and then add the highlighted line. This way, instead of returning a 404 error as the default option, control is passed to the file with the request arguments.
This should look something like this:
/etc/nginx/sites-available/wordpress
When you are finished, save and close the file.
Now, let’s check our configuration for syntax errors by typing:
If no errors were reported, reload Nginx by typing:
Next, let’s download and set up WordPress.
Шаг 3 — Настройка Nginx
Далее мы внесем несколько незначительных изменений в наши файлы серверного блока Nginx. Согласно руководствам по предварительным требованиям, у вас должен быть файл конфигурации для вашего сайта в директории , настроенный на ответ на доменное имя или IP-адрес вашего сервера, и защищенный сертификат TLS/SSL. В качестве примера мы будем использовать , но вы должны использовать путь к вашему файлу конфигурации при необходимости.
Также мы будем использовать в качестве корневой директории для нашей установки WordPress. Вы должны корневой веб-узел, указанный в вашей собственной конфигурации.
Примечание. вы можете использовать конфигурацию по умолчанию (с в качестве корневого веб-узла). Это допустимо, если вы собираетесь размещать только один веб-сайт на этом сервере. Если нет, рекомендуется разделить необходимую конфигурацию на логические части, по одному файлу на каждый сайт.
Чтобы начать, откройте файл серверного блока вашего сайта с привилегиями :
Внутри основного блока нам нужно добавить несколько блоков .
Начнем с создания блоков с точным совпадением расположения для запросов к и , для которых мы не хотим регистрировать запросы.
Мы будем использовать регулярное выражение расположения для проверки на совпадение с любыми запросами для статичных файлов. Мы снова отключим регистрацию для этих запросов и пометим их как высоко кэшируемые, так как обслуживание подобных ресурсов может повлечь серьезные затраты. Вы можете изменить этот статичный список файлов и включить любые другие расширения файла, которые вы можете использовать на вашем сайте:
/etc/nginx/sites-available/wordpress
Внутри существующего блока нам нужно изменить список , чтобы вместо возвращения ошибки 404 по умолчанию, управление передавалось файлу с аргументами запроса.
Вы должны получить примерно следующий вывод:
/etc/nginx/sites-available/wordpress
После завершения редактирования сохраните и закройте файл.
Теперь мы можем проверить нашу конфигурацию на наличие ошибок в синтаксисе, введя следующую команду:
Если не будет выявлено ошибок, перезагрузите Nginx, введя следующую команду:
Теперь мы загрузим и настроим непосредственно WordPress.
Шаг 3 — Настройка конфигурации Apache для получения доступа к переопределению и перезаписи .htaccess
Теперь мы внесем несколько незначительных изменений в нашу конфигурацию Apache. Согласно руководствам по предварительным требованиям, у вас должен быть файл конфигурации для вашего сайта в директории .
В этом обучающем руководстве в качестве примера мы будем использовать , а вам необходимо заменить путь к вашему файлу конфигурации в соответствующем месте. Также мы будем использовать в качестве корневой директории для нашей установки WordPress. Вы должны использовать корневой веб-узел, указанный в вашей собственной конфигурации. Если вы следовали указаниям нашего руководства по LAMP, вы можете использовать ваше доменное имя вместо в обоих случаях.
Примечание. Вы можете использовать конфигурацию по умолчанию (с в качестве корневого веб-узла). Это допустимо, если вы собираетесь размещать только один веб-сайт на этом сервере. Если нет, рекомендуется разделить необходимую конфигурацию на логические части, по одному файлу на каждый сайт.
После того как мы идентифицировали путь, можно переходить к работе с , чтобы Apache мог обрабатывать изменения конфигурации для отдельных директорий.
Активация переопределения .htaccess
В настоящее время использование файлов отключено. WordPress и многие плагины WordPress активно используют эти файлы для манипуляций с поведением веб-сервера внутри директории.
Откройте файл конфигурации Apache для вашего веб-сайта с помощью текстового редактора, например nano.
Чтобы разрешить использование файлов , нам нужно настроить директиву внутри блока , которая будет указывать на корневую директорию документа. Добавьте следующий текстовый блок внутри блока в вашем файле конфигурации, убедившись, что вы используете правильную корневую веб-директорию:
/etc/apache2/sites-available/wordpress.conf
После завершения редактирования сохраните и закройте файл. В редакторе nano вы можете сделать это, нажав сочетание клавиш и , затем , затем .
Активация модуля перезаписи
Теперь мы сможем активировать для использования постоянных ссылок в WordPress:
Это позволит вам получать более удобные для восприятия постоянные ссылки для ваших постов, как в двух следующих примерах:
Команда вызывает скрипт, который активирует заданный модуль в конфигурации Apache.
Активация изменений
Перед применением внесенных изменений убедитесь, что мы не допустили ошибки в синтаксисе, с помощью этого теста.
Вывод может выглядеть следующим образом:
Если вы хотите скрыть верхнюю строку, добавьте директиву в ваш основной (глобальный) файл конфигурации Apache в . Вместо вы можете использовать домен или IP-адрес вашего сервера. Однако это просто сообщение, которое не влияет на функциональность вашего сайта. Если вывод содержит , вы можете двигаться дальше.
Перезапустите Apache для внесения изменений. Обязательно перезапустите сейчас, даже если вы уже выполняли перезагрузку в ходе данного обучающего руководства.
Теперь мы загрузим и настроим непосредственно WordPress.
Шаг 5: Настройка директории WordPress
Перед началом настройки WordPress с использованием веб-интерфейса нам необходимо сделать некоторые изменения в самой директории WordPress.
Настройка прав доступа
Одной из важных задач на данном этапе является настройка разумных прав доступа и владельцев файлов. Мы должны иметь возможность писать в эти файлы используя профиль обычного пользователя. Кроме того, веб-сервер должен иметь возможность осуществлять доступ и изменять определённые файлы и директории для своей корректной работы.
Начнём с того, что установим владельцем всех наших файлов в корневой директории сайта нашего пользователя. В этой статье мы используем имя пользователя , вам необходимо использовать имя вашего -пользователя. В качестве группы вы будем использовать группу :
Далее настроим бит для каждой из директорий в корневой директории. Благодаря этому все новые файлы, создаваемый в этих директориях, будут наследовать группу родительской директории (которую мы только что установили как ) вместо использования основной группы пользователя. Это необходимо для того, чтобы при создании любого файла в директории с помощью командной строки, веб-сервер имел доступ к этому файлу.
Теперь разрешим группе писать в директорию для того, чтобы веб-интерфейс мог вносить изменения в тему и плагины:
Далее дадим веб-серверу права на запись в следующие директории:
С этими настройками мы можем начать работу с WordPress. Некоторые плагины могут потребовать дополнительных настроек.
Настройка файла конфигурации WordPress
Теперь сделаем несколько изменения в основной файл конфигурации WordPress.
Сначала зададим некоторые секретные ключи для повышения безопасности. WordPress предоставляет генератор этих строк, поэтому вам не надо придумывать их самостоятельно. Эти строки используются только самим WordPress, поэтому не бойтесь задавать для них сложные значения.
Для получения строк от WordPress используйте следующую команду:
В ответ вы получите набор уникальных строк, который будет выглядеть следующим образом:
Внимание: Важно получать уникальные строки при каждой новой установке WordPress. Не копируйте строки, приведённые ниже в качестве примера!
Эти строки конфигурации можно вставить в наш конфигурационный файл
Скопируйте вывод, полученный выше, а затем откройте файл конфигурации WordPress:
Эти строки конфигурации можно вставить в наш конфигурационный файл. Скопируйте вывод, полученный выше, а затем откройте файл конфигурации WordPress:
Найдите секцию, которая содержит пустые значения для этих параметров. Она будет выглядеть примерно так:
/var/www/html/wp-config.php
Удалите эти строки и вставьте значения, полученные ранее:
/var/www/html/wp-config.php
Далее изменим настройки соединения с базой данных в начале файла. Нам необходимо задать имя базы данных, имя пользователя базы данных, а также соответствующий пароль этого пользователя MySQL.
Кроме того, мы зададим метод, который WordPress будет использовать при записи в файловую систему. Поскольку мы дали веб-серверу права на запись в необходимые директории, мы можем задать это значение в явном виде, как . Если этого не сделать, при выполнении некоторых операций WordPress будет запрашивать логин и пароль для FTP доступа.
Эти настройки можно добавить сразу после настроек соединения с базой данных или в любом другом месте файла:
/var/www/html/wp-config.php
Сохраните и закройте файл.
Создать базу данных и пользователя с помощью phpMyAdmin
phpMyAdmin предоставляет графический интерфейс пользователя для управления базами данных. Это очень удобный инструмент для редактирования информации, хранящейся в базе данных.
Если вы уже настроили базу данных с помощью командной строки MySQL, пропустите этот шаг и перейдите непосредственно к установке WordPress.
Войдите в свою панель управления phpMyAdmin, открыв следующий URL в вашем браузере.
http:///phpmyadmin
Например, если у вас публичный IP-адрес 100.20.30.25, вы должны открыть:
http://100.20.30.25/phpmyadmin
Вы также можете использовать свое доменное имя вместо IP-адреса, если у вас есть эта настройка. Теперь войдите в phpMyAdmin, используя вашего root-пользователя MySQL и пароль.
Чтобы создать базу данных через phpMyAdmin, нажмите на ссылку «Создать» на левой панели над списком баз данных.
На следующем шаге вы найдете интерфейс для создания базы данных, как показано ниже, введите имя базы данных, которую вы хотите создать. В этом уроке мы будем использовать базу данных с именем wpdata. Нажмите кнопку Создать, чтобы создать пустую базу данных.
Как только база данных будет создана, вы увидите название базы данных на левой панели, нажмите на базу данных, чтобы выбрать ее.
Когда база данных выбрана, она покажет структуру базы данных, так как в вашем случае база данных пуста, она покажет вам сообщение: в базе данных нет таблиц. Нажмите на вкладку Привилегии в верхнем меню, чтобы просмотреть пользователей, которые имеют доступ к базе данных, которую мы создали.
Вы увидите, что большинство пользователей, имеющих доступ к вашей базе данных, в настоящее время являются глобальными пользователями, такими как root. Нам нужно будет создать пользователя для вашей базы данных. Нажмите «Добавить пользователя», чтобы добавить другого пользователя в вашу базу данных. Вы увидите интерфейс для ввода имени пользователя и пароля для вашего нового пользователя.
В разделе Информация для входа введите имя пользователя для вашего нового пользователя. Оставьте значение по умолчанию в текстовом поле Host, которое равно%. Введите надежный пароль для вашего пользователя, если вы хотите, вы можете сгенерировать пароль вместо этого.
В разделе «База данных для пользователя» установите третий флажок, чтобы предоставить все привилегии для базы данных «wpdata». Имя базы данных может меняться в зависимости от базы данных, которую вы создали ранее.
Наконец нажмите кнопку «Перейти», чтобы создать нового пользователя для вашей базы данных и назначить ему полные права доступа к вашей базе данных.
Теперь, когда у нас есть база данных и пользовательская настройка базы данных, мы можем начать установку WordPress.
Why not Apache?
If you search “Nginx vs Apache” you’ll find benchmark after benchmark of Nginx destroying Apache for serving static files. Nginx is a beast for serving static files. That’s its greatest strength.
Some providers install both Nginx and Apache2 with mod_php. When a request comes in, it is always first handled by Nginx. If the request is for a static file, Nginx serves it. No Apache needed. If the request is for a PHP page, Nginx forwards the request on to Apache, Apache’s mod_php processes it and returns a response to Nginx, and finally Nginx serves it.
Apache is really used as a PHP processor in this stack. But PHP comes included with a FastCGI process manager called PHP-FPM which can be used directly with Nginx. The flow with PHP-FPM is much the same, but we find it simpler to configure PHP-FPM than Apache + mod_php. PHP-FPM also feels lighter weight to us and seems to use fewer resources. It’s also nice that PHP-FPM comes included with the PHP package and there’s no need to install another software package and keep it updated.
Upgrading WordPress
As WordPress upgrades become available, you will be unable in install them through the interface with the current permissions.
The permissions we selected here are meant to provide a good balance between security and usability for the 99% of times between upgrading. However, they are a bit too restrictive for the software to automatically apply updates.
When an update becomes available, log back into your server as your user. Temporarily give the web server process access to the whole document root:
Now, go back the WordPress administration panel and apply the update.
When you are finished, lock the permissions down again for security:
This should only be necessary when applying upgrades to WordPress itself.
Step 2 — Installing Additional PHP Extensions
When setting up the LEMP stack, it required a very minimal set of extensions to get PHP to communicate with MySQL. WordPress and many of its plugins leverage additional PHP extensions, and you’ll use a few more in this tutorial.
Let’s download and install some of the most popular PHP extensions for use with WordPress by typing:
Note: Each WordPress plugin has its own set of requirements. Some may require additional PHP extension packages to be installed. Check your plugin documentation to discover its PHP requirements. If they are available, they can be installed with as demonstrated above.
When you are finished installing the extensions, restart the PHP-FPM process so that the running PHP processor can leverage the newly installed features:
You now have all of the PHP extensions needed, installed on the server.
Шаг 4 — Загрузка WordPress
Теперь, когда программное обеспечение для сервера настроено, мы можем загрузить и настроить WordPress. В целях обеспечения безопасности обычно рекомендуется использовать последнюю версию WordPress с официального сайта.
Перейдите в директорию с возможностью записи (мы рекомендуем временную, например ) и загрузите сжатый релиз.
Извлеките сжатый файл для создания структуры директории WordPress:
Мы сразу же перенесем эти файлы в корневую директорию документов. Перед этим мы можем добавить пустой файл , чтобы он был доступен для использования в WordPress позднее.
Создайте файл, введя следующую команду:
Мы также заменим имя примера файла конфигурации на имя файла, который использует WordPress:
Также мы создадим директорию , чтобы WordPress не испытывал проблем с разрешениями при попытке сделать это самостоятельно после обновления программного обеспечения:
Теперь мы можем скопировать все содержимое директории в корневую директорию. Мы используем точку в конце директории источника, чтобы указать, что все находящиеся в директории файлы должны быть скопированы, включая скрытые файлы (например, созданный нами файл ):
Убедитесь, что вы заменили директорию директорией, установленной на вашем сервере.
Step 4 — Downloading WordPress
Now that our server software is configured, we can download and set up WordPress. For security reasons in particular, it is always recommended to get the latest version of WordPress from their site.
Change into a writable directory and then download the compressed release by typing:
Extract the compressed file to create the WordPress directory structure:
We will be moving these files into our document root momentarily. Before we do that, we can copy over the sample configuration file to the filename that WordPress actually reads:
Now, we can copy the entire contents of the directory into our document root. We are using the flag to make sure our permissions are maintained. We are using a dot at the end of our source directory to indicate that everything within the directory should be copied, including any hidden files:
Now that our files are in place, we’ll assign ownership them to the user and group. This is the user and group that Nginx runs as, and Nginx will need to be able to read and write WordPress files in order to serve the website and perform automatic updates.
Our files are now in our server’s document root and have the correct ownership, but we still need to complete some more configuration.
Step 5 — Setting up the WordPress Configuration File
Next, let’s make some changes to the main WordPress configuration file.
When you open the file, you’ll start by adjusting some secret keys to provide some security for our installation. WordPress provides a secure generator for these values so that you don’t have to come up with values on your own. These are only used internally, so it won’t hurt usability to have complex, secure values here.
To grab secure values from the WordPress secret key generator, type:
You will get back unique values that look something like this:
Warning: It is important that you request unique values each time. Do NOT copy the values shown below!
These are configuration lines that you can paste directly in your configuration file to set secure keys. Copy the output you received now.
Now, open the WordPress configuration file:
Find the section that contains the dummy values for those settings. It will look something like this:
/var/www/wordpress/wp-config.php
Delete those lines and paste in the values you copied from the command line:
/var/www/wordpress/wp-config.php
Next, let’s modify some of the database connection settings at the beginning of the file. You’ll have to adjust the database name, the database user, and the associated password that was configured within MySQL.
The other change you should make is to set the method that WordPress uses to write to the filesystem. Since you’ve given the web server permission to write where it needs to, you can explicitly set the filesystem method to “direct”. Failure to set this with our current settings would result in WordPress prompting for FTP credentials when we perform some actions. Add this setting below the database connection settings, or anywhere else in the file:
/var/www/wordpress/wp-config.php
Save and close the file when you’re done.
Step Three — Configure WordPress
Most of the configuration that we will be doing will be through a web interface later on. However, we do need to do some work from the command line before we can get this up and running.
Begin by moving into the WordPress directory that you just unpacked:
A sample configuration file that mostly matches the configuration we need is included by default. However, we need to copy it to the default configuration file location to get WordPress to recognize the file. Do that now by typing:
Now that we have a configuration file to work with, we can generate some secret keys that help to secure the installation. WordPress provides a secure generator for these values so that you do not have to try to come up with good values on your own. These are only used internally, so it won’t hurt usability to have complex, secure values here.
To grab secure values from the WordPress secret key generator, type:
You will get back unique values that look something like this:
Warning! It is important that you request unique values each time. Do NOT copy the values shown below!
These are configuration lines that we can paste directly in our configuration file to set secure keys. Copy the output you received now.
Next, let’s open the configuration file in a text editor:
Find the section that contains the dummy values for those settings. It will look something like this:
Delete those lines and paste in the values you copied from the command line:
/var/www/html/wp-config.php
After that, the only modifications we need to make are to the parameters that hold our database information.
We will need to find the settings for , , and in order for WordPress to correctly connect and authenticate to the database we created.
Fill in the values of these parameters with the information for the database you created. It should look like this:
<pre>
// ** MySQL settings — You can get this info from your web host ** //
/** The name of the database for WordPress */
define(‘DB_NAME’, ’<span class=“highlight”>wordpress</span>’);
/** MySQL database username */
define(‘DB_USER’, ’<span class=“highlight”>wordpressuser</span>’);
/** MySQL database password */
define(‘DB_PASSWORD’, ’<span class=“highlight”>password</span>’);
</pre>
These are the only values that you need to change.
When you are finished, save and close the file.
Install MySQL
Once Apache is running, the next step is to install the MySQL database. To do so, run the following command on Terminal:
$ sudo apt install mysql-client-core-5.7
You’ll be prompted to enter your password. To complete the installation, press Y and Enter when prompted. Open the MySQL terminal by typing:
$ sudo mysql
Set the password for the root user using this command:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ‘YOURPASSWORD;
To implement these changes, run the Flush command:
mysql> FLUSH PRIVILEGES;
Type exit to close the MySQL command prompt and complete the installation.
1: Создание базы данных MySQL и пользователя WordPress
Первое, что нужно сделать для запуска WordPress – подготовить базу данных.
На данный момент на сервере установлена база данных MySQL, но базы данных для информации WordPress пока еще нет. Кроме того, необходимо создать учетную запись, которую WordPress сможет использовать для получения доступа к БД.
Для начала нужно открыть интерактивную сессию с помощью учетной записи администратора MySQL:
Будет запрошен пароль, указанный для root-записи MySQL при установке программного обеспечения. Появится командная строка MySQL.
Теперь нужно создать отдельную базу данных, использовать которую будет исключительно WordPress. Название БД не имеет значения, но, вероятно, ее имя должно иметь отношение к проекту, чтоб ее можно было легко распознать. В этом руководстве БД называется wordpress:
Обратите внимание на символ точки с запятой (;) в конце предложения MySQL. Каждое выражение MySQL должно заканчиваться таким символом, потому при возникновении проблем проверьте его наличие в каждой строке
Теперь БД создана и можно приступить к созданию учетной записи. Затем нужно будет передать управление базой данных этому новому пользователю, чтобы приложение WP могло с ней взаимодействовать
Такой подход (создание индивидуальной базы данных и пользователя для каждого приложения) помогает держать все хранящиеся на MySQL данные отдельно, что очень важно для управления безопасностью и данными
Для удобства в данном руководстве именем пользователя будет wordpressuser, его паролем – password. Конечно, создавая такого пользователя, стоит выбрать более сложные имя и пароль:
Теперь, когда БД и пользователь созданы, нужно установить связь между ними – сказать MySQL, что новый пользователь может получать доступ к БД и управлять ей. Для этого используйте команду:
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
Теперь нужно сбросить привилегии на диск, чтобы текущий экземпляр MySQL узнал об изменениях:
Закройте строку MySQL:
Это вернет командную строку.
Install and Configure Apache2
The first step to set up the LAMP stack is to install and configure the Apache2 web server. Start by opening the Terminal application on Ubuntu.
Then, enter this command:
$ sudo apt update -y
If you’re asked to enter a password, input your Ubuntu password and press Enter. Note that it won’t be shown as you type it.
Then, run the following command to install the Apache2 web server on Ubuntu:
$ sudo apt install apache2
If you use the Uncomplicated Firewall (UFW), it may restrict Apache’s HTTP and HTTPS traffic. To check your UFW application profiles, enter this command:
$ sudo ufw app list
The output will look like this:
Available applications: Apache Apache Full Apache Secure OpenSSH
2: Загрузка WordPress
После этого нужно загрузить WordPress с сайта проекта.
Примечание: Команда WordPress всегда размещает актуальные версии системы по одной и той же ссылке.
Чтобы скачать пакет WordPress в домашний каталог, введите:
cd ~
wget http://wordpress.org/latest.tar.gz
В домашнем каталоге появится архив WordPress. Извлечь содержимое архива можно при помощи команды:
tar xzvf latest.tar.gz
В домашнем каталоге появится каталог wordpress.
sudo apt-get update
sudo apt-get install php5-gd libssh2-php
Эти библиотеки отвечают за обработку изображений, поддержку плагинов и обновление сайта через SSH.
Шаг 1 — Создание базы данных MySQL и пользователя для WordPress
Первый шаг, который мы выполним, будет подготовительным. WordPress использует MySQL для управления и хранения сайта, а также информации пользователя. Мы уже установили MySQL, но нам нужно создать базу данных и пользователя, которые будет использовать WordPress.
Выполните вход в учетную запись MySQL с правами root (административную запись). Если MySQL настроен для использования плагина аутентификации (по умолчанию), вы можете войти в административную учетную запись MySQL с помощью :
Если вы измените метод аутентификации на использование пароля для учетной записи MySQL с правами root, воспользуйтесь следующим форматом:
Вам будет предложено ввести пароль, который вы задали для учетной записи MySQL с правами root.
Сначала нам нужно создать отдельную базу данных, которую сможет контролировать WordPress. Вы можете использовать любое название, но мы в этом руководстве будем использовать для простоты. Создайте базу данных для WordPress, введя следующую команду:
Примечание. Каждый оператор MySQL должен заканчиваться точкой с запятой (;). Убедитесь, что это правило не нарушено, если вы столкнетесь с какими-либо проблемами.
Затем мы создадим отдельную учетную запись пользователя MySQL, которую будем использовать исключительно для работы с нашей новой базы данных. Создание баз данных и учетных записей с одной функцией является хорошей идеей с точки зрения управления и безопасности. В этом руководстве мы будем использовать имя . Вы можете использовать любое имя по вашему желанию.
Мы создадим учетную запись, установим пароль и предоставим доступ к созданной нами базе данных. Для этого мы воспользуемся следующей командой: Не забудьте задать надежный для пользователя базы данных на этом шаге:
Теперь у вас есть база данных и учетная запись пользователя, которые созданы специально для WordPress. Нам нужно установить права, чтобы текущий экземпляр MySQL узнал о последних внесенных нами изменениях:
Выйдите из MySQL, введя следующую команду:
Сессия MySQL будет закрыта, а вы вернетесь к стандартной командной строке Linux.
Шаг 2 — Установка дополнительных расширений PHP
При настройке нашего стека LAMP нам требуется только минимальный набор расширений, чтобы реализовать коммуникацию PHP с MySQL. WordPress и многие плагины используют дополнительные расширения PHP.
Мы можем загрузить и установить некоторые из самых популярных расширений PHP, которые будет использовать WordPress, введя следующую команду:
Примечание. Каждый плагин WordPress имеет собственный набор требований. Для поддержки некоторых из них может потребоваться установка дополнительных пакетов PHP. Ознакомьтесь с документацией плагина для получения информации о требованиях к PHP. Если они доступны, их можно установить с помощью , как показано выше.
Нам понадобится перезапустить Apache для загрузки этих новых расширений. Мы будем работать с настройками Apache в следующем разделе, поэтому вы можете выполнить этот шаг позже или же перезагрузить сейчас, чтобы завершить процесс настройки расширения PHP.
Подготовка MySQL для WordPress
Для хранения и управления данными сайта и пользователей WordPress требует наличия базы данных, а также учетной записи пользователя. Давайте создадим его следующим образом.
Во-первых, войдите в MySQL с помощью приведенной ниже команды.
После того, как вы вошли в MySQL, выполните следующие запросы, чтобы создать базу данных и учетную запись пользователя для WordPress. Замените wpuser и WP@ssw0rd своими собственными значениями.
Создание базы данных MySQL и пользователя для WordPress
Затем предоставьте учетной записи Пользователя WordPress права доступа к базе данных wordpress с помощью приведенного ниже запроса.
После этого перезагрузите таблицы грантов с помощью:
Введите QUIT и нажмите Enter, чтобы выйти из MySQL.