apache не читает обновленную символическую ссылку - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть символическая ссылка на / var / www / domain.example / web / MY_SYMLINK , указывающая на / var / www / domain.example / web / SOME_FOLDER . Это определяется как корень моего документа для веб-сайта.

Затем я запускаю ln -sfn , чтобы изменить символическую ссылку на что-то вроде / var / www / domain.example / web / NEW_FOLDER . Все идет нормально. Если я запускаю ls -a, можно увидеть, что изменение было применено.

Если я нажму на сервер в http://domain.example,, веб-сайт все еще будет указывать на старую папку. Я знаю, что apache необходимо перезапустить, поэтому я запускаю service apache2 restart , но изменение не выполняется. Я пытался с apache2 остановить / начать, перезагрузить или изящно. Ни один из них не работает.

Обновление символической ссылки применяется только в том случае, если я захожу на панель управления ISPConfig и нажимаю Resync .

Я хочу быть в состоянии выполнить это из командной строки. Кто-нибудь знает, как это сделать?

Ответы [ 4 ]

0 голосов
/ 27 ноября 2018

Частичный ответ (где не посмотреть)

Из того, что вы сказали, я не вижу ничего плохого в том, что вы делаете при создании символической ссылки. Вам не нужно перезапускать Apache.

В конце вопроса есть один бит, который, кажется, никто не заметил. «Обновление символических ссылок применяется только в том случае, если я захожу в панель управления ISPConfig и нажимаю Resync». Этот вопрос не о символических ссылках, а об Apache, а об ISPConfig.

Куда пойти дальше

Вам лучше задать новый вопрос:

Как обновить (повторно синхронизировать) сайт из командной строки, используя ISPConfig

Мой веб-сайт не обновляется, пока я не захожу в панель управления ISPConfig и нажмите Resync. Я хочу быть в состоянии выполнить это из команды линия.

Кто-нибудь знает, как это сделать?

0 голосов
/ 26 ноября 2018

Я почти уверен, что это связано с тем, что у вас PHP работает как FPM.Я работал с подобной настройкой, и процесс развертывания состоял в том, чтобы скопировать исходные коды на сервере и переустановить символическую ссылку, которая была корневым каталогом документа, определенным в файле vhost.И мне пришлось включить перезапуск PHP FPM в конце процесса развертывания, в противном случае сервер продолжал обслуживать старые источники.

Для перезапуска службы PHP FPM наиболее распространенными способами сделать это являются:

sudo service php-fpm restart

или

sudo /etc/init.d/php-fpm restart

Или для других способов, вы можете проверить ответ из этой записи.

0 голосов
/ 26 ноября 2018

Вы запускали его с sudo?Команда не будет принята, если она не запущена с правами администратора.

0 голосов
/ 26 ноября 2018

Убедитесь, что apache запущен

sudo service httpd status

Обратите внимание, что Apache рекомендует использовать в качестве команды apachectl -k, а для systemd команда заменяется на httpd -k

apachectl -k stop or httpd -k stop

Это говорит процессу уничтожить все его потоки и затем выйти

Символическая ссылка должна работать нормально.Вам может понадобиться или нет необходимость добавлять каталог в /etc/apache2/apache2.conf, чтобы apache знал, что ему разрешен доступ к нестандартному каталогу.

Example (note: I do not use the -d option):

doug@s15:/var/www/html$ ln -s /media/newhd/test_web bla2
doug@s15:/var/www/html$ ls -l
total 44
...
lrwxrwxrwx 1 doug doug   21 May 11 22:14 bla2 -> /media/newhd/test_web
...

Выдержка из '/ etc / apache2/acpahe2.conf'

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

<Directory /media/newhd/test_web/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Убедитесь, что все разрешения, включая родителей, в порядке.

...