Как другие сказали, Вы не должны выполнять веб-сервер как корень. Unfortunatly, неважно, насколько безопасный Ваш сервер или приложения, всегда существует (хороший) шанс, что существует угроза безопасности. Взлом с непривилегированной учетной записью достаточно плох — предоставляющий корневой доступ, смертельно.
При запуске сервера Вы обычно возрастаете для укоренения полномочий с sudo (sudo apache2ctl start
) и затем Apache связывает с указанными портами и затем возвращается для понижения полномочий.
Из-за моего образования Mac и моей любви для удобства чтения, мои сайты расположены в /var/WebServer
. Внутри я имею default
и много других сайтов, работающих как виртуальные хосты.
О Apache широко говорят, и ТОННЫ документации является доступным, лучшим и самым легким, из которых обеспечивается (по-моему), Slicehost (это не VPS конкретный хотя). Я консультировался бы с их статьями, чтобы видеть, как установить Apache быстро и надежно.
Это было бы очень сложно для гарантии правильности, когда параллельные установки происходят - предполагающий, что они совместно используют некоторые файлы. Этому была бы нужна некоторая форма транзакций.
Эти понятия известны от транзакционных баз данных - но тема не тривиальна, и Вы обычно не находите полностью транзакционную инфраструктуру в файловых системах (даже при том, что журналирующие файловые системы обеспечивают часть этого). Одна проблема, который несколько блокировок могут привести к мертвой блокировке - затем Вы должны завести в тупик обнаружение (или оба установщика зависнут навсегда), и способ рассматривать это. Мертвых блокировок можно избежать (например, всегда блокируя файлы в том же порядке), но существуют другие проблемы:
При блокировке всех необходимых файлов впереди Вы получаете эффективно, что Вы имеете: Один установщик должен ожидать до другого закончен. Если Вы не блокируете все необходимые файлы впереди и продолжаете идти, Вы рискуете этим, "транзакция" перестанет работать. Это означало бы, что один из установщиков должен будет быть перезапущен.
Затем Вам, вероятно, придется думать об уровнях изоляции транзакции - чтобы быть полностью корректными, Ваши транзакции должны были бы быть "сериализуемыми" - но это не легко, даже для многих баз данных.
Могут даже быть альтернативные стратегии иметь дело с проблемами, которые обходят полную изоляцию, но обычно было бы еще более трудно доказать их правильность.
Я верю с параллельной установкой, у нас были бы намного более тяжелые проблемы после установки - особенно, потому что я не думаю, поставщик ОС (или распределение) прошел бы всю проблему для создания ее 100% чистый. Таким образом, я предпочел бы не использовать его, даже если бы это предлагалось ОС.
Примечание:
Но возможно то, что Вы действительно, даже хотите не устанавливает "одновременно". Возможно, было бы достаточно, если Вы могли бы стоять в очереди установки, которые затем выполняются один за другим (идеально, не задавая промежуточных вопросов). И это - действительно что-то, некоторая другая ОС (дистрибутивы) обрабатывают намного лучше.
Можно ударить нескольких файлов MSI для установки в быстрой последовательности один за другим с помощью пакетного файла. Вы не можете выполнить два файла MSI одновременно в том смысле, что они оба запись к диску одновременно.
Причина состоит в том, что часть установки MSI выполняется как "транзакция" - последовательность изменений, которые или фиксируются или откатываются в зависимости от того, завершаются ли действия в списке транзакций без ошибки. Все должны завершиться без ошибки, и затем транзакция фиксируется, иначе происходит полный откат всех изменений. Из этого следует, что только одна такая транзакция может быть активной в любой момент времени.
На техническом уровне MSI только действия между стандартными действиями InstallInitialize и InstallFinalize в InstallExecuteSequence выполняются как транзакция. Никакие системные изменения, как не предполагается, происходят вне этих действий, но иногда файлы MSI ошибочно разработаны для внесения изменений в других последовательностях.