Я пытаюсь написать систему вознаграждения, в которой пользователям будут начисляться баллы, если они загрузят полные файлы. Итак, каким должен быть формат моего журнала.
После большого количества поисков я понял, что это мой первый раз, и раньше я не делал пользовательских журналов.
Прежде всего какой файл мне отредактировать для пользовательских журналов, потому что я не могу найти эту вещь. Я использую сервер ubuntu с установкой apache, php5 и mysql по умолчанию
# I use this commands and they work fine
nano /etc/apache2/apache2.conf
/etc/init.d/apache2 restart
Я думаю, это то, что мне нужно сделать для моей цели
LogLevel notice
LogFormat "%f %u %x %o" rewards
CustomLog /var/www/logs/rewards_log rewards
Это как команда или чего-то не хватает? и есть ли какое-то конкретное место, куда мне нужно это добавить?
и вот еще %o
предназначен для файла, который был отправлен, и можно ли регистрировать только файлы из определенного каталога? или для файлов размером более 10 МБ.
Спасибо.
Документы сервера Apache - ваш друг: http://httpd.apache.org/docs/2.1/mod/mod_log_config.html#customlog
Записи CustomLog находятся либо в глобальной области, либо в виртуальных хостах. В Ubuntu у вас должны быть каталоги sites-available и sites-enabled. Если вы не используете виртуальные хосты, это должно быть в файле / etc / apache2 / sites-availabe / default.
Насколько я могу судить, вы не можете создавать собственные журналы для каждого каталога, но это не должно быть слишком сложно сделать с тем, что вы используете для анализа журналов apache.
Задумывались ли вы об использовании веб-платформы для обработки загрузок, а также регистрации этих загрузок в базе данных? Для этого Apache кажется громоздким.
Вот пример в Майна но вы можете сделать что-то подобное в PHP, ColdFusion и т. д .:
пример ссылки:
<a href="/myna/download.sjs?f=somefile.pdf">
Страница download.sjs:
// assumes a table a called "downloads" in the database "my_app"
// also assumes that the user has authenticated and has auth cookie
var downloads = new Myna.DataManager("my_app").getManager("downloads")
//clean the filename
var filename = $req.rawData.f.replace(/\.\.\//g,"");
//get the data...should really check for failure here
var data = new Myna.File("file:/var/files/" + filename).readBinary();
//log the download to the DB
downloads.create({
userid:$cookie.getAuthUserId(),
filename:f,
ts:new Date()
})
//send the binary data to the browser
$res.prinBinary(data,"application/octet-stream",filename);