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

Как установить WordPress с HHVM и Nginx на CentOS 7


На этой странице

  1. Шаг 1. Настройте SELinux и добавьте репозиторий Epel
  2. Шаг 2. Установите Nginx
  3. Шаг 3. Установите и настройте MariaDB
  4. Шаг 4. Установите HHVM
  5. Шаг 5. Настройка HHVM
  6. Шаг 6. Настройка HHVM и Nginx
  7. Шаг 7. Создание виртуального хоста с HHVM и Nginx
  8. Шаг 8. Установите WordPress
  9. Справочник

HHVM (HipHop Virtual Machine) — это виртуальная машина с открытым исходным кодом для выполнения программ, написанных на языке PHP и Hack. HHVM был разработан Facebook, он предоставляет большинство функций текущей версии PHP 7. Чтобы запустить HHVM на своем сервере, вы можете использовать FastCGI для подключения HHVM к веб-серверу Nginx или Apache, или вы можете использовать встроенный в HHVM веб-сервер под названием \Proxygen\.

В этом уроке я покажу вам, как установить WordPress с HHVM и Nginx в качестве веб-сервера. Я буду использовать CentOS 7 в качестве операционной системы, поэтому необходимы базовые знания CentOS.

Предпосылка

  • CentOS 7 – 64 разрядная версия
  • Привилегии root

Шаг 1. Настройте SELinux и добавьте репозиторий Epel.

В этом руководстве мы будем использовать SELinux в принудительном режиме, поэтому нам нужны инструменты управления SELinux, установленные в системе. Мы будем использовать settools и setrobleshoot для управления политиками SELinux.

По умолчанию SELinux включен в CentOS 7, мы можем проверить это с помощью команды ниже:

sestatus
getenforce

Вы можете видеть, что SELinux включен в принудительном режиме.

Затем установите settools и установите средство устранения неполадок с помощью команды yum.

yum -y install setroubleshoot setools net-tools

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

yum -y install epel-release

Шаг 2 — Установите Nginx

Nginx или engine-x — это легкий веб-сервер с высокой производительностью и низким потреблением памяти. В CentOS мы можем использовать yum для установки пакетов Nginx. Убедитесь, что вы вошли в систему как пользователь root!

Установите nginx с помощью этой команды yum из репозитория CentOS:

yum -y install nginx

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

systemctl start nginx
systemctl enable nginx

Чтобы убедиться, что Nginx работает на нашем сервере, посетите IP-адрес сервера в своем браузере или используйте команду curl, как показано ниже, чтобы получить результаты:

curl 192.168.1.110

Я проверю это в своем веб-браузере здесь:

Шаг 3 — Установите и настройте MariaDB

MariaDB — это база данных с открытым исходным кодом, разработанная первоначальным разработчиком MySQL Монти Видениусом. Она была создана из базы данных MySQL, но остается совместимой с ней по своим основным функциям. На этом этапе мы установим MariaDB и настроим пароль root для базы данных MariaDB. Затем мы создадим новую базу данных и нового пользователя, которые необходимы для нашей установки WordPress.

Установите mariadb и mariadb-сервер:

yum -y install mariadb mariadb-server

Запустите MariaDB и добавьте службу, которая будет автоматически запускаться при загрузке:

systemctl start mariadb
systemctl enable mariadb

MariaDB запущена, и теперь нам нужно настроить пароль root для базы данных mariadb/mysql. Введите команду ниже, чтобы установить пароль root для MariaDB.

mysql_secure_installation

Введите новый пароль для пользователя root MariaDB по запросу.

Set root password? [Y/n] Y
New password:
Re-enter new password:

Remove anonymous users? [Y/n] Y
 ... Success!
Disallow root login remotely? [Y/n] Y
 ... Success!
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
 ... Success!

Корневой пароль MariaDB настроен. Теперь войдите в оболочку MariaDB/MySQL и создайте новую базу данных \wordpressdb\ и нового пользователя \wpuser\ с паролем \[email \ для нашей установки WordPress. Выберите безопасный пароль для вашей установки!

Войдите в оболочку MariaDB/MySQL:

mysql -u root -p
TYPE YOUR PASSWORD

Создайте новую базу данных и нового пользователя:

create database wordpressdb;
create user ';
flush privileges;
\q

MariaDB была установлена и создана новая база данных для нашей установки WordPress.

Шаг 4 — Установите HHVM

Для установки HHVM нам нужно установить множество зависимостей. Мы можем установить HHVM из исходного кода, загрузив исходный код с github или установив готовые пакеты, доступные в Интернете. В этом уроке я установлю HHVM из готовых пакетов.

Установите зависимости для установки HHVM

yum -y install cpp gcc-c++ cmake git psmisc {binutils,boost,jemalloc,numactl}-devel \
{ImageMagick,sqlite,tbb,bzip2,openldap,readline,elfutils-libelf,gmp,lz4,pcre}-devel \
lib{xslt,event,yaml,vpx,png,zip,icu,mcrypt,memcached,cap,dwarf}-devel \
{unixODBC,expat,mariadb}-devel lib{edit,curl,xml2,xslt}-devel \
glog-devel oniguruma-devel ocaml gperf enca libjpeg-turbo-devel openssl-devel \
mariadb mariadb-server libc-client make

Затем установите готовые пакеты HHVM с этого сайта с помощью команды rpm.

rpm -Uvh http://mirrors.linuxeye.com/hhvm-repo/7/x86_64/hhvm-3.15.2-1.el7.centos.x86_64.rpm
ln -s /usr/local/bin/hhvm /bin/hhvm

HHVM установлен, проверьте его с помощью следующей команды:

hhvm --version

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

sudo update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
php --version

Шаг 5 — Настройте HHVM

На этом этапе мы настроим HHVM. Мы будем запускать hhvm как службу systemd. Вместо того, чтобы запускать его на системном порту, мы будем запускать hhvm на файле сокета unix, который работает быстрее.

Перейдите в каталог systemd и создайте файл hhvm.service.

cd /etc/systemd/system/
vim hhvm.service

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

[Unit]
Description=HHVM HipHop Virtual Machine (FCGI)
After=network.target nginx.service mariadb.service

[Service]
ExecStart=/usr/local/bin/hhvm --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/hhvm.sock

[Install]
WantedBy=multi-user.target

Сохраните файл и выйдите из vim.

Затем перейдите в каталог hhvm и отредактируйте файл server.ini.

cd /etc/hhvm/
vim server.ini

Замените hhvm.server.port в строке 7 конфигурацией сокета unix ниже:

hhvm.server.file_socket = /var/run/hhvm/hhvm.sock

Сохраните файл и выйдите из редактора.

В сервисном файле hhvm мы определили, что hhvm работает под пользователем nginx, поэтому мы должны изменить владельца каталога файла сокета на пользователя nginx. Затем мы должны изменить контекст SELinux каталога hhvm, чтобы разрешить доступ к файлу сокета.

chown -R nginx:nginx /var/run/hhvm/
semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?"
restorecon -Rv /var/run/hhvm

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

Отредактируйте файл rc.local с помощью vim.

vim /etc/rc.local

Вставьте конфигурацию ниже в конец строки.

mkdir -p /var/run/hhvm/
chown -R nginx:nginx /var/run/hhvm/
semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?"
restorecon -Rv /var/run/hhvm

Сохраните файл и выйдите из vim. Сделайте файл исполняемым.

chmod +x /etc/rc.local

Перезагрузите службу systemd, запустите hhvm и добавьте ее для запуска во время загрузки.

systemctl daemon-reload
systemctl start hhvm
systemctl enable hhvm

Убедитесь, что нет ошибки. Убедитесь, что hhvm запущен в файле сокета с помощью команды netstat.

netstat -pl | grep hhvm

Шаг 6. Настройте HHVM и Nginx

На этом этапе мы настроим HHVM для работы с веб-сервером Nginx. Нам нужно создать новый файл конфигурации hhvm в каталоге Nginx.

Перейдите в каталог /etc/nginx и создайте файл hhvm.conf.

cd /etc/nginx/
vim hhvm.conf

Вставьте конфигурацию ниже:

location ~ \.(hh|php)$ {
    root /usr/share/nginx/html;
    fastcgi_keep_conn on;
    fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Сохранить и выйти.

Затем отредактируйте файл nginx.conf и добавьте строку включения конфигурации hhvm.

vim nginx.conf

Добавьте конфигурацию в строку 57 директивы сервера.

include /etc/nginx/hhvm.conf;

Сохранить и выйти.

Затем измените контекст SELinux файла конфигурации hhvm.

semanage fcontext -a -t httpd_config_t /etc/nginx/hhvm.conf
restorecon -v /etc/nginx/hhvm.conf

Проверьте конфигурацию Nginx и перезапустите службу.

nginx -t
systemctl restart nginx

Убедитесь, что нет ошибки.

Шаг 7. Создайте виртуальный хост с помощью HHVM и Nginx.

На этом шаге мы создадим новую конфигурацию виртуального хоста с помощью Nginx и hhvm. Я буду использовать доменное имя \natsume.co\ для этого примера. Пожалуйста, используйте свое собственное доменное имя и замените его в файлах конфигурации и установке WordPress везде, где оно появляется.

Перейдите в каталог nginx conf.d, где мы будем хранить файл виртуального хоста:

cd /etc/nginx/conf.d/

Создайте новую конфигурацию \natsume.conf\ с помощью vim:

vim natsume.conf

Вставьте конфигурацию виртуального хоста ниже:

server {
    listen       80;
    server_name  natsume.co;

    # note that these lines are originally from the "location /" block
    root   /var/www/hakase;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    location = /50x.html {
        root /var/www/hakase;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Сохранить и выйти.

В нашей конфигурации виртуального хоста мы определили корневой веб-каталог для доменного имени как каталог \/var/www/hakase\. Этот каталог еще не существует, поэтому мы должны создать его и изменить владельца на пользователя и группу nginx.

mkdir -p /var/www/hakase
chown -R nginx:nginx /var/www/hakase

Затем настройте контекст SELinux для файла и каталога.

semanage fcontext -a -t httpd_config_t "/etc/nginx/conf.d(/.*)?"
restorecon -Rv /etc/nginx/conf.d

Наконец, проверьте конфигурацию nginx, чтобы убедиться в отсутствии ошибок, а затем перезапустите nginx:

nginx -t
systemctl restart nginx

Шаг 8 — Установите WordPress

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

Перейдите в корневой веб-каталог \/var/www/hakase\ и загрузите WordPress с помощью команды wget:

cd /var/www/hakase
wget wordpress.org/latest.tar.gz

Извлеките \latest.tar.gz\ и переместите все файлы и каталоги WordPress в текущий каталог:

tar -xzvf latest.tar.gz
mv wordpress/* .

Затем скопируйте файл \wp-config-sample.php\ в \wp-config.php\ и отредактируйте его с помощью vim:

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

Установите DB_NAME на \wordpressdb\, DB_USER на \wpuser\ и DB_PASSWORD на \[email \.

define('DB_NAME', 'wordpressdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');

Сохранить и выйти.

Измените контекст SELinux для каталога WordPress.

semanage fcontext -a -t httpd_sys_content_t "/var/www/hakase(/.*)?"
restorecon -Rv /var/www/hakase

Теперь откройте веб-браузер и введите доменное имя вашего домена wordpress в адресную строку, мое имя \natsume.co\.

Выберите английский язык и нажмите Продолжить.

Заполните заголовок и описание сайта своей информацией и нажмите \Установить Wordpress\.

Дождитесь завершения установки. Вы увидите страницу ниже. Нажмите \Войти\, чтобы войти в панель администратора WordPress:

Введите имя администратора и пароль, затем снова нажмите \Войти\.

Теперь вы находитесь в административной панели WordPress.

Домашняя страница Вордпресс.

Wordpress с Nginx и HHVM на CentOS 7 успешно установлен.

Ссылка

  • https://www.nginx.com/blog/nginx-se-linux-changes-upgrading-rhel-6-6/