我在 openSUSE 13.1 上运行 Apache 2.4.6,我想做一些 Web 开发,主要是 php 脚本。因此,我为 php 开发人员安装了 eclipse mars。我将 HTML 和 php 文件放在正确的目录中,如这说明,即/srv/www/htdocs/
确实是过程并且正确,例如,如果我将 newfile.php 放在该文件夹中,我会得到正确的输出localhost/newfile.php
。现在的问题是服务器无法访问工作区中的文件。到目前为止,我已经尝试了几种方法:
从
/srv/www/htdocs/
到 的符号链接/path/to/workspace/
。这会将服务器的输出从“404 未找到对象”更改为“403 拒绝访问”,尽管我从 开始授予了完全访问权限/
。通过编辑 httpd.conf 授予对目录的访问权限,例如
<Directory "/path/to/workspace/"> Require all granted <Directory>
使用路径映射在 Eclipse 中设置服务器。
在 中放置一个新的工作区
/srv/www/htdocs/
。但是当我想访问 中的文件时,localhost/workspace/file.php
我收到“404 未找到对象”
然而,没有任何东西显示出预期的效果。由于我只需要出于开发目的的访问权限,并且网络受到外部保护,因此即使是变通方法对我来说也是可以接受的,尽管当然,更正确的方法会更好。
编辑:解决方案
导致问题的原因很简单,但也很致命。openSUSE 防火墙阻止了端口 80。现在将 eclipse 工作区转移到 的解决方案/srv/www/htdocs/
正在起作用。
答案1
做你想做的事的正确方法几乎总是使用某种部署阶段。
对于纯粹的内部或实验性设置,这可以是像运行脚本一样简单的东西rsync -a --delete ./* /srv/www/htdocs
。(使用 ./* 指定源文件可降低在复制过程中因不寻常的文件名而导致问题的风险。)
然后,如果需要,您可以修改部署脚本以进行进一步的更改,例如:对配置文件进行任何适用的更改,设置文件和目录的所有权和权限,删除不应该提供给 Web 服务器的内容(.gitignore
有人吗?)等。
这样,就可以配置 Web 服务器,而不必特别考虑开发方的需求。让 Eclipse 按照自己的方式运行,让 Apache 按照自己的方式运行。
如果您想要一站式解决方案工作流程,那么在“构建”软件时配置 Eclipse 来运行这样的脚本应该不会太难。