Neden benim Linux sunucu üzerinde çalışmaz (.. / X.php) içerir?

3 Cevap php

Benim Xampp ben yapabilirim:

require_once('../myFile.php');

Ve çalışır.

Ben require_oncenin yapmak dosyayı yüklediğinizde, çalışmıyor.

İşte sunucuda hatadır:

Warning: require_once(../myFile.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/public_html/yyyy/testinclude.php on line 11

Fatal error: require_once() [function.require]: Failed opening required '../myFile.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/xxx/public_html/yyyy/testinclude.php on line 11

Herhangi bir fikir?

3 Cevap

Onun değil çalışma neden olası nedenlerinden biri, dosya gövdesi tam olarak aynı değildir olmasıdır.

UNIX dosya yolları harf duyarlıdır. Bu WIN durum değildir. Eğer dahil Yani, ../myFile.php, dosya adı olmalıdır myFile.php, değil myfile.php.


Ayrıca, include zaman current path göre dosyaları dahil. Bu iki dosya düşünün.

/home/xxx/public_html/first.php

<?php include('dir/second.php'); ?>

/home/xxx/public_html/dir/second.php

<?php include('third.php'); ?>

Çalıştırırken first.php, ikinci dosya include /home/xxx/public_html/third.php. Olacak

Çalıştırırken dir/second.php, doğrudan, bu dahil /home/xxx/public_html/dir/third.php. Doyurmaya

Sizin her zaman geçerli dosyaya göre olması gerekir eklerseniz, aşağıdaki kullanın:

include(dirname(__FILE__) . '/third.php');

Yukarıdaki kod parçası kullanılarak, dir/second.php her zaman /home/xxx/public_html/dir/third.php bakılmaksızın geçerli dizinin içerecektir.

myFile.php dizininde yoksa public_html, sonra bu iş olmaz.

Eğer, require_once('./myFile.php') denemek gibi aynı dizinde bakmak istiyorsanız

Nerede testinclude.php dosya için myFile.php dosya görecelidir?

Eğer içinde gerektiren konum ../ ve myFile.php testinclude.php (yani in /home/xxx/public_html/) daha yüksek bir düzey olması gerekir