使用openshift在Apache服务器上设置身份validation

我读了这个http://www.apacheweek.com/features/userauth,并试图在Openshift中完成相同的工作,但我不知道如何。

林使用rhc和我试图通过ssh连接到我的应用程序,但我没有权限使用sudo su所以我不能继续。

例如,当我尝试创build文件nano /usr/local/etc/httpd我不能,因为我没有root权限。

 > ls -la /usr/local/etc total 20 drwxr-xr-x. 2 root root 4096 jun 5 20:58 . drwxr-xr-x. 14 root root 4096 dic 11 2013 .. -rw-r--r--. 1 root root 1807 may 19 15:23 oom-kill-disable.conf -rw-------. 1 root root 1675 may 21 14:51 ops_file_transfer_upload_id_rsa -rw-r-----. 1 root root 399 jun 5 20:58 partitioner_disk_definitions.yaml 

如果我有一个错误的方法,我会很感激你可以指导我。

更新由于@davelopercorey现在build议我使用.htaccess文件

 AuthType Basic AuthName "Authentication" AuthUserFile ${OPENSHIFT_REPO_DIR}.htpasswd Require valid-user 

并添加用户和他的密码

 htpasswd -cb .htpasswd myuser mypass 

正在显示validation提示,但是我的用户和密码没有正确validation。

我已经使用whereis htpasswd以确保即时编写正确的path和问题仍然存在。

如果您使用的是支持.htaccess文件的磁带盒(如python或php),则可以将.htpasswd文件放在文件系统的任何位置。 我建议把它放在你的〜/ app-root / data目录下,然后你可以在你的.htaccess文件中指向它,并根据你放在.htaccess文件中的规则使用你想要的认证文件类型或目录等

最终的解决方案。 感谢@developercorey

在openshift中有一个叫做$ OPENSHIFT_REPO_DIR的环境变量,是你工作目录的路径,例如/var/lib/openshift/myuserlongid/app-root/runtime/repo/

我创建了一个名为SECURE的环境变量来包装文件夹路径。

 rhc set-env SECURE=/var/lib/openshift/myuserlongid/app-root/data --app myappname 

最后我用ssh连接到我的应用程序

 rhc ssh myappname 

并创建.htpasswd文件

 htpasswd -c $SECURE/.htpasswd <username> 

注:htpasswd的-c选项将创建一个新文件,覆盖任何现有的htpasswd文件。 如果您打算将新用户添加到现有的htpasswd文件,只需删除-c选项。

.htaccess文件

 AuthType Basic AuthName "Authentication" AuthUserFile ${SECURE}/.htpasswd Require valid-user 

首先使用ssh连接到服务器:

 rhc ssh yourappname 

然后进入app目录:

 cd ${OPENSHIFT_REPO_DIR} 

运行以下命令,然后复制结果:

 ${OPENSHIFT_REPO_DIR} 

并在这个目录下创建.htaccess文件:

 nano .htaccess 

但在以前复制的文件中替换“/ var / lib / openshift / xxxxxxxxxxxxxxxxxxxxxxxx / app-root / runtime / repo /”,应该在.htaccess文件中:

 AuthType Basic AuthName "Authentication Required" AuthUserFile "/var/lib/openshift/xxxxxxxxxxxxxxxxxxxxxxxx/app-root/runtime/repo/.htpasswd" Require valid-user 

然后创建.htpasswd文件:

 htpasswd -c .htpasswd yourusername 

然后你保存它。

我们可以使用内部的OPENSHIFT_DATA_DIR变量,所以对于〜/ app-root / data / .htpasswd就足够了:

 AuthType Basic AuthName "Authentication" AuthUserFile ${OPENSHIFT_DATA_DIR}/.htpasswd Require valid-user