`

CentOS中增加apache虚拟主机的配置

阅读更多

修改httpd.conf

打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。

#LoadModule vhost_alias_module modules/mod_vhost_alias.so  

增加虚拟主机配置

<pre name="code" class="html">NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.www.dedecms128.dev
    DocumentRoot "/var/www/html/www.dedecms128.dev"
    ServerName www.dedecms128.dev
    ServerAlias www.dedecms128.dev
    php_admin_value open_basedir "/var/www/html/www.dedecms128.dev/:/tmp/"
    ErrorLog logs/www.dedecms128.dev-error_log
    CustomLog logs/www.dedecms128.dev-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.www.phpcms128.dev
    DocumentRoot "/var/www/html/www.phpcms128.dev"
    ServerName www.phpcms128.dev
    ServerAlias www.phpcms128.dev
    php_admin_value open_basedir "/var/www/html/www.phpcms128.dev/:/tmp/"
    ErrorLog logs/www.phpcms128.dev-error_log
    CustomLog logs/www.phpcms128.dev-access_log common
</VirtualHost>

PHP报错信息[按照上面配置不会遇到此错误]:

[error] [client 192.168.147.1] PHP Warning: include(): Failed opening '../phpcms/base.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/www.phpcms128.dev/install/install.php on line 5, referer: http://www.phpcms128.dev/install/install.php


解决方法如下:

Apache中open_basedir的安全配置

open_basedir = .:/tmp/
这个设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,有效防止php木马跨站运行。

在Apache服务器中,切忌一定要在虚拟主机配置文件中添加以下代码,否则PHP木马脚本可以浏览你服务器上的任意文件,这意味着你的服务器很快会被攻破。


添加代码如下:
php_admin_value open_basedir "/usr/local/apache/htdocs/www/:/tmp/"
注意:把/usr/local/apache/htdocs/www/替换成你自己的网站目录
例如:
编辑虚拟主机配置文件
vi /etc/httpd/conf.d/vhost.conf
在你的网站配置中添加下面的代码
<VirtualHost *:80>
php_admin_value open_basedir "/usr/local/apache/htdocs/www/:/tmp/"
</VirtualHost>
需要注意的是:
因为/etc/httpd/conf.d/vhost.conf中设置了open_basedir之后, 虚拟用户就不会再自动继承php.ini中的open_basedir设置值了,这就难以达到灵活的配置措施, 所以建议您不要在/etc/httpd/conf.d/vhost.conf中设置此项限制。可以在php.ini中设置open_basedir = .:/tmp/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics