新服务器的Apache Rewrite问题

新装了一台服务器(CentOS 7.3, Apache 2.4.6, PHP 7.1.6),迁移网站应用到上面,网站文件都放在 /var/www/目录下。访问时候发现如下问题:

采用ThinkPHP开发的A应用,可以通过 http://www.a.com/index.php/Home/Abc/def 来访问

但不能通过 http://www.a.com/Home/Abc/def 来访问

也就是访问地址中没法省略掉index.php。一开始把PathInfo 和Rewrite搞混淆了,以为是前者的问题。

后来发现其实这明显是 Rewrite的问题,因为虽然ThinkPHP代码根目录下面默认有.htaccess文件,但服务器的配置有可能禁止站点自行配置。从以上症状来看正是Rewrite规则根本没起作用。

最后找到开关其实在这里:

找到apache配置文件:/etc/httpd/conf/httpd.conf

找到 对应目录的配置处,修改 AllowOverride All:

<Directory “/var/www”>
AllowOverride All
</Directory>

JHipster项目集成Gitlab CI自动测试遇到的错误

使用 JHipster 生成的项目用 gitlab CI 做自动测试、发布。根据jhipster官方文档进行了操作,在项目根目录下生成了.gitlab-ci.yml文件,同时根据 Gitlab 文档,在一台 Windows Server 2008 环境下安装了Runner。安装过程中配置了私有Gitlab地址,runner的token,也配置了Executor为shell。安装好Runner后发现runner已经能够自动去运行了,不过gitlab中看到build遇到了个错误,maven build 报错,具体为执行.gitlab-ci.yml中这一句:export MAVEN_USER_HOME=`pwd`/.maven的时候,报错,输出信息是乱码,状态码是9009。研究后解决了,发现官方文档少了个提示,runner如果跑在windows 平台,且executor选 shell 的话,应在gitlab-runner根目录下的config.toml 中设置 shell=’powershell’,不然会报错。应该是 export MAVEN_USER_HOME=`pwd`/.maven 的时候,取不到 `pwd` 的值的问题。可以参考有人遇到过类似问题:http://www.cnblogs.com/xishuai/p/gitlab-ci.html