웹사이트 검색

CentOS 7에서 HHVM 및 Nginx로 WordPress를 설치하는 방법


이 페이지에서

  1. 1단계 - SELinux 구성 및 Epel 저장소 추가
  2. 2단계 - Nginx 설치
  3. 3단계 - MariaDB 설치 및 구성
  4. 4단계 - HHVM 설치
  5. 5단계 - HHVM 구성
  6. 6단계 - HHVM 및 Nginx 구성
  7. 7단계 - HHVM 및 Nginx로 가상 호스트 생성\n
  8. 8단계 - WordPress 설치
  9. 참조

HHVM(HipHop Virtual Machine)은 PHP 및 Hack 언어로 작성된 프로그램을 실행하기 위한 오픈 소스 가상 머신입니다. HHVM은 Facebook에서 개발했으며 현재 PHP 7 버전의 대부분의 기능을 제공합니다. 서버에서 HHVM을 실행하려면 FastCGI를 사용하여 HHVM을 Nginx 또는 Apache 웹 서버와 연결하거나 "Proxygen"이라는 HHVM에 내장된 웹 서버를 사용할 수 있습니다.

이 튜토리얼에서는 HHVM 및 Nginx를 웹 서버로 사용하여 WordPress를 설치하는 방법을 보여줍니다. 저는 CentOS 7을 운영체제로 사용하기 때문에 CentOS에 대한 기본 지식이 필요합니다.

전제 조건

  • CentOS 7 - 64비트
  • 루트 권한\n

1단계 - SELinux 구성 및 Epel 저장소 추가

이 자습서에서는 강제 모드에서 SELinux를 사용하므로 시스템에 SELinux 관리 도구가 설치되어 있어야 합니다. setools 및 setrobleshoot를 사용하여 SELinux 정책을 관리합니다.

기본적으로 SELinux는 CentOS 7에서 활성화되어 있습니다. 아래 명령으로 확인할 수 있습니다.

sestatus
getenforce

강제 모드로 SELinux가 활성화된 것을 볼 수 있습니다.

다음으로 yum 명령으로 settools 및 setroubleshoot를 설치합니다.

yum -y install setroubleshoot setools net-tools

설치가 완료되면 EPEL 저장소를 설치할 수 있습니다.

yum -y install epel-release

2단계 - Nginx 설치

Nginx 또는 engine-x는 고성능 및 낮은 메모리 소비를 제공하는 경량 웹 서버입니다. CentOS에서는 yum을 사용하여 Nginx 패키지를 설치할 수 있습니다. 루트 사용자로 로그인했는지 확인하십시오!

CentOS 리포지토리에서 다음 yum 명령으로 nginx를 설치합니다.

yum -y install nginx

이제 Nginx를 시작하고 systemctl 명령을 사용하여 부팅 시 시작되도록 활성화합니다.

systemctl start nginx
systemctl enable nginx

Nginx가 서버에서 실행되고 있는지 확인하려면 브라우저에서 서버 IP 주소를 방문하거나 아래와 같이 curl 명령을 사용하여 결과를 얻으십시오.

curl 192.168.1.110

여기 내 웹 브라우저로 확인하겠습니다.

3단계 - MariaDB 설치 및 구성

MariaDB는 최초의 MySQL 개발자인 Monty Widenius가 개발한 오픈 소스 데이터베이스로, MySQL 데이터베이스에서 분기되었지만 주요 기능에서는 여전히 호환됩니다. 이 단계에서는 MariaDB를 설치하고 MariaDB 데이터베이스의 루트 암호를 구성합니다. 그런 다음 WordPress 설치에 필요한 새 데이터베이스와 새 사용자를 생성합니다.

mariadb 및 mariadb-server를 설치합니다.

yum -y install mariadb mariadb-server

MariaDB를 시작하고 부팅 시 자동으로 시작되도록 서비스를 추가합니다.

systemctl start mariadb
systemctl enable mariadb

MariaDB가 시작되었으므로 이제 mariadb/mysql 데이터베이스의 루트 암호를 구성해야 합니다. 아래 명령을 입력하여 MariaDB 루트 비밀번호를 설정하십시오.

mysql_secure_installation

요청 시 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 셸에 로그인하고 WordPress 설치를 위해 새 데이터베이스 "wordpressdb"와 비밀번호 "[email "를 사용하여 새 사용자 "wpuser"를 만듭니다. 설치를 위한 보안 암호를 선택하십시오!

MariaDB/MySQL 셸에 로그인합니다.

mysql -u root -p
TYPE YOUR PASSWORD

새 데이터베이스와 새 사용자를 만듭니다.

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

MariaDB가 설치되었고 WordPress 설치를 위한 새 데이터베이스가 생성되었습니다.

4단계 - HHVM 설치

HHVM 설치의 경우 많은 종속성을 설치해야 합니다. github에서 소스를 다운로드하거나 인터넷에서 사용할 수 있는 미리 빌드된 패키지를 설치하여 소스에서 HHVM을 설치할 수 있습니다. 이 튜토리얼에서는 미리 빌드된 패키지에서 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

그런 다음 rpm 명령을 사용하여 이 사이트에서 미리 빌드된 HHVM 패키지를 설치합니다.

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을 실행합니다. 시스템 포트에서 실행하는 대신 더 빠른 유닉스 소켓 파일에서 hhvm을 실행합니다.

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

7행의 hhvm.server.port를 아래의 유닉스 소켓 구성으로 교체하십시오.

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

파일을 저장하고 편집기를 종료하십시오.

hhvm 서비스 파일에서 hhvm이 nginx 사용자로 실행된다고 정의했으므로 소켓 파일 디렉토리의 소유자를 nginx 사용자로 변경해야 합니다. 그런 다음 hhvm 디렉토리의 SELinux 컨텍스트를 변경하여 소켓 파일에 대한 액세스를 허용해야 합니다.

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

서버 재부팅 후 소켓 파일에 대한 디렉토리가 없기 때문에 hhvm이 실행되지 않으므로 부팅 시 자동으로 생성해야 합니다.

vim으로 rc.local 파일을 편집합니다.

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

오류가 없는지 확인하십시오. netstat 명령을 사용하여 소켓 파일에서 hhvm이 실행 중인지 확인합니다.

netstat -pl | grep hhvm

6단계 - HHVM 및 Nginx 구성

이 단계에서는 Nginx 웹 서버와 함께 실행되도록 HHVM을 구성합니다. Nginx 디렉터리에 새 hhvm 구성 파일을 생성해야 합니다.

/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;

저장 및 종료.

그런 다음 hhvm 구성 파일의 SELinux 컨텍스트를 변경합니다.

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"를 사용하겠습니다. 자신의 도메인 이름을 사용하고 구성 파일과 워드프레스 설치에서 나타나는 위치에서 바꾸십시오.

가상 호스트 파일을 저장할 nginx conf.d 디렉토리로 이동합니다.

cd /etc/nginx/conf.d/

vim을 사용하여 새 구성 "natsume.conf"를 만듭니다.

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단계 - 워드프레스 설치

5단계에서 WordPress 설치를 위한 가상 호스트 구성을 생성했습니다. 이제 WordPress를 다운로드하고 3단계에서 생성한 데이터베이스와 사용자를 사용하여 데이터베이스 구성을 편집하기만 하면 됩니다.

웹 루트 디렉토리 "/var/www/hakase"로 이동하고 wget 명령으로 WordPress를 다운로드합니다.

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

저장 및 종료.

WordPress 디렉토리에 대한 SELinux 컨텍스트를 변경하십시오.

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

이제 웹 브라우저를 열고 워드프레스 도메인의 도메인 이름을 주소 표시줄에 입력하십시오. 내 이름은 "natsume.co"입니다.

영어를 선택하고 계속을 클릭하십시오.

귀하의 정보로 사이트 제목과 설명을 입력하고 "Wordpress 설치"를 클릭하십시오.

설치가 완료될 때까지 기다리십시오. 아래 페이지가 표시되면 "로그인"을 클릭하여 WordPress 관리 대시보드에 로그인합니다.

관리자 사용자와 암호를 입력한 다음 "로그인"을 다시 클릭하십시오.

이제 WordPress 관리 대시보드에 있습니다.

워드프레스 홈페이지.

CentOS 7에 Nginx 및 HHVM이 포함된 Wordpress가 성공적으로 설치되었습니다.

참조

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