PHP comportamento louco na montagem

0

Eu tenho uma montagem na minha máquina windows em uma máquina linux. Quando eu tento executar qualquer script php lá, ele diz que não foi encontrado, no entanto, quando eu copio os arquivos para o armazenamento local que ele roda sem problemas. Eu tentei montar usando exec, opções de rw nada muda esse comportamento.

Estou quebrando alguma regra de segurança obscura no php?

$mount -o defaults,umask=777,uid=1000,gid=1000,rw,exec,username=USER,password=PASS //192.168.1.65/D /mnt/z3n-i7
$cd /mnt/z3n-i7/script
$php x.php
$PHP Fatal error:  Unknown: Failed opening required 'x.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
$cp x.php ~/x.php;cd ~;
$php x.php
SUCCESS

-

Strace:

getcwd("/mnt/z3n-i7/.httpd/~scripts/pv/pv-linux", 4096) = 49
time(NULL)                              = 1339177164
lstat64("/mnt/z3n-i7/.httpd/~scripts/pv/pv-linux/pv.php", {st_mode=S_IFREG|0755, st_size=796, ...}) = 0
lstat64("/mnt/z3n-i7/.httpd/~scripts/pv/pv-linux", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/mnt/z3n-i7/.httpd/~scripts/pv", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/mnt/z3n-i7/.httpd/~scripts", {st_mode=S_IFDIR|0755, st_size=81920, ...}) = 0
lstat64("/mnt/z3n-i7/.httpd", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/mnt/z3n-i7", {st_mode=S_IFDIR|0755, st_size=49152, ...}) = 0
lstat64("/mnt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0xbfc71038) = -1 ENOTTY (Inappropriate ioctl for device)
fstat64(3, {st_mode=S_IFREG|0755, st_size=796, ...}) = 0
write(2, "PHP Fatal error:  Unknown: Faile"..., 131) = 131

Acho que este é o problema: ioctl inadequado para o dispositivo?

    
por Rodrigo 08.06.2012 / 17:13

2 respostas

1

Depois de algumas pesquisas eu descobri que este é um bug php ao acessar um sistema de arquivos hospedado em um sistema operacional de 64 bits. Não há nenhuma correção para isso, de acordo com link , então montei meu compartilhamento de janelas de 64 bits em um 32 -bit máquina linux e compartilhou o compartilhamento montado e funcionou!

Obrigado pela ajuda mesmo assim.

    
por 08.06.2012 / 20:45
1

Adicione a opção 'noserverino' e o problema está resolvido.

exemplo:

mount -o defaults,umask=777,uid=1000,gid=1000,rw,exec,username=USER,password=PASS,noserverino //192.168.1.65/D /mnt/z3n-i7
    
por 03.04.2013 / 14:12