我在 /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的控制面板并单击重新同步时,才会应用符号链接更新。
我想能够从命令行执行此操作。有人知道怎么做吗?
答案 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的控制面板后才会更新 然后点击重新同步。我希望能够从命令执行此操作 线。
有人知道怎么做吗?