Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >用php写为apache创建虚拟主机

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

Stack Overflow用户
提问于 2014-01-17 05: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 06: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

复制
相关文章
Apache和PHP结合,Apache默认虚拟主机
Apache和PHP结合:       虽然我们已经安装了mysql apache php但是我们一直没有把这些服务全部整合到一起组成咱们的LAMP。现在我们就开始: 1. httpd主配置文件:  
叶瑾
2018/06/14
3K0
Apache和PHP结合,Apache默认虚拟主机
LAMP我们都安装好了,但是现在在浏览器访问apache的话还不能解析php脚本,所以这会需要配置apache让apache能够解析php脚本:
端碗吹水
2020/09/23
2.8K0
Apache和PHP结合,Apache默认虚拟主机
Apache和PHP的结合、虚拟主机 原
Apache(httpd)的配置文件:/usr/local/apache2.4/conf/httpd.conf。
阿dai学长
2019/04/03
2.2K0
Apache 虚拟主机
默认情况下,一个web服务器软件只能定义一个默认网站,也就是说只能发布一个WEB站点,对于大网站还可以,有海量用户来消耗服务器的资源,但是小网站呢?一个服务器上只跑一个小网站,服务器资源使用约等于0,那就尴尬了。为了充分利用服务器资源,现实生产环境中一般都是采用一个WEB服务器软件发布多个站点。如何解决这个问题呢?那就是配置虚拟主机!
星哥玩云
2022/09/15
14.2K0
Apache配置虚拟主机_apache中配置虚拟主机的作用
修改Apache的虚拟主机配置文件 httpd-vhosts.conf,在文件的最后加上如下的代码:
全栈程序员站长
2022/10/01
7.8K0
apache虚拟主机配置
Apache是一种流行的Web服务器,它允许您在同一物理服务器上运行多个网站。通过配置虚拟主机,可以为每个网站提供独立的Web根目录和配置文件,从而实现多个网站在同一服务器上运行的能力。在本文中,我们将讨论如何在Apache中配置虚拟主机。
玖叁叁
2023/04/10
28.6K1
为Apache创建自签名SSL证书
TLS/SSL是用于将正常流量包装在受保护的加密包装中的Web协议。得益于此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还可以帮助用户验证他们正在连接的站点的身份。
编程男孩
2018/07/26
6.5K0
为Apache创建自签名SSL证书
Apache默认虚拟主机
Apache默认虚拟主机 : 什么是虚拟主机?当你的一台服务器上面运行多个多个网站,每个网站都是一个虚拟主机! 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机 vim /usr/local/apache2.4/conf/httpd.conf //搜索httpd-vhost,去掉# 创建自定义站点 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //改为如下定义多个server name <VirtualHost *:80>
老七Linux
2018/05/09
6K0
Apache虚拟主机-3
192.168.124.222    www.abc.com     /var/www/abc
py3study
2020/01/14
7000
linux学习第三十八篇: Apache和PHP结合,Apache默认虚拟主机
ctrl+r 可以通过输入相关命令查找你使用过的命令 Apache和PHP结合 httpd主配置文件: /usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方 ServerName –>去掉一个注释,看下图 Require all denied –>Require all granted AddType application/x-httpd-php .php Di
用户1215343
2018/02/05
1.2K0
linux学习第三十八篇: Apache和PHP结合,Apache默认虚拟主机
11.16/11.17 Apache默认虚拟主机
httpd的默认虚拟主机目录概要 一台服务器可以访问多个网站,每个网站都是一个虚拟主机 概念:域名(主机名)、DNS、解析域名、hosts 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机 vim /usr/local/apache2/conf/httpd.conf //搜索httpd-vhost,去掉# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //改为如下 <VirtualHost *:80> ServerAdmin admi
运维小白
2018/02/06
1.2K0
11.16/11.17 Apache默认虚拟主机
用C语言写PHP扩展
在home目录,也可以其他任意目录,写一个文件,例如caleng_module.def
Java架构师必看
2021/03/22
3.6K0
用C语言写PHP扩展
Apache虚拟主机-解惑篇
    有很多平时喜欢钻研的童鞋会发现,为什么有时候自己访问某XXse网站时,总是更新IP地址,内容却与以前一样。这个时候就要了解虚拟主机的概念了。了解这个概念,能够帮助运维同学,更内涵的隐藏自己的主机,或者让一台apache支持多个网站的共同运营。 参考资料: 1 http://httpd.apache.org/docs/2.2/ 2《Apache cookbook》 虚拟主机寻址方式 IP地址方式:每台虚拟主机都有其唯一的IP地址 名称寻址方式:多台虚拟主机会以不同的名称在同
用户1154259
2018/01/17
1.3K0
apache 虚拟主机的配置
由于项目的需要,开始学习php,开始就把我跟憋住了,配置虚拟主机,看网上的配置,跟着一步一步的走,总是不通,原来呢,是没有使用虚拟主机配置是成功。我就想着,得,从新开始配,把原来的httpd.conf给废掉,从新配置,还是报forbidden错误,访问受限,我就开始一点一点的修改访问权限。步骤如下:
用户5640963
2019/07/26
2.2K0
apache 的虚拟主机功能
将 AllowOverride None 改为 AllowOverride All 【URL重写】
很酷的站长
2023/02/02
1.3K0
apache 的虚拟主机功能
Apache配置虚拟主机实例
服务器租用后,安装Apache程序,如果是配置Apache虚拟主机,可以参考下面的教程。
会长君
2023/04/26
8860
apache 虚拟主机如何配置[通俗易懂]
apache 虚拟主机如何配置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 apache虚拟主机就是在apache服务器上配置多个虚拟主机,从而让一个服务器提供多站点的服务实现。通俗来说,就是对同一个服务器上的不同目录进行访问。 Apache基于名字的虚拟主机设置 这种方式,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可,NameVirtualHost 111.222.33.44;在这个IP地址接收虚拟主机的服务 ServerName www.company1.com DocumentRoot /www/company1 ServerNamewww.company2.comDocumentRoot/www/company2 优点:只要一个IP地址就可以提供大量的虚拟主机服务。 缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动 Apache 进程才能起作用。因此不适合进行大规模的虚拟空间服务。 Apache基于IP地址的虚拟主机设置 首先要在服务器上为每个虚拟主机单独设置一个IP地址。这些IP地址可以通过增加多个网卡或者在一个网卡上设立多个IP地址来完成。有了多个IP地址后,可以采用以下两种方式来设置Apache。 1、为每个网站空间运行一份Apache采用这种方式,每一份Apache程序可以以单独的用户运行,因此各个虚拟主机之间互不影响。设置这种虚拟主机时,只要为每一份Apache设置一套配置文件就可以了,必须使用“Listen”语句,强制每一份Apache仅仅在属于“自己”的IP地址上接收服务请求。 优点:各个虚拟主机之间互不干扰,安全性高。缺点:占用系统资源较多。 2、多个虚拟主机共享同一份 Apache,因此各个虚拟主机之间有一定的影响,尤其是执行CGI程序时,可能会带来一些严重的安全问题。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可 DocumentRoot /home/company1。 优点:占用系统资源比上一种方式少。缺点:安全性低,每个虚拟主机仍然需要占用一个 IP 地址。 当用户对安全性要求较高时,可以使用基于IP地址的虚拟主机方式,并且每一个虚拟主机由单独的Apache进程进行服务。其他情况下,可以根据实际要求来设置虚拟主机服务。 对于SD-WAN虚拟游戏专网来说,只需将需要加速的游戏送入接近其游戏服务器的节点就可以完成游戏的加速和优化。
全栈程序员站长
2022/09/28
1.8K0
apache 虚拟主机如何配置[通俗易懂]
apache 虚拟主机配置详解_如何配置虚拟主机
1,Include conf/extra/httpd-vhosts.conf,去掉注释;
全栈程序员站长
2022/09/29
13.6K0
apache 虚拟主机配置详解_linux 配置虚拟主机
​ httpd.conf是Apache的主配文件,整个Apache也不过就是这个配置文件,里面几乎包含了所有的配置。有的distribution都将这个文件拆分成数个小文件分别管理不同的参数。但是主要配置文件还是以这个文件为主。只要找到这个文件名就知道如何设置了。后面会详细解释Apache主配文件的每一行配置
全栈程序员站长
2022/10/01
5K0
apache 虚拟主机配置详解_linux 配置虚拟主机
Apache配置虚拟主机_apache启动但是访问不到
本今天电脑重新安装了一下apache,结果配置好虚拟域名之后,却一直无法访问;localhost 一直是显示it works 状态;配置好了虚拟域名之后,输入任何配置的域名也都是显示 it works状态;而通过127.0.0.1是可以看到文件目录的; 经过再三检查,最后发现问题是在httpd_conf 文件上,只需要注释掉ServerName localhost:80 即可!
全栈程序员站长
2022/10/02
1.6K0

相似问题

为Apache MAMP创建虚拟主机

10

用php写Apache access_log文件

32

创建apache虚拟主机

16

为apache添加虚拟主机

32

如何创建Apache虚拟主机?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档