如何在Linux系统环境下安装DedeCMS站点及安全设置

L
L

发布于 2017-12-22 14:23

426 浏览
0 评论

    Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码,这是其他的操作系统所做不到的,正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

    

    随着Linux服务器应用范围越来越广泛,国内很多站长也开始使用它作为自己的Web服务器,所以,今天马海祥就来介绍一下如何在Linux系统环境下安装DedeCMS站点及安全设置。

    

    一、在Linux系统环境下安装DedeCMS及安全设置

    

    Linux内置了很丰富的免费网络服务器软件、数据库和网页的开发工具,如Apache、Sendmail、VSFtp、SSH、MySQL、PHP和JSP等。

    

    1、安装准备

    

    ·Linux(Ubuntu)

    

    ·Apache2

    

    ·MySQL5

    

    ·PHP5.3

    

    服务器需要具备以上几个基本环境,一般Linux的Web操作系统都会默认安装这些组件,当然您也可以自己去安装,具体的安装方法可以通过在线的一些文档获取,这里就不进行深入。

    

    2、下载解压DedeCMS最新版

    

    通过织梦官网下载DedeCMS最新版,一般下载包为DedeCMS****.tar.gz格式,Linux下可以使用命令行:

    

    tar -zxvf DedeCMS-****.tar.gz

    

    将解压后的uploads目录上传到站点根目录,我们这里系统站点根目录为:/var/dedecms/

    

    3、安装DedeCMS

    

    访问http://我的站点/install,点击确认进入服务器环境监察,我们可以看到服务器情况,如图:

    

    这里我们发现几个目录没有可写入权限,我们需要给这个目录分为权限。

    

    首先需要给站点目录绑定apache服务的用户,使用命令行:

    

    sudo chown -R www-data /var/dedecms/

    

    这样给站点目录指定权限用户为www-data

    

    我们这里需要给几个无需写入权限的目录去除写入权限,分别输入:

    

    sudo chmod -R 755 /var/dedecms/data/

    

    sudo chmod -R 755 /var/dedecms/html/

    

    sudo chmod -R 755 /var/dedecms/uploads/

    

    sudo chmod -R 555 /var/dedecms/include/

    

    sudo chmod -R 555 /var/dedecms/install/

    

    sudo chmod -R 555 /var/dedecms/dede/

    

    sudo chmod -R 555 /var/dedecms/plus/

    

    sudo chmod -R 555 /var/dedecms/images/

    

    sudo chmod -R 555 /var/dedecms/member/

    

    sudo chmod -R 555 /var/dedecms/special/

    

    sudo chmod -R 555 /var/dedecms/templets/

    

    sudo chmod 555 /var/dedecms/index.php

    

    sudo chmod 555 /var/dedecms/tags.php

    

    这样我们继续执行下一步(如图)。

    

    4、设定执行权限

    

    我们可以给DedeCMS几个目录关闭可执行权限,这里的可执行是指在Apache中无法运行php脚本,那我们则可以在Apache目录配置中做如下的设置(虚拟机可设置.htaccess)

    

    <VirtualHost *:80>

    

    ...

    

    <Directory /var/dedecms/uploads/>

    

    php_admin_flag engine off

    

    </Directory>

    

    <Directory /var/dedecms/data/>

    

    php_admin_flag engine off

    

    </Directory>

    

    <Directory /var/dedecms/html/>

    

    php_admin_flag engine off

    

    </Directory>

    

    <Directory /var/dedecms/templets/>

    

    php_admin_flag engine off

    

    </Directory>

    

    <Directory /var/dedecms/images/>

    

    php_admin_flag engine off

    

    </Directory>

    

    </VirtualHost>

    

    因为我们这里是PHP5,所以可以按照上面的方法设置,如果是老版本的PHP,那就只能通过:

    

    <Directory "/var/dedecms/uploads/">

    

    <Files ~ ".php">

    

    Order allow,deny

    

    Deny from all

    

    </Files>

    

    </Directory>

    

    来设定。

    

    5、完成安装

    

    至此我们已经完成了DedeCMS的安装和配置。

    

    另外,为了网站数据的安全,也要对数据库文件data文件做些设置,具体可查看马海祥博客《安全正确转移网站data目录文件的具体方法步骤》的相关介绍。

    

    二、DedeCMS站点高级安全策略

    

    在安装DedeCMS及设置之后,在之前的基础上我们再进一步来对Linux下的DedeCMS进行安全配置,以保证我们的站点能够更加安全的运行在服务器上。

    

    1、安装Apache文件访问权限模块

    

    为了保证每个虚拟站点都能够拥有自己独立的文件访问权限,我们需要安装Apache安全权限分离模块,在终端中输入:

    

    sudo apt-get install apache2-mpm-itk

    

    2、添加管理后台站点控制帐号

    

    接下来我们需要再添加一个后台站点的Apache运行帐号,在终端中输入:

    

    sudo useradd -g www-data -d /dev/null -s /usr/sbin/nologin www-admin

    

    这样我们就添加了一个www-admin帐号,专门用于控制后台站点的文件访问权限。

    

    3、将后台管理目录移出,并且创建独立站点

    

    默认安装后,后台的管理目录是在站点更目录下的/dede,为了安全起见我们需要将这个目录移出,但为了能够正常管理站点,我们需要将这个后台目录创建独立站点。

    

    (1)、移动后台管理目录

    

    我们先创建一个目录,这个目录专门用于存放后台站点文件,在终端中输入:

    

    sudo mkdir /var/dedecms-admin

    

    然后将织梦后台移动到这个文件夹中,输入:

    

    sudo mv /var/dedecms/dede/* /var/dedecms-admin/

    

    (2)、创建虚拟站点

    

    我们需要创建一个新的站点用于显示后台,我们可以在/etc/apache2/site-enabled/目录中创建一个文件名为:default-admin的文件,内容如下:

    

    <VirtualHost *:80>

    

    ServerName admin.dede.com

    

    ServerAdmin webmaster@localhost

    

    DocumentRoot /var/dedecms-admin

    

    AssignUserId www-admin www-data

    

    <Directory />

    

    Options FollowSymLinks

    

    AllowOverride None

    

    </Directory>

    

    <Directory /var/dedecms-admin/>

    

    Options Indexes FollowSymLinks MultiViews

    

    AllowOverride None

    

    Order allow,deny

    

    allow from all

    

    </Directory>

    

    </VirtualHost>

    

    创建完成后我们重新启动服务器,在终端输入:

    

    sudo service apache2 restart

    

    这里我们给后台站点域名设置为mahaixiang.cn用户可以根据自己情况设定更为复杂的域名形式,例如:dedesiteadmin2017.mahaixiang.cn

    

    然后在系统host纪录中添加一条指向站点域名对应ip的纪录,保证其能够正常访问。

    

    (3)、给管理站点目录设定权限控制帐户

    

    为了保证后台文件访问的安全,我们也需要给它设定文件访问权限,在终端中输入:

    

    sudo chown www-admin.www-data /var/dedecms-admin/

    

    这样就给这个目录指定了www-admin的访问帐号。

    

    (4)、调整后台文件配置,保证后台正常访问

    

    由于我们直接移动了管理后台文件目录,所以我们访问mahaixiang.cn会出现报错,这时候我们需要对系统中的目录配置进行调整。

    

    ①、找到/var/dedecms-admin/config.php,将第12行

    

    require_once(DEDEADMIN.'/../include/common.inc.php');

    

    改为:

    

    require_once(DEDEADMIN.'/../dedecms/include/common.inc.php');

    

    然后在这段代码下面加上:

    

    $cfg_plus_dir = $cfg_phpurl = $cfg_basehost."/".$cfg_plus_dir;

    

    ②、找到/var/dedecms-admin/login.php,将11行

    

    require_once(dirname(__FILE__).'/../include/common.inc.php');

    

    改为:

    

    require_once(dirname(__FILE__).'/../dedecms/include/common.inc.php');

    

    ③、找到/var/dedecms/data/safe/inc_safe_config.php,第2行,改为

    

    $safe_gdopen = '1,2,3,4,5,7';

    

    ④、找到/var/dedecms-admin/exit.php,第11行

    

    require_once(dirname(__FILE__).'/../include/common.inc.php');

    

    改为:

    

    require_once(dirname(__FILE__).'/../dedecms/include/common.inc.php');

    

    ⑤、复制include中的相关文件

    

    我们需要将include文件夹下的一些文件拷贝到管理后台站点中以保证后台正常使用:

    

    mkdir /var/dedecms-admin/include/dialog

    

    sudo cp -R /var/dedecms/include/dialog/* /var/dedecms-admin/include/dialog

    

    mkdir /var/dedecms-admin/include/js

    

    sudo cp -R /var/dedecms/include/js/* /var/dedecms-admin/include/js

    

    sudo mkdir /var/dedecms-admin/include/ckeditor

    

    sudo cp -R /var/dedecms/include/ckeditor/* /var/dedecms-admin/include/ckeditor

    

    4、重新分配前台Apache用户权限

    

    设定完成后我们需要给前台站点重新指派权限,在终端输入:

    

    sudo chown -R www-admin.www-data /var/dedecms/

    

    这样就把前台用户设定为了www-admin,然后再执行:

    

    sudo chmod -R 755 /var/dedecms/

    

    这样设置后后台管理就具有了站点操作权限,但前台浏览用户没有修改文件的权限了。

    

    但这里前台uploads需要有可上传的权限,所以还需要执行:

    

    sudo chmod -R 777 uploads/

    

    5、完成安全配置

    

    这样一来我们就完成了系统的安全设置,做到了前后台的权限分离,当然您也需要配置下php.ini禁用掉某些函数,配合系统做好各个方面的安全设置。

    

    6、Nginx设置

    

    由于Nginx轻便容易维护,很多站长也会选择Nginx作为站点服务器,设置思路同上文类似,但有稍许的不同,下面我们就来单独对其进行介绍。

    

    (1)、安装Nginx以及php5-fpm

    

    终端中输入:sudo apt-get install nginx

    

    以及:sudo apt-get install php5-fpm

    

    如果已经安装了Apache的用户需http://www.ksfk999.com/要停止Apache,以免同Nginx冲突,可以使用命令行:sudo service apache2 stop

    

    (2)、添加站点

    

    同样我们需要添加两个站点,一个前台“www.mahaixiang.cn”一个后台“admin.mahaixiang.cn”,基本配置如下:

    

    www.mahaixiang.cn站点:

    

    server {

    

    root /var/dedecms;

    

    index index.html index.htm index.php;

    

    server_name www.mahaixiang.cn;

    

    ...

    

    location ~ .php$ {

    

    fastcgi_pass 127.0.0.1:9000;

    

    fastcgi_param script_FILENAME /var/dedecms$fastcgi_script_name;

    

    fastcgi_index index.php;

    

    include fastcgi_params;

    

    }

    

    }

    

    admin.mahaixiang.cn站点配置:

    

    server {

    

    root /var/dedecms-admin;

    

    index index.html index.htm index.php;

    

    server_name admin.mahaixiang.cn;

    

    ...

    

    location ~ .php$ {

    

    fastcgi_pass 127.0.0.1:9001;

    

    fastcgi_param script_FILENAME /var/dedecms-admin$fastcgi_script_name;

    

    fastcgi_index index.php;

    

    include fastcgi_params;

    

    }

    

    }

    

    这里主要是admin的站点采用的9001端口,以及站点目录重新做了调整。

    

    (3)、指派站点文件访问控制权限

    

    同apache的apache2-mpm-itk不同,php5-fpm默认就可以进行权限控制。

    

    在文件/etc/php5/fpm/pool.d/www.conf中http://www.17tour8.com/则是默认采用了“www-data”作为站点的控制用户,所以为了后台具有对应的操作权限,我们需要添加一个专门的控制权限。

    

    cd /etc/php5/fpm

    

    cp www.conf admin.conf

    

    修改admin.conf文件

    

    其中我们只要将:

    

    user = www-admin

    

    group = www-data

    

    listen = 127.0.0.1:9001

    

    这几个地方做一个更改即可。

    

    完成后重启下服务

    

    sudo service php5-fpm restart

    

    sudo service nginx restart

    

    (4)、nginx下取消目录执行的权限

    

    之前,我们曾在马海祥博客上介绍了apache下如http://www.mfthotel.com/何取消目录执行权限(具体可查看马海祥博客《取消网站文件目录脚本执行权限的方法步骤》的相关介绍),nginx也是类似,但配置方法稍有不同:

    

    server {

    

    ...

    

    location ~* ^/uploads/.*.(php|php5)$

    

    {

    

    deny all;

    

    }

    

    }

    

    按照这个方法,将其他目录也同样设置即可。

    

    马海祥博客点评:

    

    近年来,越来越多的企业看到了Linux的这些强大的功能,利用Linux担任全方位的网络服务器。

    

    Linux在它的追捧者眼里是一个近乎完美的操作系统,它具有运行稳定、功能强大、获取方便等优点,因而有着广阔的前景,或许也值得我们每一个计算机爱好者学习和应用。

    

    本文为马海祥博客原创文章,转载原文网址摘自于http://www.mahaixiang.cn/CMS/1782.html。

举报 收藏
管理文章:
暂无回应