9

我在/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

4 回答 4

3

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

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

sudo service php-fpm restart

或者

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

或者对于其他方式,您可以查看这篇文章的答案。

于 2018-11-26T11:13:51.090 回答
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>

确保所有权限,包括父母,都是有序的。

于 2018-11-26T09:48:53.630 回答
0

部分答案(不看的地方)

从您所说的来看,我认为您在创建符号链接时所做的事情没有任何问题。您不必重新启动 Apache。

在这个问题的结尾,似乎没有人注意到这一点。“只有当我进入 ISPConfig 的控制面板并点击重新同步时,才会应用符号链接更新。” 这个问题与符号链接无关,与 Apache 无关,与 ISPConfig 有关。

下一步去哪里

你最好问一个新问题:

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

在我进入 ISPConfig 的控制面板并点击重新同步之前,我的网站不会更新。我希望能够从命令行执行此操作。

有人知道该怎么做吗?

于 2018-11-27T19:09:18.170 回答
0

你用它运行了sudo吗?除非以管理员权限运行,否则它不会接受命令。

于 2018-11-26T14:25:25.523 回答