ウィンドウ上で完璧に動作する 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