linux — использование символической ссылки для использования новой папки в коде PHP

На моем старом сервере я использовал /home/domain папка.

На этом новом сервере я использую /var/www/vhosts/domain

В очень старом скрипте, который состоит из множества файлов PHP, он был использован как /home/domain/public_html/...

Интересно, есть ли способ использовать символическую ссылку или что-то подобное, чтобы использовать эти файлы php, не заменяя каждую строку новым именем папки.

0

Решение

Во-первых, я просто хотел сказать, что жесткие пути для всех файлов не очень хорошая идея. Если вам нужен полный путь, гораздо лучше сохранить корень документа как постоянная и если вам когда-либо понадобится изменить его, вам нужно изменить его только в одном месте. Затем просто сделайте все пути в вашем скрипте относительно корня документа.

Если вы не хотите этого делать, у вас есть несколько других вариантов. К сожалению, символические ссылки, вероятно, не являются одним из них, потому что вы можете столкнуться с ограничениями каталогов, если ваш веб-сервер (например, Apache) не настроен также на обслуживание контента из каталога, на который ссылаются символические ссылки.

Вариант 1: найти и заменить

использование sed найти и заменить все вхождения старого каталога новым. Увидеть: Найти и заменить на sed в каталоге и подкаталогах. Просто убедитесь, что вы делаете резервную копию всех ваших файлов в первую очередь, так как нет «отмены» с sed и вы действительно можете все испортить, если сделаете это неправильно.

Вариант 2. Используйте тот же каталог, что и раньше

Отредактируйте файл конфигурации вашего сайта (например, для Apache на Debian это будет что-то вроде /etc/apache2/sites-enabled/example.com.conf) и изменить DocumentRoot а также <Directory> на старый путь. Затем создайте его, если он не существует, и скопируйте файлы.

Вариант 3: Bind mount (вероятно, не рекомендуется)

Симлинки, вероятно, не будут работать, но что-то похожее на симлинки — это bind mounts. Это в основном монтирование одной части вашей файловой системы в другую ее часть. Что-то в этом просто кричит из-за того, что вы пытаетесь сделать, но я публикую это здесь в основном для интереса на тот случай, если вы захотите дурачиться на своем сервере.

Изменить ваш сервер /etc/fstab и добавьте что-то вроде этого в конец:

/var/www/vhosts/domain/ /home/domain  none rw,bind 0 0

Удостовериться /home/domain на самом деле еще не существует, а затем выполнить mount -a как корень, который должен создать /home/domain для вас с содержимым / var / www / vhosts / domain /.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]