ECJiaWiki:Linux环境下到家程序目录权限及安全配置

来自ECJiaWiki
跳转至: 导航搜索

Linux下到家目录权限及安全配置

目录权限

如果服务器系统选择的是Linux系统,在搭建好环境,并且已把到家程序放到指定的路径下,打开浏览器访问的时候显示

Anquan1.png

导致这个原因很可能是由于目录权限没有授予的原因导致的。默认情况下在到家程序的目录下默认会放置一个info.php文件,方便查看服务器和程序等相关的配置信息

建议在正式生产环境内删除info.php这个文件以防带来安全隐患。直接输入IP或者域名后面跟/info.php即可访问到。

Anquan2.png

首先查看目前php运行的用户,可以在浏览器按ctrl+F搜索关键字user,来查看user的用户是谁

Anquan3.png

这里可以看到现在的用户为nginx,之后的操作就需要登入到服务器操作了。在服务器上,需要对4个目录进行授权分别是程序根目录、content/storages、content/uploads、content/configs

具体操作命令如下


给到家程序根目录授权

chown nginx.nginx /ecmoban/www

这里稍微解释下chown是授权命令

Nginx.nginx代表授权用户,如果在info.php中查看到的是其他用户,那么就替换成其他的用户即可。(例如apache用户就使用 chown apache.apache /ecmoban/www)

/ecmoban/www 代表的是程序路径,也就是网站的根目录


给content/storages目录授权

chown nginx.nginx /ecmoban/www/content/storages/ -R 


给content/uploads目录授权

chown nginx.nginx /ecmoban/www/content/uploads/ -R 


给content/configs授权

chown nginx.nginx /ecmoban/www/content/configs/

这里需要注意,只有content/storages目录和content/uploads目录需要在最后跟-R

如图所示

Anquan4.png

接着重新刷新页面就可以正常访问了

Anquan5.png

Nginx配置

程序安装完成之后会在根目录生成一个.env文件里面含有数据库敏感信息,所以在配置Nginx的时候需要对.env的文件禁止直接访问。

另外需要对storages目录下的文件设置禁止访问,uploads目录下只能访问静态文件,即不能解析以php结尾的文件。

这里给予访问storages目录及目录下的文件返回404,并且不解析uploads目录下的php文件。

使用yum安装的nginx配置文件默认路径在/etc/nginx/conf.d/default.conf

可以直接使用编辑的命令来进行编辑

vim /etc/nginx/conf.d/default.conf

default.conf配置文件内的内容

#
# The default server
#
server {
    listen       80;
    server_name  _;

    location / {
        root   /ecmoban/www;
        index  index.php index.html index.htm;

        location ~ \.php {
            root           /ecmoban/www;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(/?.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_pass   127.0.0.1:9000;
            include       fastcgi_params;
        }
         location ~ \.env {
            deny all;
        }
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ^~ /content/storages/ {
        error_page 404 = /usr/share/nginx/html/404.html;
    }

    location ^~ /content/uploads/ {
        root   /ecmoban/www;
        index  index.html;
    }
}

Nginx完整的配置图

ANQUAN6.png

数据库安全

建议为数据库创建程序专用账户,并且设置只能本地访问。

使用root账户进入到mysql命令行后输入创建用户命令

创建一个名为ecjia-cityo2o的用户,密码为111111

create user 'ecjia-cityo2o'@'localhost' identified by '111111';

给库名为ecjia_cityo2o的库授权ecjia-cityo2o用户所有权限,并且作用域为本地localhost,密码为111111

GRANT ALL PRIVILEGES ON ecjia_cityo2o.* TO 'ecjia-cityo2o'@'localhost' IDENTIFIED BY '111111' WITH GRANT OPTION;

刷新授权生效

flush privileges;

Anquan7.png

在安装ECJia到家程序的时候数据库只要填入相应设置好的信息即可

Anquan8.png