2014-01-15 6 views
5

Проект codeigniter при загрузке на сервер дает мне следующую ошибку.Неправильный системный путь CodeIgniter на частном сервере

Путь к вашей системной папке не установлен правильно. Пожалуйста открыть следующий файл и исправить это: index.php

это хорошо работает локально & на 000webhost.com хостинга.

При загрузке на приватный сервер параллелей он дает указанную выше ошибку.

Мой index.php выглядит следующим образом.

<?php 
define('ENVIRONMENT', 'development'); 

if (defined('ENVIRONMENT')) 
{ 
switch (ENVIRONMENT) 
{ 
    case 'development': 
     error_reporting(E_ALL); 
    break; 

    case 'testing': 
    case 'production': 
     error_reporting(0); 
    break; 

    default: 
     exit('The application environment is not set correctly.'); 
} 
} 
$system_path = 'system'; 
$application_folder = 'application'; 


if (defined('STDIN')) 
{ 
    chdir(dirname(__FILE__)); 
} 

if (realpath($system_path) !== FALSE) 
{ 
    $system_path = realpath($system_path).'/'; 
} 

$system_path = rtrim($system_path, '/').'/'; 

if (! is_dir($system_path)) 
{ 
    exit("Your system folder path does not appear to be set correctly. Please open the following file and correct this: ".pathinfo(__FILE__, PATHINFO_BASENAME)); 
} 

define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); 
define('EXT', '.php'); 

// Path to the system folder 
define('BASEPATH', str_replace("\\", "/", $system_path)); 

// Path to the front controller (this file) 
define('FCPATH', str_replace(SELF, '', __FILE__)); 

// Name of the "system folder" 
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/')); 


// The path to the "application" folder 
if (is_dir($application_folder)) 
{ 
    define('APPPATH', $application_folder.'/'); 
} 
else 
{ 
    if (! is_dir(BASEPATH.$application_folder.'/')) 
    { 
     exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF); 
    } 

    define('APPPATH', BASEPATH.$application_folder.'/'); 
} 
require_once BASEPATH.'core/CodeIgniter.php'; 
+0

И какова структура вашего файла/папки? –

+0

Может ли у вас указать .htaccess, который вы использовали. –

ответ

0

попробовать этот .htaccess на корневой папке

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 
<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

assumming что index.php Ваш индекс страницы.

и изменения в config.php

$config['index_page'] = ''; 
0

В моем случае, я не пошел возиться с .htaccess, на самом деле, прежде чем сделать это, как это предложено в посте выше, I попытался его позднюю часть, которая меняет

$config['index_page'] = 'index.php'; 

к следующему

$config['index_page'] = ''; 

И это просто сработало для меня!

~~~~~~~~~~~~~~~~~~ Редактировать, чтобы добавить дополнительную информацию ~~~~~~~~~~~~~~~~~~~~~

структура

Мои CodeIgniter Каталог:

htdocs/
     |_ CI/
      |_ OnlineStoreApp/
           |_ online_store_ci // This is the CodeIgniter folder 
           |_ public_html/
               |_ css 
               |_ js 
               |_ fonts 
               |_ .htaccess // see bellow for more details 
               |_ index.php // see bellow for more details 

И мой файл .htaccess содержит следующее:

DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA] 

Мой index.php файл такой же один обеспечивается корневой папке CodeIgniter, но я должен изменить два строки в нем, поскольку я помещаю его в поле public_html каталог вместо него первоначально место:

Примечание: взгляд на следующие две строки в index.php,
- $system_path
- $application_folder
Они были отредактированы, чтобы указать места, где system каталог и application каталога находятся в.

<?php 

/* 
*--------------------------------------------------------------- 
* APPLICATION ENVIRONMENT 
*--------------------------------------------------------------- 
* 
* You can load different configurations depending on your 
* current environment. Setting the environment also influences 
* things like logging and error reporting. 
* 
* This can be set to anything, but default usage is: 
* 
*  development 
*  testing 
*  production 
* 
* NOTE: If you change these, also change the error_reporting() code below 
* 
*/ 
    define('ENVIRONMENT', 'development'); 
/* 
*--------------------------------------------------------------- 
* ERROR REPORTING 
*--------------------------------------------------------------- 
* 
* Different environments will require different levels of error reporting. 
* By default development will show errors but testing and live will hide them. 
*/ 

if (defined('ENVIRONMENT')) 
{ 
    switch (ENVIRONMENT) 
    { 
     case 'development': 
      error_reporting(E_ALL); 
     break; 

     case 'testing': 
     case 'production': 
      error_reporting(0); 
     break; 

     default: 
      exit('The application environment is not set correctly.'); 
    } 
} 

/* 
*--------------------------------------------------------------- 
* SYSTEM FOLDER NAME 
*--------------------------------------------------------------- 
* 
* This variable must contain the name of your "system" folder. 
* Include the path if the folder is not in the same directory 
* as this file. 
* 
*/ 
    $system_path = '../online_store_ci/system'; 

/* 
*--------------------------------------------------------------- 
* APPLICATION FOLDER NAME 
*--------------------------------------------------------------- 
* 
* If you want this front controller to use a different "application" 
* folder then the default one you can set its name here. The folder 
* can also be renamed or relocated anywhere on your server. If 
* you do, use a full server path. For more info please see the user guide: 
* http://codeigniter.com/user_guide/general/managing_apps.html 
* 
* NO TRAILING SLASH! 
* 
*/ 
    $application_folder = '../online_store_ci/application'; 

/* 
* -------------------------------------------------------------------- 
* DEFAULT CONTROLLER 
* -------------------------------------------------------------------- 
* 
* Normally you will set your default controller in the routes.php file. 
* You can, however, force a custom routing by hard-coding a 
* specific controller class/function here. For most applications, you 
* WILL NOT set your routing here, but it's an option for those 
* special instances where you might want to override the standard 
* routing in a specific front controller that shares a common CI installation. 
* 
* IMPORTANT: If you set the routing here, NO OTHER controller will be 
* callable. In essence, this preference limits your application to ONE 
* specific controller. Leave the function name blank if you need 
* to call functions dynamically via the URI. 
* 
* Un-comment the $routing array below to use this feature 
* 
*/ 
    // The directory name, relative to the "controllers" folder. Leave blank 
    // if your controller is not in a sub-folder within the "controllers" folder 
    // $routing['directory'] = ''; 

    // The controller class file name. Example: Mycontroller 
    // $routing['controller'] = ''; 

    // The controller function you wish to be called. 
    // $routing['function'] = ''; 


/* 
* ------------------------------------------------------------------- 
* CUSTOM CONFIG VALUES 
* ------------------------------------------------------------------- 
* 
* The $assign_to_config array below will be passed dynamically to the 
* config class when initialized. This allows you to set custom config 
* items or override any default config values found in the config.php file. 
* This can be handy as it permits you to share one application between 
* multiple front controller files, with each file containing different 
* config values. 
* 
* Un-comment the $assign_to_config array below to use this feature 
* 
*/ 
    // $assign_to_config['name_of_config_item'] = 'value of config item'; 



// -------------------------------------------------------------------- 
// END OF USER CONFIGURABLE SETTINGS. DO NOT EDIT BELOW THIS LINE 
// -------------------------------------------------------------------- 

/* 
* --------------------------------------------------------------- 
* Resolve the system path for increased reliability 
* --------------------------------------------------------------- 
*/ 

    // Set the current directory correctly for CLI requests 
    if (defined('STDIN')) 
    { 
     chdir(dirname(__FILE__)); 
    } 

    if (realpath($system_path) !== FALSE) 
    { 
     $system_path = realpath($system_path).'/'; 
    } 

    // ensure there's a trailing slash 
    $system_path = rtrim($system_path, '/').'/'; 

    // Is the system path correct? 
    if (! is_dir($system_path)) 
    { 
     exit("Your system folder path does not appear to be set correctly. Please open the following file and correct this: ".pathinfo(__FILE__, PATHINFO_BASENAME)); 
    } 

/* 
* ------------------------------------------------------------------- 
* Now that we know the path, set the main path constants 
* ------------------------------------------------------------------- 
*/ 
    // The name of THIS file 
    define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); 

    // The PHP file extension 
    // this global constant is deprecated. 
    define('EXT', '.php'); 

    // Path to the system folder 
    define('BASEPATH', str_replace("\\", "/", $system_path)); 

    // Path to the front controller (this file) 
    define('FCPATH', str_replace(SELF, '', __FILE__)); 

    // Name of the "system folder" 
    define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/')); 


    // The path to the "application" folder 
    if (is_dir($application_folder)) 
    { 
     define('APPPATH', $application_folder.'/'); 
    } 
    else 
    { 
     if (! is_dir(BASEPATH.$application_folder.'/')) 
     { 
      exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF); 
     } 

     define('APPPATH', BASEPATH.$application_folder.'/'); 
    } 

/* 
* -------------------------------------------------------------------- 
* LOAD THE BOOTSTRAP FILE 
* -------------------------------------------------------------------- 
* 
* And away we go... 
* 
*/ 
require_once BASEPATH.'core/CodeIgniter.php'; 

/* End of file index.php */ 
/* Location: ./index.php */ 

Надеется, что это может помочь кому-то там!

CodeIgniter Rocks!

0

Если Вы загрузив Ваш проект выполните следующие действия

  1. Убедитесь, что Вы загрузите приложению, системному, index.php, .htaccess

  2. Измените config/database.php с вашей размещенной базой данных.

  3. Убедитесь, что URL-адреса, Cz LINUX Hosting чувствительны к регистру.

  4. Убедитесь, что все ресурсы загружены на сервер. (CSS, JS, изображения, и т.д. ...)

Hopes это поможет Вам :)

0

У меня такая же проблема, то я создать контроллер внутри, что я создал метод индексного затем вызвать файл хрон с ниже команда работает для меня.

wget domain_name/google_script -O /dev/null 

google_script = "My controller class name" 

это решение работает для меня.

Смежные вопросы