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의
-
Plesk에서 Domains > example.com > PHP Settings 로 이동 합니다 .
-
open_basedir의 값을 수정하십시오.
-
Linux의 경우
다음은 디렉토리
/var/lib/php/session
를 포함하는 예입니다open_basedir
.{WEBSPACEROOT}{/}{:}{TMP}{/}{:}/var/lib/php/session
-
Windows의 경우
다음은
E:\custom_folder\sessions
open_basedir에 디렉토리 를 포함하는 예입니다 .{WEBSPACEROOT}{/};{TMP};{/};"E:\custom_folder\sessions\"
-
-
변경 사항을 적용하십시오.
위의 해결 방법이 도움이되지 않으면
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-
이러한 오류들을 해결할 방법을 여쭙고 싶습니다.
plesk와는 전혀 상관없는 문제이고, php.ini를 직접 수정하시면 됩니다.
우분투에 nginx 조합이라면 기본 경로는 /etc/php/7.4/fpm/php.ini일 겁니다.
/etc/php/7.4/fpm/pool.d/ 아래에 있는 설정파일에서 추가로 open_basedir 설정이 되어있을 수도 있고요.
원칙적으로는 그냥 냅두면 알아서 돌아가는 세션을 코드이그나이터가 쓸데없이 건드리는 것이 문제이지만
(예전에 그누보드도 이런 뻘짓을 한 적이 있습니다...)
일단 해당솔루션을 사용하시는 이상, 솔루션이 원하는 대로 할 수 있도록 해줘야지요.