Skocz do zawartości
trustnet

ciekawostka programistyczna i CentOS 5.x konta 6.x

Polecane posty

Witam,

 

borykamy się (bardziej w ramach ciekawostki, niż realnego problemu, bo wiemy jak poprawić skrypt) z takim problemem:

 

jest skrypt, który czyta pliki z katalogu i je includuje, skrypt wygląda tak:

 

if( is_dir($dir) ){

if($handle = opendir($dir)) {

while (false !== ($file = readdir($handle))) {

echo $dir .''. $file.'

';

}

closedir($handle);

}

}

 

 

Ten skrypt działa bardzo ładnie na hostingu opartym na cPanelu działającym na CentOS-oe 5.8

Taka sama konfiguracja serwera, też na cPanelu, kompilacja tych samych wersji oprogramowania (apache, php, mysql) ale na CentOS-ie 6.2 powoduje, że wczytuje się tylko 10 pierwszych plików i proces się przerywa. Nie ma żadnych błędów w logach.

 

Jakie macie doświadczenie, z nowym CentOS-em 6.x i co jest w nim takiego, że "nie działa". Może ktoś wie?

 

Wojtek

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, to na 99,9% kwestia CentOS-a. Początkowo problem wykryliśmy na CloudLinuksie. Żeby wyeliminować hacki i blokady CloaudLinuksa postawiliśmy kilka wirtualek na CentOSie.

Kompilacja jest identyczna w każdym przypadku - to jest cPanel, zatem łatwo zrobić powtarzalną kompilację i konfigurację.

Identyczne php, apache, moduły. wersje te same php.ini identyczny. Uprawnienia też są na pewno poprawne.

 

Też mnie to zdziwiło, ale na pewno problem jest w CentOSie 6.x - może ktoś ma hosting na nim - chętnie przetestuję, czy skrypt działa ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

tak, jest, wyłączony:

 

root@michael [/home/wojtek]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

# SELINUXTYPE=targeted

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Odpowiadam sam sobie bo sprawa jest rozwiązana.

 

Różnica w CentOS 5.x a 6.x to system plików. W wersji 5.x było ext3 a w wersji 6.x jest proponowany domyślnie ext4.

 

Funkcja php readdir() wg dokumentacji PHPczyta wg ich kolejności w filesystemie (in the order in which they are stored by the filesystem). Co ciekawe kolejność jest zawsze taka sama (sprawdzane na 4 różnych serwerach) - niezależnie od kolejności wgrywania plików. Druga ciekawostka: na systemie plików ext3 i ext4 kolejność jest stała, ale na każdym z systemów plików inna. Czyli podejrzewam, że ma to coś wspólnego z inodami, ale to już nie wnikam. Tak czy inaczej problem mi się rozwiązał :)

 

Wojtek

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×