发布
社区首页 >问答首页 >用php写为apache创建虚拟主机

用php写为apache创建虚拟主机
EN

Stack Overflow用户
提问于 2014-01-17 13:00:00
回答 1查看 461关注 0票数 1

我正在尝试写一个脚本来创建虚拟主机vor apache (亚马逊网络服务上的CentOS 6.4 ),我试过了,简单的写道:

代码语言:javascript
代码运行次数:0
复制
$result = file_put_contents( '/etc/httpd/conf/vhosts/test.conf', 'teststring'); 
var_dump($result);

这是我的权限和所有者信息:

代码语言:javascript
代码运行次数:0
复制
-rw-r--r--. 1 apache apache 34445 Jan 16 11:08 httpd.conf
-rw-r--r--. 1 apache apache 13139 Aug 13 17:30 magic
drwxrwxrwx. 2 apache apache  4096 Jan 17 04:29 vhosts

但我还是收到了这个消息:

代码语言:javascript
代码运行次数:0
复制
Warning: file_put_contents(/etc/httpd/conf/vhosts/test.conf): failed to open stream: Permission denied in /var/www/server-control/src/test.php on line 8 bool(false) 

通过ps aux|grep httpd检查用户

代码语言:javascript
代码运行次数:0
复制
root      9804  0.0  0.0 246372  8712 ?        Ss   03:57   0:00 /usr/sbin/httpd
apache    9808  0.0  0.0 247024  7972 ?        S    03:57   0:00 /usr/sbin/httpd
apache    9809  0.0  0.0 248304  8644 ?        S    03:57   0:00 /usr/sbin/httpd
apache    9810  0.0  0.0 247536  7872 ?        S    03:57   0:00 /usr/sbin/httpd
apache    9811  0.0  0.0 247536  8020 ?        S    03:57   0:00 /usr/sbin/httpd
apache    9812  0.0  0.0 247536  7876 ?        S    03:57   0:00 /usr/sbin/httpd
apache    9813  0.0  0.0 247536  7948 ?        S    03:57   0:00 /usr/sbin/httpd

请帮帮我!!一些我可以通过将所有者更改为apache来写入文件夹服务器,但这台服务器不是。

EN

回答 1

Stack Overflow用户

发布于 2014-01-17 14:40:02

我已经解决了这个问题。运行ls -laZ,这是不同之处:

我的本地用户:

代码语言:javascript
代码运行次数:0
复制
[root@localhost conf]# ls -laZ
drwxr-xr-x apache apache ?                                .
drwxr-xr-x apache apache ?                                ..
-rw-r--r-- apache apache ?                                httpd.conf
-rw-r--r-- apache apache ?                                magic
-rw-r--r-- apache apache ?                                ssl.crt
-rw-r--r-- apache apache ?                                ssl.key
drwxrwxrwx apache apache ?                                vhosts

EC2服务器:

代码语言:javascript
代码运行次数:0
复制
[root@ip-172-31-0-37 conf]# ls -laZ
drwxr-xr-x. apache apache system_u:object_r:httpd_config_t:s0 .
drwxr-xr-x. apache apache system_u:object_r:httpd_config_t:s0 ..
-rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 httpd.conf
-rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 magic
drwxrwxrwx. apache apache unconfined_u:object_r:httpd_config_t:s0 vhosts

这意味着EC2服务器在SELinux permission context

为了解决这个问题,我再次运行了chcon -R --type=httpd_sys_content_t vhostsls -laZ

代码语言:javascript
代码运行次数:0
复制
[root@ip-172-31-0-37 conf]# ls -laZ
drwxr-xr-x. apache apache system_u:object_r:httpd_config_t:s0 .
drwxr-xr-x. apache apache system_u:object_r:httpd_config_t:s0 ..
-rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 httpd.conf
-rw-r--r--. apache apache system_u:object_r:httpd_config_t:s0 magic
drwxrwxrwx. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 vhosts

不同之处在于vhosts目录上的httpd_sys_content_t上下文

现在apache可以写入/etc/httpd/conf/vhosts了。

如果我做错了/理解错了,请纠正我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21178219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档