Php скрипт для wildcard домена
Суть скрипта такова: человек заходит открывает в браузере abc.domain.com где abc любой поддомен, ему выдается хтмл код который лежит в базе данных. Человек видит в браузере обычную хтмл страницу.
серверная часть:
Домены будут прикреплены к клаудфларе с включенной опцией wildcard. На сервере стоит CentOS 8. Сервер по сути это впс на 4 ядра и 8 гигов оперативы.
1. Нужно включить поддержку wildcard на стороне сервера, что бы по любому поддомену мог быть выдан ответ.
2. Добавить функцию быстрого добавления такого домена на сервер с уже включенной функцией wildcard. Планируется использовать vestacp в качестве панели управления, но если есть вариант проще, так даже лучше. Исходить из того что добавлятся будут домены по 1-50шт за раз. Либо написать какую-то команду типа add (domain1.com)(domain2.com) -wildcard что бы мог просто вставить свои домены, а потом вбить в консольку впс.
Для справки - wildcard для доменов это когда есть любой возможный сабдомен.
php часть:
1. Идеально было бы если бы это был 1 php файл например index.php на весь домен и для всех поддоменов. Что бы не плодить кучу папок и файлов внутри сервера.
2. Пхп файл понимает по какому домену и по какому поддомену к нему пришли, берет их в переменную, и обращается к базе для взятия данных исходя из переменных субдомена и поддомена.
Пример базы
subdomain | domain | html | kw | check1 | check2 | check3
То есть находит по совпадению сначала сабдомен, потом проверяет домен.
3. При обращении по любой внутреней урле e.g sub.domain.com/anything редиректить на главную саба. Проверять это до любой другой проверки.
4. Если в check1, check2 или check3 пусто то переходит к пункту 9, если нет, то на пункты 5, 6 и 7 соответственно.
5. В случае если в check1 есть что-то, то отправлять на урлу А
6. В случае если в check2 есть что-то, то отправлять на урлу B
7. В случае если в check3 есть что-то, то отправлять на урлу C
8. Урлы A, B и C есть возможность указать в файле скрипта, желательно в самом вверху при открытии для редактирования.
9. Записывает значение true в check 1
10. Берет данные из html и выводит их по ответу 200.
Возможно важные детали:
1. Важно выдавать ответ как можно скорей.
2. В базе в записях о html будет хранится весь код будущей страницы которую надо выдать, скорей всего оно будет весомо в плане количества знаков. Возможно оптимизация какая-то?
3. Создавать отдельную базу под каждый домен трудозатратно, поэтому удобно использовать одну на n количество доменов.
4. К базе могут одновременно обращаться с разных доменов расположенных на одном сервере, сделать так что-бы база не блокировалась для других "потоков", то есть чтобы к ней могли обращаться параллельно-одновременно сразу несколько доменов.
5. Изначально данные для базы буду собирать я сам в один большой .csv файл, есть ли возможность простой конверсии в нужный формат базы данных для быстрой загрузки на сервер?
6. Записей сабдоменов в базе может быть больше миллиона.
Что желаю получить:
1. Каждая строчка в индекс пхп файле (скрипте) откоментирована и описывает что делает. Возможно не каждая, но что бы было понятно на какой строке что делается.
2. прикручиваю n домены к кф, направляю их по А записи на сервер, указываю их на сервере через вестацп или какой-то командой.
3. заливаю базу.
4. заливаю индекс пхп файл в папку домена на сервере (столько раз сколько доменов, по 1 в каждую папку).
5. все начинает работать как описано выше без лишнего пендаля.