Extra Form
PHP PHP 7.4
CMS 기타

https://github.com/kirilkirkov/Ecommerce-CodeIgniter-Bootstrap

위와 같은 Codeigniter 3.1.11를 이용한 프로젝트이던데

이 프로젝트를 php 7.4 ubuntu 20.04 mariadb 10.4 nginx에서 돌려보니 작동이 안되더라고요.

 

 

 

 

 

1.Import database.sql to your mysql //개발자의 말

mysql데이터 베이스에 github에서 다운로드한 database.sql을 업로드하기 //해석

2.Set hostname, username and password in application/config/database.php //개발자의 말

hostname과 데이터베이스의 계정을 위 디렉터리에 해당하는 database.php에 입력하기 //해석

3.Set your site domain in application/config/config.php - $config['base_url'] = 'http://yourdomain.com'; //개발자의 말

config.php에서 도메인의 주소를 적으시오-

//아래는 추가적인 말입니다.

Little explanation about the installation - if you paste installation of project in directory something like http://localhost/SHOP, you must set this directory to application/config/config.php - $config['base_url'] = 'http://localhost/SHOP'; and must remove from .htaccess file "RewriteBase /" line because css and js files will not be loaded! But you must know that the best way to install this platform is to set it in root http://localhost directory or if you want to be in other directory just set virtual host for this and point him to there. (example: http://shop.dev - point to localhost/shop directory). How to create virtual hosts you can read here: http://goo.gl/UvpYMG

인스톨을 할때 말해줄 것이 있습니다. 만약 디렉터리가 example.com/shop과 같은 루트 디렉터리가 아닌 디렉터리일 경우에는 그러한 디렉터리에 해당하는 도메인을 적어주어야하고 apache에 쓰이는 재작성 구문에서 rewritebase라는 줄에 따라서 css와 js가 로드되지 않을 수 있습니다. 루트 디렉터리에 설치하는 것이 좋습니다. 라는 이야기라고 해석하였습니다.

 

제작자는 위의 세 단계를 진행하라고 말해주었습니다. 우선 phpmyadmin으로 A라는 데이터베이스를 만들고 A라는 유저를 만들어 권한을 제공하였습니다. 그리고 database를 A라는 데이터베이스에 가져왔습니다. 그리고

'hostname' => 'localhost',

'username' => 'root',

'password' => 'root비번',

'database' => 'A라는 데이터 베이스',

로 설정하면서 2단계를 마쳤습니다.

 

$config['base_url'] = defined('BASE_URL')?BASE_URL:'';를

$config['base_url'] = defined('BASE_URL')?BASE_URL:'저의 도메인.com';

$config['base_url'] ='저의 도메인.com';으로도 설정하면서 3단계를 끝냈습니다.

 

p.s codeigniter을 설치해야하는지 찾아보았는데 codeingiter의 코드를 보니까 따로 설치할 것은 없어보였습니다.

 

그러나

A PHP Error was encountered

Severity: Warning

Message: is_dir(): open_basedir restriction in effect. File(/var/lib/php/sessions) is not within the allowed path(s): (/var/www/wwwk/:/usr/lib/php/:/tmp/)

Filename: drivers/Session_files_driver.php

Line Number: 134

Backtrace:

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 173
Function: _ci_load_library

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 190
Function: library

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 153
Function: libraries

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 65
Function: initialize

File: /var/디렉터리/application/third_party/MX/Base.php
Line: 55
Function: __construct

File: /var/디렉터리/application/third_party/MX/Base.php
Line: 60
Function: __construct

File: /var/디렉터리/application/third_party/MX/Controller.php
Line: 4
Function: require

File: /var/디렉터리/application/third_party/MX/Modules.php
Line: 123
Function: include_once

File: /var/디렉터리/application/core/MY_Controller.php
Line: 3
Function: spl_autoload_call

File: /var/디렉터리/index.php
Line: 292
Function: require_once
A PHP Error was encountered

Severity: Warning

Message: mkdir(): open_basedir restriction in effect. File(/var/lib/php/sessions) is not within the allowed path(s): (/var/www/wwwk/:/usr/lib/php/:/tmp/)

Filename: drivers/Session_files_driver.php

Line Number: 136

Backtrace:

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 173
Function: _ci_load_library

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 190
Function: library

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 153
Function: libraries

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 65
Function: initialize

File: /var/디렉터리/application/third_party/MX/Base.php
Line: 55
Function: __construct

File: /var/디렉터리/application/third_party/MX/Base.php
Line: 60
Function: __construct

File: /var/디렉터리/application/third_party/MX/Controller.php
Line: 4
Function: require

File: /var/디렉터리/application/third_party/MX/Modules.php
Line: 123
Function: include_once

File: /var/디렉터리/application/core/MY_Controller.php
Line: 3
Function: spl_autoload_call

File: /var/디렉터리/index.php
Line: 292
Function: require_once
A PHP Error was encountered

Severity: Warning

Message: session_start(): Failed to initialize storage module: user (path: /var/lib/php/sessions)

Filename: Session/Session.php

Line Number: 143

Backtrace:

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 173
Function: _ci_load_library

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 190
Function: library

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 153
Function: libraries

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 65
Function: initialize

File: /var/디렉터리/application/third_party/MX/Base.php
Line: 55
Function: __construct

File: /var/디렉터리/application/third_party/MX/Base.php
Line: 60
Function: __construct

File: /var/디렉터리/application/third_party/MX/Controller.php
Line: 4
Function: require

File: /var/디렉터리/application/third_party/MX/Modules.php
Line: 123
Function: include_once

File: /var/디렉터리/application/core/MY_Controller.php
Line: 3
Function: spl_autoload_call

File: /var/디렉터리/index.php
Line: 292
Function: require_once
A PHP Error was encountered

Severity: Notice

Message: Undefined variable: image

Filename: _parts/header.php

Line Number: 13

Backtrace:

File: /var/디렉터리/application/views/templates/redlabel/_parts/header.php
Line: 13
Function: _error_handler

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 355
Function: include

File: /var/디렉터리/application/third_party/MX/Loader.php
Line: 294
Function: _ci_load

File: /var/디렉터리/application/core/MY_Controller.php
Line: 49
Function: view

File: /var/디렉터리/application/controllers/Home.php
Line: 39
Function: render

File: /var/디렉터리/index.php
Line: 292
Function: require_once
https://도메인명/assets/img/site-overview.png" />

 

와 같은 오류가 발생하였습니다.

 

위의 오류중에 mkdir의 문제는 chmod 777 디렉터리/*로 해결하였습니다. 그리고

Message: is_dir(): open_basedir restriction in effect. File(/var/lib/php/sessions) is not within the allowed path(s): (/var/www/wwwk/:/usr/lib/php/:/tmp/)는 해결방법을 다들 plesk를 이용하여서 해결하던데 plesk의

  1. Plesk에서 Domains > example.com > PHP Settings 로 이동 합니다 .

  2. open_basedir의 값을 수정하십시오.

    • Linux의 경우

      다음은 디렉토리 /var/lib/php/session를 포함하는 예입니다 open_basedir.

      {WEBSPACEROOT}{/}{:}{TMP}{/}{:}/var/lib/php/session

    • Windows의 경우

      다음은 E:\custom_folder\sessionsopen_basedir에 디렉토리 를 포함하는 예입니다 .

      {WEBSPACEROOT}{/};{TMP};{/};"E:\custom_folder\sessions\"

  3. 변경 사항을 적용하십시오.

    위의 해결 방법이 도움이되지 않으면 open_basedir없음으로 설정하십시오 .

 

위와 같은 해결방법은 저에게 사용이 불가한 해결방법이었습니다.

https://support.plesk.com/hc/en-us/articles/115000278993-A-website-hosted-in-Plesk-is-not-accessible-open-basedir-restriction-in-effect-File-is-not-within-the-allowed-path-s-

 

이러한 오류들을 해결할 방법을 여쭙고 싶습니다.

  • profile

    plesk와는 전혀 상관없는 문제이고, php.ini를 직접 수정하시면 됩니다.

    우분투에 nginx 조합이라면 기본 경로는 /etc/php/7.4/fpm/php.ini일 겁니다.

    /etc/php/7.4/fpm/pool.d/ 아래에 있는 설정파일에서 추가로 open_basedir 설정이 되어있을 수도 있고요.

     

    원칙적으로는 그냥 냅두면 알아서 돌아가는 세션을 코드이그나이터가 쓸데없이 건드리는 것이 문제이지만

    (예전에 그누보드도 이런 뻘짓을 한 적이 있습니다...)

    일단 해당솔루션을 사용하시는 이상, 솔루션이 원하는 대로 할 수 있도록 해줘야지요.