ECJiaWiki:Linux环境下到家程序目录权限及安全配置
Linux下到家目录权限及安全配置
目录权限
如果服务器系统选择的是Linux系统,在搭建好环境,并且已把到家程序放到指定的路径下,打开浏览器访问的时候显示
导致这个原因很可能是由于目录权限没有授予的原因导致的。默认情况下在到家程序的目录下默认会放置一个info.php文件,方便查看服务器和程序等相关的配置信息
建议在正式生产环境内删除info.php这个文件以防带来安全隐患。直接输入IP或者域名后面跟/info.php即可访问到。
首先查看目前php运行的用户,可以在浏览器按ctrl+F搜索关键字user,来查看user的用户是谁
这里可以看到现在的用户为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
如图所示
接着重新刷新页面就可以正常访问了
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完整的配置图
数据库安全
建议为数据库创建程序专用账户,并且设置只能本地访问。
使用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;
在安装ECJia到家程序的时候数据库只要填入相应设置好的信息即可