Ведите сессии в БД, к примеру.
Соответственно, количество пользователей онлайн - количество живых сессий (время активности в пределах выбранного значения).
Второй вариант, не самый лучший - инкремент поля на старте сессии, и его декремент на завершение сессии.
Можно придумать другие варианты - тут все зависит от вашей задачи.