Linux サーバー上のパス設定

Linux サーバー上のパス設定

ウィンドウ上で完璧に動作する PHP プロジェクトがあります。

現在、Centos Linux サーバーにプロジェクトを展開しています。

define('INCLUDES_PATH', ROOT_PATH.'cms-includes/');
ini_set('include_path',INCLUDES_PATH.':'.ini_get('include_path'));

だからINCLUDES_PATH-->C:\xampp\htdocs\cms-includes

Linuxでパスの問題に直面しています。Linuxではプロジェクトの場所は/var/www/web_loan/xampp/htdocs\...cms-includes

ここで、 のパスを設定するという問題があります。サーバー上に場所C:\がないため、Linux でこれを実行するにはどうすればよいですか。C:\

どのような種類のパスを指定すればよいでしょうか?

エラーは次のようになります

Fatal error in line 15 of file/var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php
- require_once(INCLUDES_PATHpear.mysql.php): failed to open stream: No such file or directory

PHP Fatal error:  require_once(): Failed opening required 'INCLUDES_PATHpear.mysql.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php on line 15.

行番号15は次のようになりますinit.inc.php

require_once(INCLUDES_PATH . 'pear.mysql.php');

Linux に従って INCLUDES_PATH を定義する必要がありますかdefines.inc.php?

答え1

などのドライブ文字はC:D:Unix/Linux には存在しません。どのようなファイルであっても、 のどこかにあります/。Unix/Linux でのディレクトリ区切り文字は であり/、 ではないことに注意してください\

あなたが書いたものを考慮して、C:\を に置き換え/var/www/web_loan、すべてのバックスラッシュ ( \) をスラッシュ ( /)に置き換えます。

答え2

まず、ファイルが存在することを確認します。コマンド プロンプトで次のように入力します。

ls -l /var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php

これにより、ファイルの所有権も表示されます。Apache を実行しているユーザーがこのファイルを読み取ることができることを確認してください。通常、そのユーザーは ですwww-data。そうでない場合は、次のコマンドを実行します。

chown www-data:www-data /var/www/web_loan/xampp/htdocs/cms-includes/init.inc.php

ステートメントに絶対パスを指定してみてくださいrequire:

require_once('/var/www/web_loan/xampp/htdocs/cms-includes/pear.mysql.php');

これが機能する場合は、定数変数が適切に定義されていない可能性があります。

編集: chmod ではなく chown

関連情報