Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php编写为apache创建虚拟主机_Php_Apache_Permissions - Fatal编程技术网

使用php编写为apache创建虚拟主机

使用php编写为apache创建虚拟主机,php,apache,permissions,Php,Apache,Permissions,我正试图编写一个脚本来创建虚拟主机vor apache(AWS上的CentOS 6.4) 我试过简单的写作: $result = file_put_contents( '/etc/httpd/conf/vhosts/test.conf', 'teststring'); var_dump($result); 这是我的许可和所有者信息: -rw-r--r--. 1 apache apache 34445 Jan 16 11:08 httpd.conf -rw-r--r--. 1 apache a

我正试图编写一个脚本来创建虚拟主机vor apache(AWS上的CentOS 6.4) 我试过简单的写作:

$result = file_put_contents( '/etc/httpd/conf/vhosts/test.conf', 'teststring'); 
var_dump($result);
这是我的许可和所有者信息:

-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
但我还是得到了这个梅萨奇:

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检查用户:

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将某个服务器写入该文件夹,但这台服务器不是。

我已经解决了这个问题。运行
ls-laZ
,这就是区别:

我的本地人:

[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服务器:

[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权限上下文下

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

[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\u sys\u content\t
context

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

如果我做错了什么,请纠正我