웹사이트 검색

Debian 8에서 Nginx 및 MariaDB와 함께 TYPO3 7을 설치하는 방법(Jessie)


이 페이지에서

  1. 서문
  2. APCu 설치
  3. TYPO3 설치
  4. 가상 머신 이미지
    1. SSH 로그인
    2. MariaDB 로그인

    이 튜토리얼에서는 Nginx가 웹 서버로 설치되고 MariaDB가 데이터베이스 서버로 설치된 Debian 8(Jessie) 서버에 TYPO3(버전 7) 웹사이트를 설치하고 구성하는 방법을 보여줍니다. Nginx는 이 설정에서 표준 웹 서버 "Apache"를 대체하는 빠른 웹 서버입니다. MariaDB는 MySQL보다 빠르고 원래 MySQL 발명가인 Monty Widenius가 개발한 MySQl 포크입니다.

    Typo3는 대규모 사용자 및 개발자 커뮤니티가 있는 PHP로 작성된 엔터프라이즈급 CMS 시스템입니다.

    서문

    문서 루트가 /var/www/www.example.com/web인 www.example.com이라는 가상 호스트에 TYPO3를 설치하고 싶습니다. 내 서버는 IP 주소 192.168.1.100을 사용합니다. 모든 구성 파일 및 명령에서 이 IP를 서버의 IP 주소로 바꾸십시오.

    튜토리얼에서는 이미 작동 중인 Nginx 설치가 있다고 가정합니다. 그렇지 않은 경우 먼저 이 가이드에 따라 Nginx, PHP 및 MariaDB를 설치하십시오.

    서버에 루트 사용자로 로그인하고 다음 단계를 진행합니다.

    APCU 설치

    APCu는 PHP 중간 코드를 캐싱하고 최적화하기 위한 무료 개방형 PHP opcode 캐셔로, 이전에 APC에서 제공했던 기능을 현재 통합된 PHP opcache에 추가합니다. eAccelerator 및 XCache와 같은 다른 PHP opcode 캐셔와 유사합니다. PHP 페이지 속도를 높이려면 이 중 하나를 설치하는 것이 좋습니다.

    APC는 다음과 같이 설치할 수 있습니다.

    apt-get install php5-apcu

    PHP-FPM을 FastCGI 데몬으로 사용하는 경우 다음과 같이 다시 시작하십시오.

    systemctl restart php5-fpm.service

    TYPO3 설치

    내 www.example.com 웹 사이트의 문서 루트는 /var/www/www.example.com/web입니다. 존재하지 않는 경우 다음과 같이 만듭니다.

    mkdir -p /var/www/www.example.com/web

    다음으로 https://typo3.org/download/에서 TYPO3 7.6.4를 .tar.gz 파일로 다운로드하고 문서 루트에 배치합니다.

    cd /tmp
    wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%207.6.4/typo3_src-7.6.4.tar.gz
    tar xfz typo3_src-7.6.4.tar.gz
    mv typo3_src-7.6.4 /var/www/www.example.com/
    cd /var/www/www.example.com/web
    ln -s ../typo3_src-7.6.4 typo3_src
    ln -s typo3_src/index.php
    ln -s typo3_src/typo3

    사용자 www-data 및 그룹 www-data로 실행 중인 nginx 데몬이 문서 루트 및 그 안의 TYPO3 파일을 쓸 수 있도록 만드는 것이 좋습니다.

    chown -R www-data:www-data /var/www/www.example.com/web

    TYPO3용 MySQL 데이터베이스(MySQL TYPO3 사용자 포함)를 아직 생성하지 않은 경우 다음과 같이 수행할 수 있습니다.

    mysqladmin --defaults-file=/etc/mysql/debian.cnf create typo3
    mysql --defaults-file=/etc/mysql/debian.cnf
    GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
    GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
    FLUSH PRIVILEGES;
    quit;

    다음으로 다음과 같이 /etc/nginx/sites-available/ 디렉토리에 www.example.com 가상 호스트에 대한 nginx 가상 호스트 구성을 만듭니다.

    nano /etc/nginx/sites-available/www.example.com.vhost
    server {
           listen 80;
           server_name www.example.com example.com;
           root /var/www/www.example.com/web;
    
           if ($http_host != "www.example.com") {
                     rewrite ^ http://www.example.com$request_uri permanent;
           }
    
           index index.php index.html;
    
           location = /favicon.ico {
                    log_not_found off;
                    access_log off;
           }
    
           location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
           }
    
           # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
           location ~ /\. {
                    deny all;
                    access_log off;
                    log_not_found off;
           }
    
            location ~ \.php$ {
                            try_files $uri =404;
                            include /etc/nginx/fastcgi_params;
                            fastcgi_pass unix:/var/run/php5-fpm.sock;
                            fastcgi_index index.php;
                            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                            fastcgi_intercept_errors on;
                            fastcgi_buffer_size 128k;
                            fastcgi_buffers 256 16k;
                            fastcgi_busy_buffers_size 256k;
                            fastcgi_temp_file_write_size 256k;
                            fastcgi_read_timeout 1200;
            }
    		
            client_max_body_size 100M;
    
            location ~ /\.(js|css)$ {
                    expires 604800s;
            }
    
            if (!-e $request_filename){
                    rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
            }
    
            location ~* ^/fileadmin/(.*/)?_recycler_/ {
                    deny all;
            }
            location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ {
                    deny all;
            }
            location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ {
                    deny all;
            }
            location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) {
            }
    
            location / {
                            if ($query_string ~ ".+") {
                                    return 405;
                            }
                            if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) {
                                    return 405;
                            } # pass POST requests to PHP
                            if ($request_method !~ ^(GET|HEAD)$ ) {
                                    return 405;
                            }
                            if ($http_pragma = 'no-cache') {
                                    return 405;
                            }
                            if ($http_cache_control = 'no-cache') {
                                    return 405;
                            }
                            error_page 405 = @nocache;
    
                            try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;
            }
    
            location @nocache {
                            try_files $uri $uri/ /index.php$is_args$args;
            }
    
    }

    이 구성에는 깨끗한 URL에 필요한 모든 것이 이미 포함되어 있습니다.

    다음으로 /etc/nginx/mime.types에 다음 줄이 있는지 확인합니다.

    nano /etc/nginx/mime.types
    [...]
            text/x-component                        htc;
    [...]

    가상 호스트를 활성화하기 위해 /etc/nginx/sites-enabled/ 디렉토리에서 심볼릭 링크를 생성합니다.

    cd /etc/nginx/sites-enabled/
    ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

    변경 사항을 적용하려면 nginx를 다시 로드하십시오.

    systemctl reload nginx.service

    그런 다음 TYPO3에 대한 php.ini 파일의 일부 값을 조정합니다. 이 서버에서 php-fpm을 사용하므로 파일은 /etc/php5/fpm/php.ini입니다. 편집기로 파일을 엽니다.

    nano /etc/php5/fpm/php.ini

    다음 설정을 조정합니다.

    [...]
    always_populate_raw_post_data=-1
    [...]
    max_execution_time=240
    [...]
    post_max_size = 20M
    [...]
    upload_max_filesize = 20M
    [...]
    max_input_vars=2000
    [...]

    다음을 사용하여 변경 사항을 적용합니다.

    systemctl reload php5-fpm.service

    이제 http://www.example.com/으로 이동하여 웹 기반 TYPO3 설치 프로그램을 시작할 수 있습니다. 설치를 계속할 수 있도록 먼저 문서 루트에 FIRST_INSTALL 파일을 생성하라는 메시지가 표시됩니다.

    cd /var/www/www.example.com/web/
    touch FIRST_INSTALL
    chown www-data:www-data FIRST_INSTALL

    이제 페이지를 새로고침하세요. 설치 프로그램은 모든 전제 조건이 충족되었는지 확인합니다. 다른 경고가 있으면 지금 수정해야 합니다.

    계속을 클릭합니다.

    다음으로 데이터베이스 세부 정보(사용자: typo3_admin, 암호: typo3 데이터베이스를 생성했을 때의 typo3_admin_password)를 입력하고 계속을 클릭합니다.

    다음 페이지에서 빈 기존 데이터베이스 사용을 선택하고 드롭다운 메뉴에서 typo3을 선택합니다. 그런 다음 계속을 클릭합니다.

    다음으로 TYPO3 관리 사용자의 사용자 이름과 비밀번호 및 사이트 이름을 제공하십시오. 나중에 계속을 클릭합니다.

    이제 설치가 완료되었습니다. 완전히 비어 있는 시스템 대신 데모 웹사이트로 시작하려면 예, 배포 목록을 다운로드합니다 확인란을 선택된 상태로 둡니다(데모 데이터를 즉시 설치하지 않지만 백엔드에서 데모 웹사이트를 사용할 수 있습니다. 설치를 선택하십시오). 맞춤 웹 사이트를 구축할 수 있도록 대신 빈 페이지로 시작하기로 선택합니다. 그런 다음 백엔드 열기를 클릭합니다.

    관리 영역은 http://www.example.com/typo3/에서 찾을 수 있습니다. 사용자 이름 admin과 설치 중에 정의한 비밀번호로 로그인합니다.

    이제 Typo3 설정 중에 선택한 사용자 이름과 비밀번호로 로그인하십시오.

    Typo3가 성공적으로 설치되었습니다. 이제 Typo3 웹사이트 구축을 시작할 수 있습니다.

    가상 머신 이미지

    이 튜토리얼은 Howtoforge 구독자를 위해 OVA/OVF 형식의 가상 머신을 사용할 준비가 된 상태로 제공됩니다. VM 형식은 VMWare 및 Virtualbox 및 이 형식을 가져올 수 있는 기타 도구와 호환됩니다. 상단 오른쪽 메뉴에서 다운로드 링크를 찾을 수 있습니다. 파일 이름을 클릭하면 다운로드가 시작됩니다.

    VM의 로그인 세부 정보는 다음과 같습니다.

    Typo3 로그인

    사용자 이름: admin
    비밀번호: howtoforge

    SSH 로그인

    사용자 이름: root
    비밀번호: howtoforge

    마리아DB 로그인

    사용자 이름: root
    비밀번호: howtoforge

    최초 부팅 후 암호를 변경하십시오.

    VM은 정적 IP 192.168.1.100에 대해 구성되며 IP는 /etc/network/interfaces 파일에서 변경할 수 있습니다.

    연결

    • TYPO3: http://typo3.org/
    • nginx: http://nginx.org/
    • nginx 위키: http://wiki.nginx.org/
    • 데비안: http://www.debian.org/