>백엔드 개발 >PHP 튜토리얼 >CentOS7에서 Laravel 배포 및 nginx를 통한 전달

CentOS7에서 Laravel 배포 및 nginx를 통한 전달

不言
不言원래의
2018-04-18 10:30:481996검색

이 글은 CentOS7에서 Laravel을 배포하고 nginx로 전달하는 내용을 소개합니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다

이 글은 개인 메모로만 사용됩니다.

환경 실행을 위한 PHP 구축
  • service php-fpm start를 실행하여 php-fpm 서비스를 시작하고 ps aux | grep php-fpm을 실행하여 php-fpm 서비스가 성공적으로 설치되었는지 확인합니다.

    • 두 번째 솔루션을 사용하여 소스를 설치하는 경우 다음 스크립트를 사용하세요.
yum install php72-php-cli.x86_64 php72-php-common.x86_64 php72-php-fpm.x86_64 php72-php-devel.x86_64 php72-php-gd.x86_64 php72-php-intl.x86_64 php72-php-mbstring.x86_64 php72-php-pecl-mcrypt.x86_64 php72-php-mysqlnd.x86_64 php72-php-opcache.x86_64 php72-php-pdo.x86_64 php72-php-pear.noarch php72-php-xml.x86_64 -y
  • php 소스가 있습니다
  • 일부 사용자가 이 두 파일에 액세스하지 못할 수도 있습니다. 이 경우 다음 방법(7.2)을 대신 사용할 수 있으므로 다음 튜토리얼 중 일부는
  • yum install epel-release -y
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
  • php 소스가 상대적으로 오래되었다는 점에 유의하세요.

  • php:
  • 결정 PHP의 yum 소스가 있는지 여부:
  • yum search php



  • 시스템 자체에는 yum php 소스가 포함되어 있는데 버전이 너무 오래되서 아직 5.4 입니다. 최신 소스를 설치하기 위해 새로운 yum 소스를 설치하려고 합니다. .
  • php의 yum 소스를 설치하세요:
  • rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  • 지금 yum 검색 php를 실행하면 더 많은 옵션을 찾을 수 있습니다

  • php 및 일부 관련 플러그인을 설치합니다(php-cli는 다음과 관련이 있습니다). shell, php -common은 공통 기능 관련, php-devel은 컴파일 관련, php-fpm은 서비스 관련, php-gd는 이미지 처리 관련, php-intl은 국제화 관련, php-mbstring은 관련 다중 문자열 처리, php-mcrypt 암호화 관련, php-mysqlnd는 mysql 관련, php-opcache는 성능 가속 관련, php-pdo는 데이터 객체 관련, php-pear는 PHP 애플리케이션 확장 관련, php-xml은 xml과 관련이 있습니다) (여기에 php7.1을 설치하세요) 첫 번째 방법을 사용하는 경우 첫 번째 스크립트를 사용하세요:
  • 냠 설치 php71w-cli.x86_64 php71w-common.x86_64 php71w-fpm.x86_64 php71w-devel.x86_64 php71w-gd.x86_64 php71w-mbstring.x86_64 php71w-mcrypt.x86_6 4 php71w-mysqlnd.x86_ 64 php71w-opcache .x86_64 php71w- pdo.x86_64 php71w-pear.noarch php71w-xml.x86_64 -y

  • php –version을 실행하여 php가 설치 및 구성되었는지 확인하세요. 스크린샷과 유사한 버전 정보가 나타나면 PHP 구성 설치가 완료된 것입니다.

  • php 버전

  • php-fpm 테스트
  • 주변 서비스 설치(nginx/composer/ git/mysql/redis)

  • 이러한 서비스는 기본적으로 기본 yum 소스에 설치 가능합니다. 작곡가가 없으면 cd /tmp
      curl –sShttps://getcomposer.org/installer를 실행하면 됩니다. | php
    • mv 작곡가.phar/usr/ local/bin/composer는 작곡가 설치를 완료할 수 있습니다



    • 서비스 코드 준비

  • PHP 서비스의 배포 및 업데이트를 용이하게 하기 위해 저자는 다음을 사용합니다. git을 사용하여 프로젝트를 다운로드하고 업데이트하세요.
    • 서비스를 배포할 폴더를 입력하고 git clone git address를 실행하세요(예: git clone root@www.temp.com:/git/php/markingphp)
    • php 코드 다운로드

    • 이때 프로젝트 권한은 루트입니다. 이런 식으로 php-fpm을 실행하면 PHP 프로젝트의 정적 리소스 nginx의 단순성과 관리를 위해 권한이 충분하지 않을 수 있습니다. 작성자는 프로젝트 권한을 nginx로 변경하고 php-fpm의 운영자 권한을 nginx로 변경했습니다.
    • php 및 프로젝트 관련 구성

  • nginx 오류 로그

    • 서비스 전달 실패

    • mysql 초기화 중
    • chown nginx:nginx -Rf 폴더 이름 실행( 예: chown nginx:nginx -Rf markerphp)
    • rpm -ql php17w-fpm.x86_64를 실행하여 php-fpm 설치 주소를 가져옵니다

    • php-fpm 설치 주소 가져오기
    • 다음을 시도해 보세요. Know/etc/php-fpm.d/www.conf는 구성 파일
    • php-fpm 구성 파일
    • 입니다.

    • 更改user = apache与 group = pache 为 user = nginx group = nginx 如果有必要可以更改127.0.0.1:9000为想要的端口

    • 为了服务器信息安全及项目大小控制,git项目未上传项目配置与项目引用库,所以需要重新新建项目配置文件并配置

    • 项目结构

    • 配置文件

    • 运行 composer update -vvv 下载库

    • 下载库失败

    • 如果库下载失败,可能是库被墙的原因,更改composer.json添加国内源再运行即可。


    “repositories”: { 
       “packagist”: { 
          “type”: “composer”, 
          “url”: “https://packagist.phpcomposer.com” 
       } 
    }
    • 国内源

    • 再运行 php artisan serve 可测试当前项目库是否完整,出现如下说明项目库下载完成。

    • 尝试启动项目测试

    • 初始化项目mysql表(php artisan migrate:refresh)

    • 配置nginx以转发80端口服务到php-fpm的服务,
         

      server { 
          listen 80; 
          location / { 
             root /php/markingphp/public/; 
             index index.php index.html index.jsp; 
          } 
          location ~ .php{  
               root html;  
               fastcgi_pass 127.0.0.1:9000;  
               fastcgi_index index.php;  
               fastcgi_param SCRIPT_FILENAME
    document_root$fastcgi_script_name; 
              include fastcgi_params; 
         } 
       }
    • 运行curl localhost 判断服务是否正常转发。

    • 运行 vim /var/log/nginx/error.log 检查nginx的log会发现log提示权限不足,可是我们已经把文件权限付给了nginx。

    • 最终得知是因为selinux的缘故,此时只需运行 setenforce 0 即可关闭selinux(临时),再修改配置文件 /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,这样下次重启selinux依然是关闭的。再运行curl localhost 会发现服务已经可以正常服务了。


    위 내용은 CentOS7에서 Laravel 배포 및 nginx를 통한 전달의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.