Ваш план для одного приложения, которое обслуживает все сайты, будет довольно трудоемким и лот работы. Это не означает, что это невозможно (многие корпоративные CMS, включая Sharepoint, позволяют запускать «виртуальные сайты» и т. Д. Из одной установки).
Вам нужно будет много заниматься планированием и проектированием, особенно в области безопасности, чтобы убедиться, что отдельные сайты работают изолированно. Я предполагаю, что каждый сайт будет иметь свою собственную учетную запись (и) - вам придется проделать большую работу, чтобы пользователи не могли случайно (или по ошибке) начать редактирование другого сайта.
И вы вправе подумать о техническом обслуживании - если у вас все сайты работают под одним приложением и, следовательно, под одной базой данных, эта база данных станет большой и грязной, очень быстро. Это также становится единственной точкой отказа.
Лучшим планом было бы разработать автономное решение (для одного веб-сайта), которое затем можно запускать из своего собственного каталога с собственной базой данных и собственным набором учетных записей. Он будет значительно меньше (с точки зрения как кода, так и базы данных) и, следовательно, вероятно, будет работать намного лучше. Повседневное обслуживание будет проще (восстановить веб-сайт из резервной копии), но обновления программного обеспечения (для добавления новой функции) будут немного сложнее, хотя, поскольку это PHP, это просто загрузка файлов и исправления SQL, поэтому вы можете автоматизировать это с легкостью.
С точки зрения доменов: если вы выбрали подход «отдельное приложение» (по одному на веб-сайт), вы можете использовать функцию Apache Dynamic Virtual Hosts , которая эффективно отображает URL-адрес файловой системы (например, веб-сайт). mydomain.com может быть переведен для автоматического удаления из / home / vhosts / com / mydomain / website): таким образом, развертывание нового веб-сайта будет простым копированием файлов в правильный каталог, созданием базы данных и обновлением конфигурации. файл, который можно легко автоматизировать.
Если пользователи хотят использовать свои собственные URL-адреса, то они должны сначала обновить свой DNS, чтобы он указывал на ваш сервер, а во-вторых, вам нужно настроить хост Apache для этого домена, что, вероятно, потребует перезапуска apache и, таким образом, повлияет на все другие пользователи.