На моем старом сервере я использовал /home/domain
папка.
На этом новом сервере я использую /var/www/vhosts/domain
В очень старом скрипте, который состоит из множества файлов PHP, он был использован как /home/domain/public_html/...
Интересно, есть ли способ использовать символическую ссылку или что-то подобное, чтобы использовать эти файлы php, не заменяя каждую строку новым именем папки.
Во-первых, я просто хотел сказать, что жесткие пути для всех файлов не очень хорошая идея. Если вам нужен полный путь, гораздо лучше сохранить корень документа как постоянная и если вам когда-либо понадобится изменить его, вам нужно изменить его только в одном месте. Затем просто сделайте все пути в вашем скрипте относительно корня документа.
Если вы не хотите этого делать, у вас есть несколько других вариантов. К сожалению, символические ссылки, вероятно, не являются одним из них, потому что вы можете столкнуться с ограничениями каталогов, если ваш веб-сервер (например, Apache) не настроен также на обслуживание контента из каталога, на который ссылаются символические ссылки.
использование sed
найти и заменить все вхождения старого каталога новым. Увидеть: Найти и заменить на sed в каталоге и подкаталогах. Просто убедитесь, что вы делаете резервную копию всех ваших файлов в первую очередь, так как нет «отмены» с sed
и вы действительно можете все испортить, если сделаете это неправильно.
Отредактируйте файл конфигурации вашего сайта (например, для Apache на Debian это будет что-то вроде /etc/apache2/sites-enabled/example.com.conf
) и изменить DocumentRoot
а также <Directory>
на старый путь. Затем создайте его, если он не существует, и скопируйте файлы.
Симлинки, вероятно, не будут работать, но что-то похожее на симлинки — это 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 /.
Других решений пока нет …