웹사이트 검색

CentOS 8에서 Nginx와 함께 Laravel PHP 프레임워크를 설치하는 방법


Laravel은 표현력이 풍부하고 우아하며 이해하기 쉬운 구문을 갖춘 잘 알려진 오픈 소스 최신 PHP 기반 웹 프레임워크로, 크고 강력한 웹 애플리케이션을 쉽게 구축할 수 있습니다.

주요 기능에는 간단하고 빠른 라우팅 엔진, 강력한 종속성 주입 컨테이너, 세션 및 캐시 저장을 위한 다중 백엔드, 표현력이 풍부하고 직관적인 데이터베이스 ORM(객체 관계형 매핑), 강력한 백그라운드 작업 처리 및 실시간 이벤트 브로드캐스팅이 포함됩니다.

또한 종속성 관리를 위한 PHP 패키지 관리자인 Composer와 웹 애플리케이션 구축 및 관리를 위한 명령줄 인터페이스인 Artisan과 같은 도구를 사용합니다.

이 문서에서는 CentOS 8 Linux 배포판에 최신 버전의 Laravel PHP 웹 프레임워크를 설치하는 방법을 설명합니다.

서버 요구 사항

Laravel 프레임워크에는 다음 요구사항이 있습니다.

  • PHP >= 7.2.5 PHP 확장 OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype 및 JSON이 포함되어 있습니다.
  • Composer – 종속성을 설치하고 관리합니다.

1단계: CentOS 8에 LEMP 스택 설치

1. 시작하려면 시스템 소프트웨어 패키지를 업데이트하고 LEMP 스택(Linux, Nginx, MariaDB/MySQLPHP) 다음 dnf 명령을 사용합니다.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. LEMP 설치가 완료되면 PHP-PFM, Nginx을 시작해야 합니다. >MariaDB 서비스는 다음 systemctl 명령을 사용합니다.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. 다음으로, 표시된 보안 스크립트를 사용하여 MariaDB 데이터베이스 엔진을 보호하고 강화해야 합니다.

mysql_secure_installation

서버 설치를 보호하려면 다음 질문에 대답하십시오.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password 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

4. 방화벽 서비스가 실행 중인 경우 방화벽에서 HTTPHTTPS 서비스를 열어야 합니다. Nginx 웹 서버에 대한 클라이언트 요청을 활성화합니다.

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

5. 마지막으로 시스템의 IP 주소에서 브라우저를 사용하여 LEMP 스택이 실행되고 있는지 확인할 수 있습니다.

http://server-IP

2단계: PHP-FPM 및 Nginx 구성 및 보안

6. Nginx 웹 서버의 요청을 처리하기 위해 PHP-FPM은 Unix 소켓 또는 TCP 소켓을 수신할 수 있으며 이는 /etc/php-fpm.d/www.conf 구성 파일의 listen 매개변수.

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

기본적으로 다음 스크린샷과 같이 Unix 소켓을 수신하도록 구성되어 있습니다. 여기에 있는 값은 나중에 Nginx 서버 블록 파일에 지정됩니다.

7. Unix 소켓을 사용하는 경우 스크린샷에 표시된 대로 올바른 소유권과 권한도 설정해야 합니다. 다음 매개변수의 주석 처리를 해제하고 해당 값을 Nginx가 실행 중인 사용자 및 그룹과 일치하도록 사용자 및 그룹으로 설정합니다.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. 다음으로 /etc/php.ini 구성 파일에서 시스템 전체 시간대도 설정합니다.

vi /etc/php.ini

“;date.timezone ” 줄을 찾아 주석 처리를 제거한 다음 스크린샷에 표시된 대로 값을 설정합니다(해당 지역/대륙 및 국가에 적용되는 값 사용).

 
date.timezone = Africa/Kampala

9. Nginx가 다른 확장 프로그램을 사용하여 PHP 코드를 PHP-FPM에 실행하는 악의적인 사용자의 요청을 전달할 위험을 완화하려면 다음 매개변수의 주석 처리를 해제하고 값을 <로 설정하세요. 코드>0.

cgi.fix_pathinfo=1

10. 이전 항목과 관련하여 /etc/php-fpm.d/www.conf 파일에서 다음 매개변수의 주석 처리도 제거하세요. 자세한 설명은 댓글을 읽어보세요.

security.limit_extensions = .php .php3 .php4 .php5 .php7

3단계: Composer 및 Laravel PHP 프레임워크 설치

11. 다음으로, 다음 명령을 실행하여 Composer 패키지를 설치합니다. 첫 번째 명령은 설치 프로그램을 다운로드한 다음 PHP를 사용하여 실행합니다.

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

12. 이제 Composer가 설치되었으므로 이를 사용하여 다음과 같이 Laravel 파일과 종속성을 설치합니다. mysite.com을 Laravel 파일이 저장될 디렉터리 이름으로 바꾸세요. 절대 경로(또는 Nginx 구성 파일의 루트 경로)는 /var/www/html/mysite입니다. .com.

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

프로세스가 진행되는 동안 모든 것이 순조롭게 진행되면 애플리케이션이 성공적으로 설치되고 다음 스크린샷과 같이 키가 생성되어야 합니다.

13. 설치 과정에서 .env 환경 파일이 생성되고 필요한 애플리케이션도 생성되므로 이전처럼 수동으로 생성할 필요가 없습니다. 이를 확인하려면 ls 명령을 사용하여 laravel 루트 디렉터리의 긴 목록을 실행하세요.

ls -la mysite.com/

14. 다음으로 Nginx 웹에서 쓸 수 있도록 storagebootstrap/cache 디렉터리에 대한 올바른 소유권과 권한을 구성해야 합니다. 섬기는 사람.

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. 서버에서 SELinux를 활성화한 경우 저장소부트스트랩/캐시 의 보안 컨텍스트도 업데이트해야 합니다. 디렉토리.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

4단계: Laravel용 Nginx 서버 블록 구성

16. Nginx가 웹사이트나 애플리케이션 서비스를 시작하려면 .conf 파일 아래의 에 대한 서버 블록을 만들어야 합니다. >/etc/nginx/conf.d/ 디렉토리를 보여줍니다.

vi /etc/nginx/conf.d/mysite.com.conf

다음 구성을 복사하여 파일에 붙여넣습니다. 루트 및 fastcgi_pass 매개변수를 기록해 두세요.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. 파일을 저장하고 실행하여 Nginx 구성 구문이 올바른지 확인합니다.

nginx -t

18. 그런 다음 최근 변경 사항을 적용하려면 PHP-FPMNginx 서비스를 다시 시작하세요.

systemctl restart php-fpm
systemctl restart Nginx

5단계: 웹 브라우저에서 Laravel 웹사이트에 접근하기

19. 정규화된 도메인 이름(FQDN)이 아니고 등록되지 않은 mysite.com에서 Laravel 웹사이트에 액세스하려면(테스트 목적으로만 사용됩니다) , 로컬 컴퓨터의 /etc/hosts 파일을 사용하여 로컬 DNS를 생성합니다.

다음 명령을 실행하여 필요한 파일에 서버 IP 주소와 도메인을 추가합니다(설정에 따라 값을 바꿉니다).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. 그런 다음 로컬 컴퓨터에서 웹 브라우저를 열고 다음 주소를 사용하여 탐색합니다.

http://mysite.com

CentOS 8Laravel을 성공적으로 배포했습니다. 이제 Laravel을 사용하여 웹사이트나 웹 애플리케이션 개발을 시작할 수 있습니다. 자세한 내용은 Laravel 시작하기 가이드를 참조하세요.