Я использую nginx 1.3.8 внутри виртуальной машины centos 6.3 virtualbox 4.2.4. В системе установлено последнее программное обеспечение, доступное через yum update. Операционная система хоста - Windows 7. Файлы сайта, которые обслуживает nginx, находятся на смонтированном разделе samba, который является папкой в хост-системе Windows.
То есть внутри linux пути nginx относятся к / home / vhosts, и он монтируется из D: \ vhosts \ в Windows. Раздел samba смонтирован как root с привилегиями 777. / etc / fstab выглядит так, но с реальным ip, именем пользователя и паролем:
//hostip/vhosts /home/vhosts cifs username=username,password=SECRETPASSWORD,uid=root,gid=root,file_mode=0777,dir_mode=0777,rw,_netdev 0 0
Т.е. linux / nginx читает из общего ресурса Windows, а не наоборот.
в /etc/samba/smb.conf я попытался отключить все функции блокировки самбы, но, похоже, это не действует даже после перезагрузки виртуальной машины.
locking=no
share modes=no
oplocks = no
level2 oplocks = no
kernel oplocks =no
Я получаю сообщение об ошибке «Доступ запрещен» в Windows или Linux при попытке перезаписать файл javascript в Windows, к которому хотя бы один раз осуществлялся доступ с помощью nginx.
Если я запускаю «service nginx reload», блокировка снимается, и я могу сохранить файл. Вот почему я думаю, что блокировку вызывает nginx.
Та же проблема возникает с каталогами. Однако это может быть другой вопрос, не связанный с использованием самбы.
Я использую самбу, чтобы управлять исходным кодом вне виртуальной машины.
Также обратите внимание, что после запуска «service nginx reload» файл, который я редактирую, фактически автоматически удаляется с хоста Windows.
РЕШЕНО: я только что просмотрел свой файл nginx.conf. Похоже, что функция "open_file_cache" является причиной блокировки и удаления файлов. Когда я установил для этой опции значение open_file_cache off;, моя проблема решена. Я сделаю репост в качестве ответа, когда это позволит мне сделать это.
РЕШЕНО: я только что просмотрел свой файл nginx.conf. Похоже, что функция "open_file_cache" является причиной блокировки и удаления файлов. Когда я установил для этой опции значение open_file_cache off;, моя проблема решена.
Разработчики nginx также закрыли мой отчет об ошибке, сказав, что мне не следует использовать open_file_cache, если я хочу редактировать файлы в Windows. Они не считают это ошибкой.