apache不阅读更新的符号链接

时间:2018-11-18 17:26:44

标签: apache symlink ispconfig

我在 /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的控制面板并单击重新同步时,才会应用符号链接更新。

我想能够从命令行执行此操作。有人知道怎么做吗?

4 个答案:

答案 0 :(得分:1)

我非常确定这与PHP以FPM运行的事实有关。我已经使用了类似的设置,并且部署过程是在服务器上复制源并重置符号链接,该符号链接是vhost文件中定义的文档根目录。而且我必须在部署过程结束时包括重新启动PHP FPM,否则服务器将继续为旧资源提供服务。

要重新启动PHP FPM服务,最常用的方法是:

sudo service php-fpm restart

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

或者通过其他方式,您可以查看this帖子中的答案。

答案 1 :(得分:0)

检查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>

确保包括父母在内的所有权限都按顺序排列。

答案 2 :(得分:0)

您是否使用sudo运行它?除非以管理员权限运行,否则不会使用该命令。

答案 3 :(得分:0)

部分答案(不要看)

根据您的发言,我发现您在创建符号链接时所做的工作没有错。您不必重新启动Apache。

这个问题的结尾有些隐瞒,似乎没有人注意到。 “仅当我转到ISPConfig的控制面板并单击Resync时,才会应用symlink更新。”此问题与符号链接无关,与Apache有关,而与ISPConfig有关。

下一步去哪里

您最好提出一个新问题:

  

如何使用ISPConfig从命令行更新(重新同步)网站

     

我的网站只有在进入ISPConfig的控制面板后才会更新   然后点击重新同步。我希望能够从命令执行此操作   线。

     

有人知道怎么做吗?