Programming/$_머니 (PHP)

[Homestead] - Laravel vagrant php7.4-fpm.service not working

귀찮은 개발자 2024. 2. 21. 01:59

현황

PHP 버전을 잘못잡고 있음

ip: 192.168.56.56
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub

keys:
  - ~/.ssh/id_rsa
folders:
  - map: /home/kyungseo-park/code/project
    to: /home/vagrant/code

sites:
  - map: project.test
    to: /home/vagrant/code/public
    # php: "7.4" 가 아니라
    php: "8.1" # 으로 해야했다. Laravel 버전 올리면서 발생한 이슈....
    wildcard: "yes"

databases:
  - project

features:
  - mysql: true
  - mariadb: false
  - postgresql: false
  - ohmyzsh: false
  - webdriver: false

services:
  - enabled: [mysql]

name: project
hostname: project
~                        

Homestead 를 통해 Laravel 세팅하다 에러남

Project1: Synchronizing state of php7.4-fpm.service with SysV service script with /lib/systemd/systemd-sysv-install.

Project1: Executing: /lib/systemd/systemd-sysv-install enable php7.4-fpm

Project1: Created symlink /etc/systemd/system/multi-user.target.wants/php7.4-fpm.service → /lib/systemd/system/php7.4-fpm.service.

원인

php7.4-fpm.service 에서 장애가 발생한 것으로 보임
php7.4-fpm 이란 각 프로젝트별 웹 엔진에 PHP 버전을 이식할때 쓰이는 것

해결 방법 (1/2) - 라이브러리 버전 변경(실패)

laravel/homestead 최신 버전은 php8.1을 기본으로 사용하고 있다.
때문에 laravel/homestead 의 버전을 낮추어 7.4 ~ 8.0 버전대를 사용하게 하는 방법이 있다.

composer.json 파일에 laravel/homestead": "v13.1.1 의 버전을 수정한다.
https://packagist.org/packages/laravel/homestead 에 접속하여 나에게 필요한 PHP 버전의 lib로 변경했다.

...
    "require-dev": {
        "barryvdh/laravel-ide-helper": "^2.12",
        "facade/ignition": "^2.5",
        "fakerphp/faker": "^1.9.1",
        "laravel/homestead": "v13.1.1",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^5.10",
        "phpunit/phpunit": "^9.5.10"
    },
...

composer.json의 dev 패키지 수정 완료 후 재설치 진행

cd ~/프로젝트 폴더
composer install 
php vendor/bin/homestead make
vi Homestead.yaml 
 => 수정 후 저장
vagrant up 

해결 방법(2/2) - Homestead 버전 명시

가장 Best 방법은 Homestead.yaml 파일에 수정하는 것 또는 after.sh 를 수정하는 것이라 생각한다. 하지만 아직 해결 방법을 찾지 못했다. vagrant 실행 후 after.sh 가 돌아가는것 같으니, php 버전 바꿔버리면 되긴 할 듯.