Relapse: Но это всё равно не идеал. В идеале, нужно делать лок до апдейта, или сводить «доступность» только к одному параметру в кэше. В идеале всё должно делаться одним атомарным обменом данными. https://github.com/ronnylt/redlock-php вот что-то.
AxisPod: ещё раз: «блокируем всё, а мир подождет» — решение проблемы из топика. Причём тут innodb? Это детали реализации, можно хоть на локах ОС всё сделать, главное в один поток свести участок с получением/инкрементом данных. Причём тут вообще оракл и «тормоза»? Не нравится Innodb, можно сделать redis.io/commands/GETSET, что будет ровно то же самое о чём я говорил, но закрытое слоем абстракции от Redis. Или по вашему там внутри черная магия и операции сами становятся атомарными и однопоточными?
Relapse: хранить счётчики можно в memcache, redis, там есть функционал блокировок. Итоговая схема должна быть такой: monosnap.com/image/TgCj3fyff2hD9NkbePz4izulYB04Lg
И не важно список там, или нет. Главное как можно быстрее пройти участок с блокировкой.
Если запросов много, можно сделать рядом с миграицей sql-файл сделать file_get_contents и отправить его содержимое в execute.
Вставку/удаление можно исполнять из safeUp/safeDown, изменение схемы лучше просто в up/down (всё равно изменение схемы в транзакции не засунуть).
Модели в Yii издревле создаются через new. Заменить не так-то просто.
Yii связан чуть более, чем полностью. Можете покопаться в стандартных классах фреймворка, получите удовольствие от количества связей, в том числе и неявных.
Наследование сущностей такого вида можно организовать при помощи <i>@MappedSuperclass</i> в котором будут определяться общие атрибуты.
Логику же лучше вынести в сервис который будет уметь работать с нужными моделями, и определять какая сейчас должна быть вызвана. В DataMapper'е, насколько я успел заметить, в сущностях вообще не должно быть логики.
Это взаимодействие между слоями.
Верстка и JS приложение фронтенда – разные слои. Если использовать классы в JS приложении – получается пересечение разных слоев, что вообще плохо пахнет.
Суть в том, что JS приложению должно быть пофиг как выглядит элемент, он должен скорее определять, чем элемент является. data-аттрибуты – идеально решают эту проблему, по идее, но это тот самый «тормозной» биндинг.
После изучения темы, я сделал примерно аналогичные вызовы и отказался от проекта, ибо изменить тип потока заказчик упорно отказывался.
Но за ответ всё равно спасибо :)
А в httpd.conf переменные User\Group заданы верно? Юзер и группа существуют? Хотя с другой стороны, раз 3 сайта работают…
/var/log/httpd/error_log вроде должен быть с логами по умолчанию. Если нет, можно глянуть в httpd.conf, куда установлен вывод.
Что показывает при запуске с ключом -S? vhost'ы показывает, или сразу выдает ошибку?