PHP Slim framwork 구축(에러 해결)

2 분 소요

1. PHP Slim framwork 구축(에러 해결)

PHP 기반의 restful api 구축을 위해 찾아보니 PHP 프레임워크 중 slim framework가 있었다.

(1) composer

PHP 패키지간의 의존성을 관리해주는 유틸로 composer를 설치

참고 : https://opentutorials.org/course/62/5221

(2)Apache2 설정

  • 해당 프로젝트 php , 포트 설정을 한다.

(3) Slim framework 로 프로젝트 설치 후 접속

  • 해당 프로젝트의 php 파일 경로와 포트를 82 로 설정하고 접속

2. 에러…

Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 7.3.0”.

2-(1) 해결시도 : Php 8.0 -> php 7.2로 버전 낮춰보았는데

sudo apt-get install php7.2-fpm

sudo mv /usr/bin/php /usr/bin/php8.0

sudo mv /usr/bin/php7.2 /usr/bin/php

-> 해결 x

2-(2) 해결시도 : Composer.json에서 버전 무시 설정

{
    "require": {
        "slim/slim": "4.*",
        "slim/psr7": "^1.3",
        "nyholm/psr7": "^1.4",
        "nyholm/psr7-server": "^1.0",
        "guzzlehttp/psr7": "^1.8",
        "http-interop/http-factory-guzzle": "^1.0",
        "laminas/laminas-diactoros": "^2.5",
        "php": "^7.2.0"
    },
    "autoload": {
        "psr-4": {" ": "public/"}

    },
    "config": {
        "platform-check": false
    }
}

-> 해결 x

2-(3) 해결시도 : composer.json에 정의된 라이브러리를 설치

아래와 같이 명령을 실행하면 composer.json의 내용을 읽어서 여기에 정의된 라이브러리를 설치한다.

php composer.phar install

could not open input file: composer.phar

이런 에러가… -> 해결 x

2-(4) 해결시도 : 해당 프로젝트에서 composer 다시 설치

curl -sS https://getcomposer.org/installer php

php composer.phar update

출처 : https://stackoverflow.com/questions/21670709/running-composer-returns-could-not-open-input-file-composer-phar

composer 설치, composer.json 패키지 다운 방법

출처 : https://opentutorials.org/course/62/5221 -> 해결 x

2-(5) 해결시도 : Platfor 에러 내용 출력하기

platform_check.php https://php.watch/articles/composer-platform-check

<?php

// platform_check.php @generated by Composer

$issues = array();

if (!(PHP_VERSION_ID >= 70400 && PHP_VERSION_ID < 90000)) {
    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0" and "< 9.0.0". You are running ' . PHP_VERSION  .  '.';
}

$missingExtensions = array();
extension_loaded('pdo') || $missingExtensions[] = 'pdo';

if ($missingExtensions) {
    $issues[] = 'Your Composer dependencies require the following PHP extensions to be installed: ' . implode(', ', $missingExtensions);
}

if ($issues) {
    echo 'Composer detected issues in your platform:' . "\n\n" . implode("\n", $issues);
    exit(104);
}

출력내용

Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 7.4.0” and “< 9.0.0”. You are running 7.0.33-0ubuntu0.16.04.16.

기존 php 삭제를 하고 다시 설치하였다. Php 삭제명령어를 하여도 php 버전이 나온다… 그냥 무시

php 7.0 또는 php 7.1 등 모든 php7 버전을 제거 방법

sudo apt-get purge php7.*

sudo apt-get autoclean

sudo apt-get autoremove

apt/apt-get autoclean → 쓸모없는 deb 패키지를 정리합니다. clean

apt/apt-get autoremove→ 시스템에서 더 이상 필요하지 않은 고아 패키지를 제거하지만 제거하지는 않습니다 –purge. 명령과 함께 옵션을 사용하십시오 .

PHP를 다시 설치

sudo add-apt-repository ppa:ondrej/php sudo apt-get update

php7.0 인 경우

sudo apt-get install php7.0

최신 7.1,7.2,7.3,7.4 버전으로 전환 하려면 먼저 이전 PHP 버전을 비활성화

sudo a2dismod php7.0

그런 다음 PHP 7.2를 활성화

sudo a2enmod php7.2

apache2 재시작

sudo service apache2 restart

태그:

카테고리:

업데이트:

댓글남기기