웹사이트 검색

Ubuntu에 Yii PHP 프레임워크를 설치하는 방법


Yii(Yee 또는 [ji:]로 발음)는 무료 오픈 소스이며 빠르고 고성능이며 안전하고 유연하면서도 실용적입니다. PHP를 사용하여 모든 종류의 웹 애플리케이션을 개발하기 위한 효율적인 일반 웹 프로그래밍 프레임워크입니다.

이 문서에서는 최신 PHP 웹 애플리케이션 개발을 시작하기 위해 Ubuntu LTS(장기 지원) 릴리스에 최신 버전의 Yii 프레임워크를 설치하는 방법을 알아봅니다.

플랫폼 지원

Yii는 다음 Ubuntu LTS(장기 지원) 릴리스를 보유하고 있습니다.

  • 우분투 20.04 LTS(“포컬”)
  • 우분투 18.04 LTS(“바이오닉”)
  • 우분투 16.04 LTS(“Xenial”)

요구사항

  • Ubuntu 서버의 실행 중인 인스턴스입니다.
  • PHP 5.4.0 이상의 LEMP 스택.
  • Composer – PHP용 애플리케이션 수준 패키지 관리자입니다.

이 페이지에서

  • Ubuntu에서 Composer를 통해 Yii Framework 설치
  • PHP 개발 서버를 사용하여 Yii 실행
  • NGINX HTTP 서버를 사용하여 프로덕션 환경에서 Yii 프로젝트 실행
  • Let's Encrypt를 사용하여 Yii 애플리케이션에서 HTTPS를 활성화합니다.

Yii를 설치하는 방법에는 Composer 패키지 관리자를 사용하거나 아카이브 파일에서 설치하는 두 가지 방법이 있습니다. 전자를 사용하면 단일 명령으로 새 확장 프로그램을 설치하거나 Yii를 업데이트할 수 있으므로 권장되는 방법입니다.

Ubuntu에서 Composer를 통해 Yii Framework 설치

Composer가 설치되어 있지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다. 그러면 나중에 Yii가 설치되고 해당 종속성이 관리됩니다.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Composer를 설치한 후 웹 애플리케이션이나 웹사이트 파일을 저장할 /var/www/html/ 디렉토리로 이동한 다음 Yii 패키지를 설치합니다. >composer(testproject를 웹 애플리케이션 디렉토리 이름으로 교체).

cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic testproject

PHP 개발 서버를 사용하여 Yii 실행

이제 개발을 위해 Yii 프레임워크를 사용할 준비가 되었습니다. PHP 개발 서버를 실행하려면 testprojects 디렉터리(디렉터리 이름은 이전 명령에서 지정한 내용에 따라 달라야 함)로 이동한 다음 개발 서버를 시작합니다. 기본적으로 포트 8080에서 실행되어야 합니다.

cd /var/www/html/testproject/
php yii serve

다른 포트(예: 포트 5000)에서 개발 서버를 실행하려면 표시된 대로 --port 플래그를 사용하세요.

php yii serve --port=5000

그런 다음 웹 브라우저를 열고 다음 주소를 사용하여 탐색하십시오.

http://SERVER_IP:8080
OR
http://SERVER_IP:5000

NGINX HTTP 서버를 사용하여 프로덕션 환경에서 Yii 프로젝트 실행

프로덕션 환경에서 Yii 애플리케이션을 배포하고 액세스하려면 NGINX, Apache/HTTPD 또는 기타 지원되는 웹 서버 소프트웨어와 같은 HTTP 서버가 필요합니다.

포트를 입력하지 않고 Yii 애플리케이션에 액세스하려면 도메인이 Yii 프레임워크 애플리케이션 서버를 가리키도록 필수 DNS A 레코드를 생성해야 합니다. .

이 가이드에서는 NGINX를 사용하여 Yii 애플리케이션을 배포하는 방법을 보여줍니다. 따라서 NGINX가 이를 제공할 수 있도록 애플리케이션의 /etc/nginx/sites-available/ 디렉토리 아래에 가상 호스트 또는 서버 블록 구성 파일을 생성해야 합니다.

sudo vim /etc/nginx/sites-available/testproject.me.conf

다음 구성을 복사하여 붙여넣습니다(testprojects.mewww.testprojects.me를 도메인 이름으로 바꿈). 또한 NGINXFastCGI 요청을 PHP-FPM에 전달하는 방법을 지정합니다. 이 예에서는 UNIX 소켓(/ 실행/php/php7.4-fpm.sock):

server {
    set $host_path "/var/www/html/testproject";
    #access_log  /www/testproject/log/access.log  main;

    server_name  testprojects.me www.testprojects.me;
    root   $host_path/web;
    set $yii_bootstrap "index.php";

    charset utf-8;

    location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }

    #avoid processing of calls to unexisting static files by yii
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }

    # pass the PHP scripts to FastCGI server listening on UNIX socket 
    location ~ \.php {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;

        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }
       fastcgi_pass   unix:/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

       #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}

파일을 저장하고 닫습니다.

그런 다음 NGINX 구성 구문이 올바른지 확인하고, 괜찮으면 다음과 같이 새 애플리케이션을 활성화합니다.

sudo nginx -t
sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf

그런 다음 NGINX 서비스를 다시 시작하여 새로운 변경 사항을 적용합니다.

sudo systemctl restart nginx

웹 브라우저로 돌아가서 도메인 이름으로 탐색하세요.

http://testprojects.me
OR
http://www.testprojects.me

Let's Encrypt를 사용하여 Yii 애플리케이션에서 HTTPS를 활성화합니다.

마지막으로 웹사이트에서 HTTPS를 활성화해야 합니다. 무료 Let's Encrypt SSL/TLS 인증서(모든 최신 웹 브라우저에서 자동화되고 인식됨)를 사용하거나 상업용 CA에서 인증서를 얻을 수 있습니다.

Let’s Encrypt 인증서를 사용하기로 결정한 경우 certbot 도구를 사용하여 자동으로 설치 및 구성할 수 있습니다. certbot을 설치하려면 snapd를 설치해야 합니다.

sudo snap install --classic certbot

그런 다음 certbot을 사용하여 NGINX 웹 서버에 사용할 무료 SSL/TLS 인증서를 얻고 설치/구성합니다(갱신을 위해 유효한 이메일을 제공하고 프롬프트에 따라 설치를 완료합니다).

sudo certbot --nginx

이제 웹 브라우저로 다시 한 번 이동하여 Yii 애플리케이션이 현재 HTTPS에서 실행되고 있는지 확인하세요(HTTP는 자동으로 으로 리디렉션되어야 함을 기억하세요). >HTTPS).

http://testprojects.me
OR
http://www.testprojects.me

애플리케이션을 데이터베이스에 연결하는 것과 같은 자세한 내용은 공식 Yii 프로젝트 웹사이트에서 Yii 프레임워크 문서를 참조하세요. 한번 시도해 보시고 Yii에 대한 생각을 공유하시거나 아래 피드백 양식을 통해 질문을 남겨주세요.