55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨PHP 7+ 프로그래밍: 객체지향
나만의 프레임워크 작성 후, 운영환경 배포에 관한 문의 드려요
안녕하세요. 강의를 듣고 공부해보고 있는 개발자입니다.일단 너무 감사하게 잘 듣고 있습니다. 이런 강의는 잘 없어서 나쁜 구조(클래스 중복, 날로 해버리는 코드)로만 유지보수를 해오고 있었었고 개선하고 싶은 생각이 많이 들었거든요. PHP에 숨겨진(잘모르는) 기능도 알아가게 되서 무한 감사합니다.다름이 아니라 nginx 를 사용해서 쓰고 싶은데 잘 작동하지 않는 것 같아 질문드립니다. php -S localhost:8080 -t public 커맨드를 이용했을 땐, 크게 문제가 없는 상태입니다. 한 가지 예로 nginx에 연동하면 라우팅 쪽이 원하는대로 작동되지 않습니다.get '/call' 에서 resource/call.php 를 호출해서 echo 'call' 을 실행시키게 해두었는데get '/call' 시, /의 resource/index.php 내의 echo 'hello World' 가 출력이 되고 있어서 어떤 것을 확인하면 좋을지 몰라 질문드립니다. nginx에 설정에 문제로 생각이 들긴하는데, 잘 모르겠습니다.PHP는 8.1을 사용하고 nginx설정은 다음과 같습니다.server { listen 80; listen [::]:80; root /var/www/html/app/public; index index.php; server_name localhost; error_log /var/www/html/log/nginx/error.log; access_log /var/www/html/log/nginx/access.log; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } }
- 미해결PHP 7+ 프로그래밍: 객체지향
35강 미들웨어에서 인증 과정을 Auth클래스로 만들면, 어느 디렉토리에 둘까요?
35강 중간에 AuthMiddleware 클래스를 만드는 부분에서, 인증을 하는 부분을 따로 Auth클래스를 만들어서 할 수도 있다라는 내용이 잠깐 지나갑니다.이때, Auth클래스는 어떤 디렉토리를 만들어서 두면 좋을까요? 유틸 디렉토리를 만들어서 둘까 했지만, Auth클래스를 유틸 클래스라고 하기엔 좀 모호한것 같아서요.
- 미해결PHP 7+ 프로그래밍: 객체지향
ios환경에서는 어떻게 설치해야 하나요?
안녕하세요. php를 배우고 있는 개발자입니다.제가 맥os를 사용하고 있습니다. m2칩입니다.강의는 윈도우 기준인거 같아, 맥도 설명해 주시면 감사하겠습니다!
- 미해결PHP 7+ 프로그래밍: 객체지향
라라벨(php) 배포 문의
라라벨로 backend 개발을 시작하고 있는 초보 개발자 입니다배포시 여러방법이 있겠지만 (Laravel Envoyer,Laravel Forge 등이 있지만) 이것을 사용하지 않고 무료로 개인서버(서버호스팅)배포를 고민하고 있습니다배포할 서버 : centos 7개발 : 라라벨 8강사님께서 작성한 "카페24 호스팅에 라라벨 프로젝트 배포하기" 문서도 보았습니다잘 이해가 안됩었습니다추가적으로 개인서버(production)에서 아파치 웹서버 사용시 설정을 어떻케 하면 되는지도 궁금합니다수고하세요
- 미해결PHP 7+ 프로그래밍: 객체지향
왜 http://localhost/ 로 접근하면 public/index.php 가 실행되나요?
영상 14:07초 부터 뷰표기되는걸 설명주셨는데사작이 public/index.php 인 이유를 모르겠습니다.
- 미해결PHP 7+ 프로그래밍: 객체지향
http://localhost:8080/posts/1 접근시 배열 0값 표기 오류
Route::add('get','/posts/{id}', function($id){ echo ($id); var_dump(Adaptor::getAll('select * from posts where `id`= ?', [ $id ] )); });route.php public static function add($method, $path, $handler, $middlewares = []) { self::$contexts[] = new RequestContext($method, $path, $handler, $middlewares); } 위처럼 불러와도배열 표기가 아무것도 안나오는데 어떤부분을 확인해야 강의처럼 내용확인이 가능할까요?{id}array(0) { } 이렇게만 표기 됩니다.$id값을 못 읽는것 같은데 어떻게 해결해야 할지 모르겠네요
- 미해결PHP 7+ 프로그래밍: 객체지향
xdebug 설치
안녕하세요, 선생님php객체지향의 첫 번째 강의인 '환경' 강의를 따라가면서 xdebug를 설치하고 이를 phpinfo()함수로 브라우저에서 확인하던 중에 xdebug가 없던 것을 발견했습니다. 강의에서 php.ini파일만 있던 것과는 다르게 php.ini-production과 php.ini-develpoment파일 2개가 있더라구요. 그래서 2개의 파일 이름을 모두 php.ini로 바꿔주고 xdebug실행을 위해 강의에서 해준대로 똑같이 설정해주었습니다. 이후에, phpinfo()로 확인해보니, xdebug가 없더라구요.커맨드 창에 php --ini 를 실행하면, 다음과 같은 결과가 출력됩니다.PHP Warning: Failed loading Zend extension 'xdebug' (tried: C:\php\ext\xdebug ( 吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎), C:\php\ext\php_xdebug.dll (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\php\ext\curl (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎), C:\php\ext\php_curl.dll (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'fileinfo' (tried: C:\php\ext\fileinfo (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎), C:\php\ext\php_fileinfo.dll (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'mbstring' (tried: C:\php\ext\mbstring (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎), C:\php\ext\php_mbstring.dll (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: C:\php\ext\mysqli (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎), C:\php\ext\php_mysqli.dll (吏? 뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'openssl' (tried: C:\php\ext\openssl (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎), C:\php\ext\php_openssl.dll ( 吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: C:\php\ext\pdo_mysql (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎), C:\php\ext\php_pdo_mysql.dll (吏?뺣맂 紐⑤뱢??李얠쓣 ???놁뒿?덈떎)) in Unknown on line 0 Configuration File (php.ini) Path: Loaded Configuration File: C:\php8.2\php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) php_xdebug.dll 파일 안의 내용은 건든 적이 없는데, 뭐가 문제일까요???구글링을 통해서 문제를 찾아보려해도 이러한 종류의 에러 대처 방안을 찾지못했네요..독학으로 개발자를 준비하는 게 원래 이렇게 힘들고 고된 일일까요
- 미해결PHP 7+ 프로그래밍: 객체지향
localhost 경로
안녕하세요, 선생님!'나만의 프레임워크 만들기' 파트 중 라우팅 강의의 코드를 카피코딩하면서 수강하던 중에, 경로관련 문제가 생긴 것 같습니다.localhost/로 $path값을 ' / '로 던져주었을 경우에는 정상적으로 작동하는데, localhost/posts/1로 접속할 경우에는 not found에러가 뜨네요...확인해보니, http_response_code(404)의 원인은 아니더라구요...ㅜㅜ
- 미해결PHP 7+ 프로그래밍: 객체지향
class not found
안녕하세요, 선생님!나만의 프레임워크 강의 내용을 카피코딩하면서 class not found 에러가 발생하여 질문남깁니다. -에러내용Fatal error: Uncaught Error: Class "Eclair\Database\Adaptor" not found in C:\xampp\ECLAIR\index.php:11 Stack trace: #0 {main} thrown in C:\xampp\ECLAIR\index.php on line 11 -index.php<?php require './vendor/autoload.php'; use Eclair\Routing\Route; use Eclair\Database\Adaptor; Adaptor::setup('mysql:dbname=myapp_test','root', ''); Route::add('get','/', function(){ echo 'Hello, world'; }) /* Route::add('get','/posts/{$id}', function (){ var_dump(Adaptor::getAll('SEELCT * FROM posts WEHRE `id` = ?', [$id])) }) Route::run(); */ ?> -Route.php<?php namespace Eclair\Routing; use Eclair\Routing\RequestContext; class Route { private static $contexts = []; public static function add($method, $path, $handler, $middlewares = []) { self::$contexts[] = new RequestContext($method, $path, $handler, $middlwares); } public static function run() { foreach($contexts as $context){ if($context -> method === strtolower(Request::getMethod()) && is_array($urlParams = $context->match(Request::getPath()))){ if($context -> runMiddlewares()){ return call_user_func($context->handler, ...$urlParams); } return false; } } } } -RequestContext.php<?php namespace Eclair\Routing; class RequestContext { public $method; public $path; public $handler; public $middlewares; public function __construct($method, $path, $handler, $middlewares) { $this->method = $method; $this->path = $path; $this->handler = $handler; $this->middlewares = $middlewares; } public function match($url) { //$this->path => /posts/{$id}, $url => /posts/1 $urlParts = explode('/',$url); $urlPatternParts = explode('/',$this->path); if(count($urlParts) === count($urlPatternParts)){ $urlParams = []; foreach($urlPatternParts as $key => $part){ if(preg_match('/^\{.*\}$/', $part)){ $urlParams[$key] = $part; } else{ if($urlParts[$key]!= $part){ return null; } } } } return count($urlParams) < 1 ? [] : array_map(fn($k) => $urlParts[$k], array_keys($urlParams)); } public function runMiddlewares() { foreach($this->middlewares as $middlewares){ if(! $middlewares::process()){ return false; } } return true; } } -adaptor.php<?php namespace Eclair\Database; class Adaptor { public static $pdo; private static $sth; public static function setup($dsn, $username, $password) { self::$pdo = new \PDO($dsn, $username, $password); } public static function exec($query, $params) { if(self::$sth = self::$pdo -> prepare($query)){ return self::$sth -> execute($params); } } public static function getAll($query, $params = [], $classname = 'stdClass') { if(self::exec($query, $params)){ return self::sth -> fetchAll(\PDO::FETCH_CLASS, $classname); } } public static $test = 'test'; public static function output() { return self::$test; } } 현재, 모든 Route클래스를 포함한 모든 클래스들이 호출되지 않는 것 같습니다.코드와 디렉토리 구조 모두 강의 내용과 일치한데, 어디에서 문제가 발생한 것인지 감도 안 잡히네요..ㅜㅜautoload.php파일을 건드린 적이 없는데, 이 파일이 문제인 걸까요??
- 해결됨PHP 7+ 프로그래밍: 객체지향
namespace class not found 질문
안녕하세요, 선생님!강의는 잘 듣고있습니다.그런데, 나만의 프레임워크 만들기 목차 중 Http강의에서 코드를 실행하던 중 namespace 내에 class가 발견되지 않는다는 오류를 발견했습니다. 코드는 일단, 모두 똑같은데 어디에서 문제가 발생한 것인지 원인을 잘 모르겠네요..ㅠㅠcomposer.json{ "name": "pronist/eclair", "description": "eclair is a simple PHP micro framework.", "type": "library", "license": "MIT", "autoload": { "psr-4": { "Pronist\\Eclair\\": "src/" } }, "authors": [ { "name": "sunwoo" } ], "require": {} } Request.php<?php namespace Eclair\Http; class Request { public static function getMethod() { return filter_input($_POST, '__method') ?: $_SERVER['REQUEST_METHOD']; } public static function getPath() { return $_SERVER['PATH_INFO'] ?? '/'; } } -index.php<?php require './vendor/autoload.php'; use Eclair\Http\Request; $_SERVER['REQUEST_METHOD'] = 'GET'; var_dump(Request::getMethod()); 디렉토리 구조는ECLAIR(폴더)/src /Database -adaptor.php /Http -Request.php/vendor-composer.json-index.php디렉토리 구조 또한 강의 중 그것과 동일합니다.
- 해결됨PHP 7+ 프로그래밍: 객체지향
csrfmiddelware 에러 질문입니다
Undefined property: stdClass::$csrfToken in /Users/ywkim/StudyPHP/php_blog/app/Middlewares/CsrfTokenMiddleware.php:12 Stack trace: #0 /Users/ywkim/StudyPHP/php_blog/app/Middlewares/CsrfTokenMiddleware.php(12): App\Providers\ErrorServiceProvider::App\Providers\{closure}(8, 'Undefined prope...', '/Users/ywkim/St...', 12, Array) #1 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Routing/RequestContext.php(82): App\Middlewares\CsrfTokenMiddleware::process() #2 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Routing/Route.php(36): Eclair\Routing\RequestContext->runMiddlewares() #3 /Users/ywkim/StudyPHP/php_blog/app/Providers/RouteServiceProvider.php(17): Eclair\Routing\Route::run() #4 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Application.php(32): App\Providers\RouteServiceProvider::boot() #5 [internal function]: Eclair\Application->Eclair\{closure}('App\\Providers\\R...', 4) #6 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Application.php(32): array_walk(Array, Object(Closure)) #7 /Users/ywkim/StudyPHP/php_blog/public/index.php(7): Eclair\Application->boot() #8 {main}<script> const $delete = document.getElementById('delete') $delete.addEventListener('click', () => { alert('/posts/' + '<?=$post->id?>'); fetch('/posts/' + '<?=$post->id?>', { method: 'delete', body: JSON.stringify({ _csrfToken: '<?=$_SESSION['CSRF_TOKEN']?>' }) }).then(() => { window.location = '/' }) }) </script>//delete post Route::add('delete', '/posts/{id}', '\App\Controllers\PostController::destroy', [ AuthMiddleware::class, RequireMiddleware::class, CsrfTokenMiddleware::class ]); script부분도 강사님꺼 복붙해서 똑같은데 라우터에CsrftokenMiddleware::class 만 추가하면 에러가 납니다.csrf 미들웨어 들어가있는 다른 라우터는 문제가 안되는데 delete할 때만 저렇게 에러가 나고 삭제처리가 안되네요..왜그런지 알 수 있을까요
- 미해결PHP 7+ 프로그래밍: 객체지향
url Parttern Parts 가 무슨뜻인가요?
url Parttern Parts 가 무슨뜻인가요?혹시 패턴 말씀하시는건가요? 아니면 parttern이라는 용어가 따로 있나요?Path도 패치라고 하셔서 단어들이 좀 많이 헷갈리네요..ㅜㅜ
- 미해결PHP 7+ 프로그래밍: 객체지향
통합 개발환경 (IDE) 관련 문의
강의 잘 봤습니다!혼자서 헤매기 쉬운 환경 설정 부분을 자세히 다뤄주셔서 정말 좋았습니다.한 가지 문의가 있다면 추후 수업을 위한 IDE는 VS Code만 사용해야 할까요?전 PhpStorm을 쓰고 있어서요..
- 미해결PHP 7+ 프로그래밍: 객체지향
Route 클래스 질문이 있습니다!
선생님 안녕하세요. 강의 정말 잘 보고 있습니다.수업 내용 중 이해가 되지 않는 부분이 있어서 질문드립니다.26강 Route클래스의 add함수에서 contexts라는 매개변수에 인스턴스를 만드는 데 여기서 contexts를 왜 배열로 선언했는지 잘 모르겠습니다.답변 부탁드립니다.
- 미해결PHP 7+ 프로그래밍: 객체지향
모델 User 등에서 속성들을 protected 나 private 으로 설정하지 않는 이유가 있습니까?
강사님 강의 잘 듣고 있습니다~ ^^* 역시 후반부에 오니 핵심들이 꼭꼭 쌓여있습니다.앞에서 잘 설명해 주셨던 것들이 잘 조합되어서,저의 이해도도 많이 높아 졌습니다. 그런데 궁금한게 User 클래스와 같은 Model을 만드실때,속성을 protected 나 private으로 미리 선언하지 않고모델의 메서드 내에서 매직메서드 __set() 을 통한 할당을 함으로써,public 접근이 가능하게 됩니다. 강의에서 말씀하셨듯이 VO나 DTO에 대한 언급을 하지 않는 이유는 이해가 갑니다만,뷰 등에서 모델의 객체(vo)가 수정되지 않을 것을보장(immutable)해 주는 것은 중요하지 않습니까? 혹시 별다른 이유가 있는지 궁금해서 질문드립니다. MVC 아키텍처에서 VO가 중요한 이유는VO가 변하지 않음을 보장하는 것이라고 생각하거든요~^^ 강사님의 다음 라라벨 강의도 기대되네요~ ^^*
- 해결됨PHP 7+ 프로그래밍: 객체지향
안녕하세요 프로젝트를 react와 연동하기에 대해서 여쭈고 싶습니다 :)
안녕하세요 이번에 강의를 다 듣고 또 게시판도 여러번 수행해서 정말 잘 되는것을 확인을 하였습니다 하지만 이번에 react와 함께 연동을 해서 view는 react를 사용하고 또 api 설계는 php로 한번 해보자 하고 도전을 해 보았는데요 laravel에서는 굳이 cors를 지정하지 않아도 잘 연동이 되더라고요 하지만 이번 프로젝트는 어떻게 react를 사용해야하지.. 라고 막혔습니다 제가 생각했던 아이디어는 -frontend 폴더 -backend 폴더 를 따로 두고 proxy를 두어서 php 쪽에서 그냥 header로 cors를 넘겨주면 되지 않을까.. 라고 생각하고 들었는데요 https://github.com/DevelopJKong/php_react_project 일단 문제점은.. 제가 아직 실력이 부족해서 npm 으로 프로그램을 돌리는것이 아니기 때문에 되는게 아닐까? 라는 생각이 들었습니다 그래서 이번에는 상위 폴더에서 돌리는것이 아닌 따로따로서버를 켜서 해놨는데요 그래도.. 안되더라고요 혹시나 싶어서 CorsMiddleware를 만들어서 아래와 같이 만들어보고 post 로 보낼때 Route::add(x,y,[CorsMiddleware::class]) 도 입력해봤는데요 코드는 아래와 같습니다 <?php namespace App\Middlewares; use Eclair\Routing\Middleware; class CorsMiddleware extends Middleware { public static function process() { header("Content-type: application/x-javascript;charset=utf-8"); Header("Access-Control-Allow-Origin: *"); Header("Access-Control-Allow-Methods: POST, GET, OPTIONS"); Header("Access-Control-Allow-Headers:orgin, x-requested-with"); } } <?php use Eclair\Routing\Route; use App\Middlewares\RequireMiddleware; use App\Middlewares\CsrfTokenMiddleware; use App\Middlewares\CorsMiddleware; Route::add('post', '/api/auth', '\App\Controllers\AuthController::login', [CorsMiddleware::class] ); 조금 조언을 얻고자 이렇게 글을 쓰게 되었습니다 laravel에서는 그래도 해봤는데 laravel에서는 되더라고요 근데 왜이 프로젝트에서는 안될까? 라는 생각이 들었습니다 감사합니다 :)
- 해결됨PHP 7+ 프로그래밍: 객체지향
DatabaseSessionHandler.php 에러 해결 부분
안녕하세요 저는 이번에는 질문은 아니지만 그래도 일단 어려움을 겪던것을 공유하고 싶어서 적습니다 강의에서는 7.4 버전으로 하고 있어서 문제는 없을거 같은데 저는 업그레이드 해서 8.1로 해보고 싶어서 하고 있는 중에 문제가 생겼습니다 DatabaseSessionHandler.php 에서 extends 해서 올때 문제점이 생겼던 것이였는데요 꼭 리턴 값을 명시를 해줘야 에러가 모두 사라지더라고요 혹시나 강의와 똑같이 코드를 진행 했음에도 계속 문제가 생긴다면 8.1버전으로 하시는 분들은 참고하셨으면 좋겠습니다 👍
- 미해결PHP 7+ 프로그래밍: 객체지향
안녕하세요. 라우터 서버 연결 질문이 있습니다.
이렇게 강의 하신 모든 코드 내용을 따라 했는데 자꾸 not found 에러가 뜨네요. 이유를 알 수 있을까요?? 따로 아파치 서버에 설정을 해야 하는게 있나요???
- 미해결PHP 7+ 프로그래밍: 객체지향
아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네 1:1 문의하기를 이용해주세요.
- 해결됨PHP 7+ 프로그래밍: 객체지향
로컬환경에서 개발 후 운영환경으로 배포 시 발생하는 이슈에 대한 문의입니다.
질문에 앞서 해당 질문은 'CentOS 7.* 서버쪽으로 배포를 해보던 중에 질문드립니다.' 질문과 연관됩니다. 안녕하세요. 이번 강의를 통해 만들어본 프로젝트를 운영환경쪽으로 배포해 보고자 합니다.운영환경 서버 S/W 정보는 아래와 같습니다. [서버 S/W 정보] 1. OS: CentOS 7.9 2. Language: PHP 7.3.27 3. Database: MariaDB 10.4.17 4. Web Server: Apache 2.4 (기본적인 APM 구성을 따르고 있습니다.) 현재 아파치 웹 서버의 가상호스트(VirtualHost) 설정을 통해 부여된 도메인으로 접근이 가능하도록 설정해 놓은 상황입니다. 하지만 사이트 접근 시 500 Error 페이지로 전환됨에 따라 PHP error log를 확인해 본 결과 아래와 같은 에러 메시지가 출력되고 있는 상황이었습니다. PHP Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in {DOCUMENT ROOT}/vendor/painkill2r/inflearn-lecture-lib/src/Application.php on line 27 소스코드를 확인해 보니 Arrow Function에서 문제가 발생하는 것 같아서 문법 지원 버전을 확인해보니 PHP 7.4부터 지원되는 문법으로 확인이 되어 운영환경은 PHP 7.3을 사용하고 있기 때문에 에러 페이지로 전환되는 것으로 원인 파악이 되었는데요. 이런 경우 PHP 버전 업데이트를 하지 않고서는 해결이 불가능한 문제인지 아니면 다른 문법으로 변경을 해서라도 접속이 되게 할 수 있는지 첨언 부탁드립니다.감사합니다.