9

昨日、セットアップの何が問題なのかを把握するために 5 時間以上費やしました。ci213/application/controllers および views ディレクトリには、単純な site.php コントローラーと test.php ビューがあります。このサイトがロードされない理由について、私は考えがありません。私が次に探すことができるものについて誰か提案がありますか? たぶん、ログは正常に機能していますか?より良いログ エラーを取得できれば、もっと多くの作業を行うことができます。

Apache のルート (/var/www) に index.php と index.html があり、サイトのルート (/var/www/vhosts/srp-local) に index2.php があるので、codeigniter を使用する必要があると考えました。 /htdocs)、localhost/index.(php|html) または srp-local/index2.php に移動すると、ページが読み込まれて適切に表示されるため、php と apache が機能しています。

サイトを読み込もうとすると、空白のページが表示されるので、CI を使用する必要があると考えました。すべてのログ ファイルを追跡していますが、更新されるのはサイト access.log だけで、次のエラーが表示されます。

127.0.0.1 - - [23/Mar/2013:09:00:28 -0600] "GET / HTTP/1.1" 500 381 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0"

config.php

$config['base_url'] = 'http://srp-local/'; # My hosts file is configured for this.
$config['log_threshold'] = 4;
$config['log_path'] = '/var/www/vhosts/srp-local/logs/ci_error.log';

コントローラー/site.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Site extends CI_Controller
{
    public function index()
    {
        $this->load->view('test');
    }
}

ビュー/test.php

<html>
<head>
</head>
<body>
<?php echo "PHP is working and the 'test' view was loaded"; ?>
</body>
</html>

アパッチルート

/var/www/vhosts
$ ll
drwxrwsr-x  6 krizzo www-data 4096 Mar 22 10:45 it355
drwxrwsr-x  6 krizzo www-data 4096 Mar 22 17:45 srp-local

htdocs は srp-local の webroot であり、その index.php は ci213 フォルダーを参照します。

/var/www/vhosts
$ ll srp-local/
drwxrwsr-x 2 krizzo www-data 4096 Mar 22 17:06 cgi-bin
drwxrwsr-x 4 krizzo www-data 4096 Mar 22 17:14 ci213
drwxrwsr-x 2 krizzo www-data 4096 Mar 22 17:19 logs
drwxrwsr-x 5 krizzo www-data 4096 Mar 22 17:26 htdocs

すべてのログの場所/権限

/var/log/apache2/
    -rw-rw-rw- 1 www-data adm     0 Mar 23 08:52 php_errors.log
    -rw-r----- 1 root     adm 12191 Mar 23 09:32 access.log
    -rw-r----- 1 root     adm  4858 Mar 23 09:32 error.log

/var/www/vhosts/srp-local/logs/
    -rw-r--r-- 1 root   www-data  3227 Mar 22 19:42 error.log
    -rw-rw-r-- 1 krizzo www-data     0 Mar 23 09:37 ci_error.log
    -rw-r--r-- 1 root   www-data 12983 Mar 23 09:38 access.log

php.ini ファイルの設定

error_reporting = E_ALL & ~E_DEPRECATED
log_errors = On
error_log = /var/log/apache2/php_errors.log
4

8 に答える 8

10

念のため、これを投稿して

ください...共有ホスティングプラットフォームを使用していて、ファイルをホストする予定の場所以外のディレクトリにアクセスできない場合:トリックは、phpがすべてのエラーをスローするように強制することでしたApacheはできませんでした。

codeigniter インストールのルート フォルダーにある "index.php" を開きます。

define('ENVIRONMENT', 'development');

if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
        {
            case 'development':
            error_reporting(E_ALL);
            /*added line below*/
            ini_set('display_errors', '1');
            break;
......

上記の変更を行うと、すぐにコードの問題点が表示され始め、修正して実行することができました。

修正が完了したら、codeigniter 環境を「production」に設定することを忘れないでください。

于 2015-03-07T22:44:01.030 に答える
10

私は最終的に、私を正しい方向に向ける何かを見つけました。これらの 2 つの投稿では、CI がデータベース モジュールで @ を使用する方法がその問題を引き起こしている可能性があると述べています。

PHPは500エラーを返しますが、エラーログはありません
CodeIgniterプロジェクトは空白のWebページをロードします

データベース モジュールの自動ロードを無効にすると、サイトが機能します。次に、CI の失敗の原因となっている可能性があるデータベース エラーを特定する必要があります。理解したら、この回答を更新します。

更新:アカウント/パスワードとデータベースへのアクセスを確認しましたが、すべてが機能していました。問題は、php mysql ドライバーがインストールされていないことでした。Ubuntuシステムを実際に使用するのはこれが初めてで、mysqlドライバーはデフォルトのphpパッケージでインストールされると思っていましたが、これは間違っていました。

php5-mysqlnd をインストールし、CI の autoload でデータベース ライブラリを有効にすると、すべてが正しく機能するようになりました。エラーが発生しなかったという事実は、フレームワークの変更を検討するきっかけになりました。

于 2013-03-24T16:51:08.347 に答える
0

私の場合(カートクラス)、URLの問題でした。

/var/log/apache2/error.log

次のようなものがある場合

[client 127.0.0.1] File does not exist: ...

次に、このように「/index.php/」をクラス名の前に付ける必要があります

http://localhost/codeigniter/index.php/cart
于 2014-03-21T13:44:59.227 に答える
0

私の場合、php設定の表示エラーがアクティブに設定されていなかったため、エラーが表示されませんでした。アクティブなphpエラーに設定した後、500エラーを引き起こした問題とともに表示されました。
表示エラー

于 2016-08-12T10:18:14.183 に答える