Login
Аpache и созданый js файл
11.12.14 21:25
Столкнулся со следующей проблемой: Из нескольких Js файлов при помощи php скрипта создается один js, который записывается в дирикторию с правами 777. Самому файлу задаются права 777.
Теперь проблема: Файл сервером не читается. Фактически он есть, его можно прочитать в едиторе, но для сервера он невидим. Тестировал В XAMPP
Никогда с этим не сталкивался, но могу себе представить, что это не глюк, а какие-то меры предосторожности со стороны апача.
Хотелось бы знать точно что происходит. Почему файл остается невидим?
Теперь проблема: Файл сервером не читается. Фактически он есть, его можно прочитать в едиторе, но для сервера он невидим. Тестировал В XAMPP
Никогда с этим не сталкивался, но могу себе представить, что это не глюк, а какие-то меры предосторожности со стороны апача.
Хотелось бы знать точно что происходит. Почему файл остается невидим?
NEW 12.12.14 18:08
in Antwort denis55555 11.12.14 21:25
возможно такое, что страница отрпавляется раньше, чем создаётся файл и ки моменту подгрузки файла ещё нет? или файл создаётся за пределами htdocs или разрешеённых путей?
или в той папке есть .htaccess блокириющий доступ?
или в той папке есть .htaccess блокириющий доступ?
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 12.12.14 20:15
in Antwort gendy 12.12.14 18:08, Zuletzt geändert 12.12.14 20:27 (denis55555)
Файл уже существует. Тоесть он создается не каждый раз. Файл находится не за пределами htdocs Права на чтение везде 777 .htaccess нет
Еще, что самое интересное... Стоит переименовать файл, как сразу он начинает читаться...
Еще, что самое интересное... Стоит переименовать файл, как сразу он начинает читаться...
NEW 12.12.14 20:48
in Antwort denis55555 12.12.14 20:15
Может file stream остаётся открытым после создания?
fclose() в конце вызывается?
fclose() в конце вызывается?
Создание сайтов, онлайн-магазинов в Германии
NEW 12.12.14 22:28
in Antwort Poiser 12.12.14 20:48
Используется фуинкция file_put_contents и всё. Да, если файл переименовать обратно, то он снова сервером не читается. Именно сервером, в едиторе все замечательно читается.
NEW 12.12.14 22:34
in Antwort denis55555 12.12.14 22:28
NEW 12.12.14 23:48
что за имя? может стоит сразу другое дать...
in Antwort denis55555 12.12.14 20:15
В ответ на:
Стоит переименовать файл, как сразу он начинает читаться
Стоит переименовать файл, как сразу он начинает читаться
что за имя? может стоит сразу другое дать...
Продвижение сайтов, реклама: https://www.pro33.net
NEW 13.12.14 13:14
in Antwort Poiser 12.12.14 22:34
NEW 13.12.14 13:31
in Antwort denis55555 11.12.14 21:25
Кодировка или какие нибудь невидимые символы? (\n, \r)
NEW 13.12.14 15:12
in Antwort Валидол 13.12.14 13:31
Удалось немного ограничить ошибку. Вобщем, если файл создается при помощи плагина джумлы, он почему-то не читается. Если независимым скриптом, причём в тойже директории, то все читается. Ошибка то наверное какая-то глупейшая
NEW 13.12.14 22:34
in Antwort denis55555 13.12.14 15:12, Zuletzt geändert 13.12.14 22:39 (Murr)
Ошибка то наверное какая-то глупейшая
-----
1. fopen(), fwrite(), fflush(), fclose() + плюс понимание того, что fclose() - логическое закрытие файла в программе и отличается от релеза в ОС. Плюс - антивирь...
2. Apache, насколько Я помню, в старых версиях использовал UNIX-соглашение (case sensetive) по именованию файлов.
3. Банальное кеширование Апачем содержания папки в расчете на скорое повторное обращение.
Простой вариант - создать файл с элементарным именем и содержанием, потом проверить *.js и наконец - содержание...
-----
1. fopen(), fwrite(), fflush(), fclose() + плюс понимание того, что fclose() - логическое закрытие файла в программе и отличается от релеза в ОС. Плюс - антивирь...
2. Apache, насколько Я помню, в старых версиях использовал UNIX-соглашение (case sensetive) по именованию файлов.
3. Банальное кеширование Апачем содержания папки в расчете на скорое повторное обращение.
Простой вариант - создать файл с элементарным именем и содержанием, потом проверить *.js и наконец - содержание...
NEW 14.12.14 11:22
in Antwort Murr 13.12.14 22:34, Zuletzt geändert 14.12.14 11:32 (denis55555)
Все тесты ни к чему не привели. Если файл создаётся в плагине джумлы, он сервером не читается. Если самым простым скриптом, всё работает. Я уже сваял 100% функцию со стиранием и перекладыванием файла.... Толку никакого. Вобщем мысли кончились. В логах апача никаких ошибок.
function file_put_contents($filename, $content) {
$temp = tempnam('/tmp', 'temp');
if (!($f = fopen($temp, 'wb'))) {
return false;
}
fwrite($f, $content);
fflush($f);
fclose($f);
if (!rename($temp, $filename)) {
unlink($filename);
rename($temp, $filename);
}
chmod($filename, 01777);
return true;
}
NEW 14.12.14 11:56
in Antwort denis55555 14.12.14 11:22
Странно получать 404 и не иметь в логах сообщений об ошибках. Может быть вы смотрите не в тех файлах?
NEW 14.12.14 12:48
in Antwort Posmotrim 14.12.14 11:56
В аccess_log есть сообщение об ошибке, но такое сообщение я вижу и в окне браузера
NEW 14.12.14 17:36
in Antwort denis55555 14.12.14 12:48
А джумла работает под пользователем отличным от того, под которым вы запускаете другие скрипты? Сделайте простой тест: создайте файл джумлой и скриптом и сравните владельца. А ещё запостите сюда просто результат 'ls -l' для папки, где лежат два файла(созданный джумлой + созданный скриптом)
Кстати, а какие права и кто владелец папки, в которой вы создаёте новый файл?
Кстати, а какие права и кто владелец папки, в которой вы создаёте новый файл?
NEW 14.12.14 20:17
in Antwort Posmotrim 14.12.14 17:36, Zuletzt geändert 14.12.14 20:20 (denis55555)
Джумла работает с теми же правами, что и другие скрипты. Тест делаю локально на XAMPP
drwxrwxrwx 3 slav staff 102 7 Dez 13:58 GZip
drwxrwxrwx 5 slav staff 170 7 Dez 13:58 Minify
-rw-rw-rw- 1 slav staff 44 7 Dez 13:58 _index.html
-rwxrwxrwt 1 daemon staff 317029 14 Dez 20:08 combined.css не читается
-rwxrwxrwt 1 daemon staff 558109 14 Dez 20:08 combined.js не читается
drwxrwxrwx 4 slav staff 136 7 Dez 13:58 language
-rw-rw-rw- 1 slav staff 328 14 Dez 20:08 links.ini
-rw-rw-rw- 1 slav staff 7801 14 Dez 20:07 optimizejscss.php
-rw-rw-rw-@ 1 slav staff 1291 14 Dez 19:55 optimizejscss.xml
-rwxrwxrwt 1 daemon staff 558109 14 Dez 20:09 sozdanyj_skriptom.js читается
-rwxrwxrwx@ 1 slav staff 431 14 Dez 20:04 test.php тестовый скрипт
NEW 14.12.14 20:43
in Antwort denis55555 14.12.14 11:22
Если файл создаётся в плагине джумлы, он сервером не читается.
Если самым простым скриптом, всё работает.
-----
Мысли:
1. Джумла как-то кеширует директрию и добавления просто не видит.
2. fopen()...fclose() в джумле работают не так как везде...
Первое - не знаю - надо глубоко рыть...
По второму - Я бы добавил задержку на полсекунды+ после задания прав...
Такой вопрос - если после отработки скрипта (т.е. после 404) перезагрузить апача он что-то найдет? Проверка на кеширорку...
Если самым простым скриптом, всё работает.
-----
Мысли:
1. Джумла как-то кеширует директрию и добавления просто не видит.
2. fopen()...fclose() в джумле работают не так как везде...
Первое - не знаю - надо глубоко рыть...
По второму - Я бы добавил задержку на полсекунды+ после задания прав...
Такой вопрос - если после отработки скрипта (т.е. после 404) перезагрузить апача он что-то найдет? Проверка на кеширорку...
NEW 14.12.14 20:46
in Antwort Murr 14.12.14 20:43
NEW 14.12.14 21:40
in Antwort denis55555 14.12.14 20:17, Zuletzt geändert 14.12.14 21:51 (Posmotrim)
Правильно ли я понимаю, что в браузере открывается ссылка:
http://localhost/joomla/sozdanyj_skriptom.js
но не открывается с кодом 404 следующая ссылка:
http://localhost/joomla/combined.css
?
Или что вы имеете ввиду под словами "он сервером не читается"?
Добавил: что ещё стоит попробывать:
1) в браузе почистить кэш
2) попробуйте 'wget http://localhost/joomla/combined.css'. тоесть минуя браузер. Тоже 404?
http://localhost/joomla/sozdanyj_skriptom.js
но не открывается с кодом 404 следующая ссылка:
http://localhost/joomla/combined.css
?
Или что вы имеете ввиду под словами "он сервером не читается"?
Добавил: что ещё стоит попробывать:
1) в браузе почистить кэш
2) попробуйте 'wget http://localhost/joomla/combined.css'. тоесть минуя браузер. Тоже 404?