웹사이트 검색

CentOS 7에서 Nginx와 함께 MediaWiki를 설치하는 방법


이 페이지에서

  1. 우리가 할 일\n
  2. 전제 조건
  3. 1단계 - CentOS 7에 Nginx 설치
  4. 2단계 - PHP-FPM 설치 및 구성
  5. 3단계 - MariaDB 데이터베이스 설치 및 구성
  6. 4단계 - MediaWiki 다운로드 및 구성
  7. 5단계 - CentOS 7에서 SSL Letsencrypt 생성
  8. 6단계 - MediaWiki용 Nginx 가상 호스트 구성\n
  9. 7단계 - MediaWiki 웹 기반 설치
    1. 언어 구성
    2. 환경 점검\n
    3. 데이터베이스 구성
    4. 데이터베이스 설정
    5. 새 관리 사용자 만들기
    6. MediaWiki 추가 구성
    7. 미디어위키 설치

    MediaWiki는 원래 Wikipedia에서 사용하기 위해 개발된 인기 있는 Wiki 소프트웨어입니다. PHP 프로그래밍 언어로 작성된 무료 오픈 소스 위키 소프트웨어입니다. 2002년 Magnus Manske에 의해 활용된 이 도구는 현재 버전 1.30입니다. MediaWiki는 Nginx, Intel, Novell 등을 포함한 많은 대기업에서 사용되었습니다.

    이 튜토리얼에서는 CentOS 7에서 Nginx 웹 서버와 함께 MediaWiki를 단계별로 설치하는 방법에 대해 설명합니다. 또한 새로운 무료 SSL Letsencrypt를 생성하고 구성하는 것을 포함하여 MediaWiki 설치를 위해 LEMP 스택을 설치하고 구성하는 방법을 안내합니다. 미디어위키 보안.

    우리가 할 일

    1. CentOS 7에 Nginx 설치
    2. PHP-FPM 설치 및 구성
    3. MariaDB 데이터베이스 설치 및 구성
    4. MediaWiki 다운로드 및 구성
    5. CentOS 7에서 새 SSL Letsencrypt 생성
    6. MediaWiki 설치를 위한 Nginx 가상 호스트 구성\n
    7. MediaWiki 웹 기반 설치
    8. MediaWiki 기본 스킨 구성

    전제 조건

    • CentOS 7 서버
    • 루트 권한\n

    1단계 - CentOS 7에 Nginx 설치

    이 튜토리얼에서는 미디어위키 설치를 위해 Nginx 웹 서버를 사용할 것입니다. CentOS 7에는 Nginx 패키지가 없습니다. 따라서 타사 EPEL(Extra Packages for Enterprise Linux) 리포지토리에서 설치해야 합니다.

    아래의 yum 명령어를 사용하여 모든 패키지를 업데이트하고 CentOS 7 시스템에 EPEL 저장소를 설치합니다.

    yum -y update
    yum -y install epel-release

    다음으로 Nginx 웹 서버를 설치합니다.

    yum -y install nginx

    Nginx 설치가 완료되면 서버를 시작하고 시스템 부팅 시 자동으로 실행되도록 설정합니다.

    systemctl start nginx
    systemctl enable nginx

    그래서 Nginx 웹 서버가 CentOS 7 서버에 설치되었습니다. netstat 명령어를 사용하여 네트워크 통계를 확인하면 Nginx 서비스에서 사용 중인 HTTP 포트를 가져와야 합니다.

    netstat -plntu

    2단계 - PHP-FPM 설치 및 구성

    이 자습서에서는 PHP 7.0을 사용합니다. 이 단계에서는 PHP 7.0(확장 포함)을 설치하고 MediaWiki 설치를 위해 PHP-FPM을 구성합니다.

    타사 저장소 webtatic의 PHP 7.0 패키지를 사용할 것입니다. 아래 명령을 사용하여 PHP 7.0 설치를 위한 새로운 webtatic 리포지토리를 추가합니다.

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    이제 아래의 yum 명령을 사용하여 필요한 모든 확장과 함께 PHP 7.0을 설치할 수 있습니다.

    yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu

    이로써 CentOS 7에 PHP 7.0 설치가 완료되었습니다.

    다음으로 PHP-FPM 서비스를 구성합니다. CGI 경로 정보를 구성하기 위해 php.ini 파일을 편집하고, PHP-FPM 서비스를 구성하기 위해 www.conf 구성을 편집합니다. 그런 다음 sock 파일(nginx 사용자 및 그룹 포함)에서 실행되도록 PHP-FPM을 구성합니다.

    vim 편집기를 사용하여 php.ini 파일을 수정합니다.

    vim /etc/php.ini

    아래 줄의 주석을 제거하고 값을 0으로 변경합니다.

    cgi.fix_pathinfo=0

    변경 사항을 저장하고 편집기를 종료합니다.

    이제 PHP-FPM 구성 파일 www.conf를 편집합니다.

    vim /etc/php-fpm.d/www.conf

    사용자 및 그룹 줄 값을 nginx로 변경합니다.

    user = nginx
    group = nginx

    이제 아래와 같이 php-fpm.sock 파일을 들어 변수의 값을 변경합니다.

    listen = /run/php-fpm/php-fpm.sock

    sock-file의 권한과 sock 파일 디렉토리의 소유자를 구성해야 합니다. listen.owner 및 listen.group 줄의 주석을 해제하고 해당 값을 nginx로 변경합니다.

    listen.owner = nginx
    listen.group =nginx
    listen.mode = 0660

    추가 구성을 위해 아래 행의 주석을 제거하십시오.

    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp

    그게 다야. 저장 및 종료.

    다음으로 session-path 구성을 위한 새 디렉터리를 만듭니다.

    세션 디렉토리를 생성하려면 아래 명령을 실행하십시오.

    mkdir -p /var/lib/php/session/
    chown -R nginx:nginx /var/lib/php/session/

    완료되면 PHP-FPM 서비스를 시작하고 시스템 부팅 시 자동으로 실행되도록 설정합니다.

    systemctl start php-fpm
    systemctl enable php-fpm

    아래 netstat 명령을 사용하여 PHP-FPM을 확인하십시오.

    netstat -pl | grep php

    그리고 결과에 php-fpm.sock 파일이 있는지 확인하십시오.

    3단계 - MariaDB 데이터베이스 설치 및 구성

    미디어위키는 MySQL/MariaDB 및 SQLite 데이터베이스를 지원합니다. 그러나 이 자습서에서는 MariaDB 데이터베이스를 사용합니다.

    먼저 아래 yum 명령을 사용하여 MariaDB를 설치합니다.

    yum -y install mariadb mariadb-server

    설치가 완료되면 mariadb를 시작하고 시스템 부팅 시 실행되도록 설정합니다.

    systemctl start mariadb
    systemctl enable mariadb

    이제 MariaDB 데이터베이스의 루트 비밀번호를 구성해야 합니다. 다음 명령을 실행하여 MariaDB 루트 암호를 구성합니다.

    mysql_secure_installation

    Y를 입력하고 Enter 키를 누릅니다.

    Set root password? [Y/n] Y
    TYPE ROOT PASSWORD HERE

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

    MariaDB가 CentOS 7 시스템에 설치되었으며 루트 사용자의 비밀번호가 구성되었습니다.

    다음으로 MediaWiki용 새 데이터베이스를 생성합니다. 특히, 새로운 사용자/소유자 mediawiki 및 암호 mypassword를 사용하여 mediawikidb라는 새 데이터베이스를 생성합니다.

    mysql 명령을 사용하여 mysql 셸에 연결합니다.

    mysql -u root -p
    TYPE YOUR ROOT PASSWORD

    이제 MediaWiki용 새 데이터베이스를 생성하기 위해 다음 mysql 쿼리를 실행합니다.

    create database mediawikidb;
    grant all privileges on mediawikidb.* to 'localhost' identified by 'mypassword';
    flush privileges;
    exit;

    MediaWiki 설치를 위한 새 데이터베이스 및 사용자가 생성되었습니다.

    4단계 - MediaWiki 다운로드 및 구성

    이 튜토리얼에서는 MediaWiki의 최신 버전(1.30)을 사용하고 저장소에서 모든 MediaWiki 소스 코드를 다운로드합니다. 따라서 시스템에 설치된 git 및 일부 패키지가 필요합니다.

    아래의 yum 명령을 사용하여 git 및 기타 패키지를 설치합니다.

    yum -y install git zip unzip composer

    설치가 완료되면 새 디렉터리 /var/www/mediawiki를 만들고 미디어위키 소스 코드를 해당 디렉터리에 복제합니다.

    mkdir -p /var/www/mediawiki
    git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki

    다음으로 /var/www/mediawiki 디렉토리로 이동하여 아래와 같이 작성기 명령을 사용하여 MediaWiki 설치에 필요한 일부 PHP 종속성을 설치합니다.

    cd /var/www/mediawiki
    composer install --no-dev

    이제 mediawiki 디렉토리의 소유권 권한을 nginx(사용자 및 그룹 모두)로 변경합니다.

    chown -R nginx:nginx /var/www/mediawiki

    MediaWiki 소스는 /var/www/mediawiki 디렉토리에 다운로드되었으며 모든 종속 항목이 설치되었습니다.

    5단계 - CentOS 7에서 SSL Letsencrypt 생성

    보안상의 이유로 MediaWiki는 HTTPS 연결에서만 실행됩니다. HTTP에 대한 모든 요청은 Nginx 웹 서버에 의해 HTTPS로 리디렉션됩니다.

    HTTPS 보안 연결에서 MediaWiki를 실행하려면 SSL 인증서가 필요합니다. 따라서 Letsencrypt의 무료 SSL 인증서를 사용할 것입니다.

    설치하면 아래의 yum 명령을 사용하여 명령줄 도구를 암호화할 수 있습니다.

    yum -y install letsencrypt

    설치가 완료되면 systemctl 명령어를 사용하여 Nginx 서비스를 중지합니다.

    systemctl stop nginx

    다음으로 letsencrypt 명령을 사용하여 새 SSL 인증서를 생성합니다. 하지만 그 전에 HTTP 및 HTTPS 서비스가 Firewalld에 추가되었는지 확인하세요.

    Firewalld에 새 HTTP 및 HTTPS 서비스를 추가하는 방법은 다음과 같습니다.

    firewall-cmd --add-service=http --permanent
    firewall-cmd --add-service=https --permanent
    firewall-cmd --reload

    새로운 무료 SSL을 생성하면 아래 letsencrypt 명령을 사용하여 인증서를 암호화할 수 있습니다.

    letsencrypt certonly

    이 명령어는 ACME 인증에 대해 묻습니다. 임시 웹 서버를 회전하려면 1번을 선택하십시오.

    다음으로 갱신 알림을 위한 이메일 주소를 입력한 다음 A를 입력하여 Letsencrypt 서비스 약관(TOS)에 동의하고 마지막으로 위키 도메인 이름을 입력합니다.

    모든 작업이 완료되면 아래 표시된 것과 유사한 결과를 얻을 수 있습니다.

    Letsencrypt의 새 SSL 인증서가 생성되어 /etc/letsencrypt/live 디렉토리에 저장되었습니다.

    6단계 - MediaWiki용 Nginx 가상 호스트 구성

    이 단계에서는 MediaWiki를 위한 새로운 Nginx 가상 호스트 구성을 생성합니다.

    /etc/nginx 디렉터리로 이동하고 vim 편집기를 사용하여 새 구성 파일 mediawiki.conf를 만듭니다.

    cd /etc/nginx/
    vim conf.d/mediawiki.conf

    아래에 구성을 붙여넣습니다.

    # HTTP Request will be Redirected to the HTTPS
    server {
        listen 80;
        listen [::]:80;
        server_name wiki.hakase-labs.co;
        return 301 https://$host$request_uri;
    }

    # HTTPS Configuration
    server {

        listen 443 ssl;
        listen [::]:443;
       
        server_name wiki.hakase-labs.co;
        root /var/www/mediawiki;

        index index.php;
        autoindex off;

        # SSL Certificate Configuration
        ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;

        client_max_body_size 5m;
        client_body_timeout 60;

        location / {
            try_files $uri $uri/ @rewrite;
        }

        location @rewrite {
            rewrite ^/(.*)$ /index.php?title=$1&$args;
        }

        location ^~ /maintenance/ {
            return 403;
        }

        # PHP-FPM Configuration Nginx
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            try_files $uri /index.php;
            expires max;
            log_not_found off;
        }

        location = /_.gif {
            expires max;
            empty_gif;
        }

        location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
            deny all;
        }

        location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
            internal;
        }

        # Security for 'image' directory
        location ~* ^/images/.*.(html|htm|shtml|php)$ {
            types { }
            default_type text/plain;
        }

        # Security for 'image' directory
        location ^~ /images/ {
            try_files $uri /index.php;
        }

    }

    그게 다야. 변경 사항을 저장하고 편집기를 종료합니다.

    메모:

    • 도메인 이름을 자신의 도메인으로 변경합니다.\n
    • SSL 인증서 파일의 경로 변경

    이제 Nginx 구성을 테스트하고 오류가 없는지 확인한 다음 Nginx 서비스를 다시 시작하십시오.

    nginx -t
    systemctl restart nginx

    MediaWiki용 Nginx 가상 호스트 구성이 추가되었으며 웹 브라우저에서 MediaWiki를 설치할 준비가 되었습니다.

    7단계 - MediaWiki 웹 기반 설치

    웹 브라우저를 열고 MediaWiki URL을 입력하십시오.

    http://wiki.hakase-labs.co/

    HTTPS 연결로 리디렉션됩니다. 웹 페이지에서 Wiki 설정 링크를 클릭합니다.

    언어 구성

    English en language를 선택하고 계속을 클릭합니다.

    환경 확인

    모든 서버 구성이 환경 검사를 통과했는지 확인하십시오.

    그런 다음 계속을 클릭합니다.

    데이터베이스 구성

    데이터베이스 이름을 mediawikidb로 입력하고 사용자 이름 mediawiki를 비밀번호 mypassword로 입력합니다.

    이제 계속을 클릭하십시오.

    데이터베이스 설정

    기본값으로 두고 계속을 클릭합니다.

    새 관리 사용자 만들기

    자신의 관리 사용자, 이메일, 암호를 입력한 다음 계속을 클릭합니다.

    미디어위키 추가 구성

    이제 아래와 같이 MediaWiki 추가 구성에 대한 페이지로 이동합니다.

    모든 필드를 기본값으로 두고 계속을 클릭합니다.

    미디어위키 설치

    미디어위키를 설치하려면 계속을 클릭하세요.

    그리고 아래 페이지로 이동합니다.

    계속을 다시 클릭합니다.

    그리고 MediaWiki 설치가 완료되었습니다. 새 파일 LocalSettings.php를 다운로드하라는 메시지가 표시됩니다. 해당 파일을 다운로드합니다.

    다음으로 새로 다운로드한 LocalSetting.php 파일을 서버의 MediaWiki 디렉토리 /var/www/mediawiki에 업로드해야 합니다. 또한 파일의 소유권 권한을 www-data(사용자 및 그룹 모두)로 변경하는 것을 잊지 마십시오.

    scp LocalSettings.php :/var/www/mediawiki/
    chown -R www-data:www-data /var/www/mediawiki

    웹 브라우저 MediaWiki 설치 페이지로 돌아가서 위키 입력 링크를 클릭합니다. MediaWiki가 CentOS 7 서버에 Nginx 웹 서버와 함께 설치된 것을 볼 수 있습니다.

    8단계 - MediaWiki 기본 스킨 다운로드 및 구성

    이 단계에서 MediaWiki 설치가 완료되었습니다. 이 단계에서는 MediaWiki 사이트의 기본 스킨/테마를 구성합니다.

    /var/www/mediawiki/skins 디렉토리로 이동하여 Vector라는 기본 스킨을 해당 디렉토리에 복제합니다.

    cd /var/www/mediawiki/skins/
    sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector

    벡터 스킨 디렉토리의 소유자를 nginx 사용자 및 그룹으로 변경합니다.

    chown -R nginx:nginx /var/www/mediawiki/skins/

    이제 vim 편집기를 사용하여 LocalSettings.php 파일을 편집합니다.

    vim /var/www/mediawiki/LocalSettings.php

    파일 끝에 다음 PHP 코드를 붙여넣습니다.

    wfLoadSkin( 'Vector' );

    그게 다야. 저장 및 종료.

    웹 브라우저로 돌아와 MediaWiki 페이지를 새로 고칩니다. 아래와 같이 벡터 스킨이 포함된 MediaWiki가 표시되는지 확인하세요.

    CentOS 7에서 Nginx 웹 서버를 사용한 MediaWiki 설치 및 구성이 성공적으로 완료되었습니다.

    참조

    • https://www.mediawiki.org/wiki/