Centos系统下通过Nginx部署帝国CMS项目
公司最近在申请ICP,企业门户网站需要重新开发,为了快速开发一个门户网站,对比了目前国内的CMS系统,决定选择帝国CMS作为基础框架。
选择帝国CMS主要是看中了它们成熟化的模板功能,下面记录下自己在部署过程中的大概流程和一些踩过的坑做备忘。
一、服务器环境介绍
Centos6.5
Mysql 5.6
Nginx
php7 #目前centos7以下版本已经不维护php,无法安装php可以先更新软件源
php-fpm
二、上传帝国CMS项目
去帝国CMD官网下载V7.5 UTF8版本,解压后将帝国CMS upload文件夹中的文件上传至服务器/usr/local/nginx/html/下
三、修改Nginx配置
我的nginx配置修改如下:
server{listen xxx; server_name xxx;root /usr/local/nginx/html/upload; #帝国CMS上传的地址location / {index index.html index.htm index.php;try_files $uri $uri/ /index.php?$args;}location ~ \.php$ {#root /usr/local/nginx/html/upload;fastcgi_pass 127.0.0.1:9000; #注意和php-fpm保持一致fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}access_log logs/phpAccess.log main;error_log logs/phpErrorAccess.log error;}
主要的坑:
1、http://xxx/e/install/index.php访问失败, nginx日志文件发现Permission denied的异常
查看upload文件夹所属用户和ngnix运营用户一否一致
可以看到nginx的worker进程用户是ftp,可以通过chown命令将upload文件夹将用户和用户组改为ftp;
2、http://xxx/e/install/index.php访问失败, nginx日志文件发现Connection refused异常
A、检查/etc/php-fpm.d下的配置文件中端口是否和ngnix中设置的9000一致;
B、检查/etc/php-fpm.d下的用户和组是否和nginx一致;
如果不一致需要修改后重启 /etc/ini.d/php-fpm restart
四、安装帝国CMD
通过访问安装文件http://xxx/e/install/index.php按照提示一路操作,比较简单。记得安装完成后删除e/install文件夹。
安装文件会先进行环境检查,我的安装文件提示我mysql和GD未支持,可以通过 yum install php-mysql 以及 yum install php-gd 命令安装一下就好了。
主要的坑:
1、再进行网站更新时提示“建立目录不成功,请检查目录权限”有效解决方法。带数据帝国CMS安装后后台更新时内容页和栏目页更新不了,提示建立目录不成功,请检查目录权限。
由于安装i程序是带单独手机端,而不是自适应的,有两个地方需要修改:
第一个地方:帝国CMS后台-系统---->>网站多访问端---->>管理网站访问端---->>手机访问端 - 修改里面的访《访问端地址》和《访问端目录》为你所对应的地址
如:访问端地址:http://m.yunhu.net/
访问端目录: /www/wwwroot/yunhu_net/m/
第二个地方:帝国后台系统-插件---->>移动端同步生成---->>参数设置 - 里修改《移动端目录》和《移动端地址》
第三处:服务器安装位置--检查下跟目录下有没d文件夹,如果没有手动创建个d/file文件夹
五、进行PHP安全配置
1、控制脚本访问权限。由于PHP默认配置允许PHP脚本程序访问服务器上的任意文件,为避免PHP脚本访问不该访问的文件,需要设置PHP只能访问网站目录或其他必须可访问的目录。比如:
# vim /usr/local/php/etc/php.iniopen_basedir=/data/php/upload_tmp:/data/www/proj1:/data/www/proj2
2、禁止使用PHP危险函数,这些函数都是PHP木马常用的,比如:
# vim /usr/local/php/etc/php.inidisable_functions = dl,assert,exec,popen,system,passthru,shell_exec,proc_close,proc_open,pcntl_exec
3、关闭注册全局变量(PHP-5.3.*和PHP-5.4.*中已废除)
register_globals = Off
4、开启magic_quotes_gpc(PHP-5.3.*和PHP-5.4.*中已废除),由于magic_quotes_gpc会把引用的数据中包含单引号'和双引号"以及反斜线 \自动加上反斜线,自动转译符号,确保数据操作的正确运行,magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据,可以有效的防止SQL注入漏洞。
magic_quotes_gpc = On
5、关闭错误信息提示,因为这些错误信息可能泄漏服务器的路径信息和数据库信息等。
display_errors = Off
6、开启错误日志记录,可以考虑跟Web服务器的日志放在一起,比如:
log_errors = On error_log = /data/logs/php/php_error.log
7、禁止访问远程文件,因为访问URL远程资源使得PHP应用程序的漏洞变得更加容易被利用,关闭之,如果要访问远程服务器建议采用其他方式比如libcurl库。
allow_url_fopen = Off allow_url_include = Off
8、开启PHP安全模式(PHP-5.3.*和PHP-5.4.*中已废除)
safe_mode = On
Centos系统下通过Nginx部署帝国CMS项目相关推荐
- centos系统下安装Nginx
参考链接 CentOS 7 用 yum 安装 Nginx Nginx负载均衡配置 下载并安装 #使用以下命令 sudo yum install -y nginx #sudo表示使用管理员权限运行命令 ...
- Linux(CentOS)系统下设置nginx开机自启动
2019独角兽企业重金招聘Python工程师标准>>> Nginx 是一个很强大的高性能Web和 反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动. 首先,在linu ...
- CentOS系统下部署Hadoop2.0单机模式
Hadoop的部署前必须按照JDK,且只能使用Oracle 的1.6级以上版本的JDK,不能使用openJDK.事先下载JDK包,如jdk-7u40-linux-x64.tar.gz 1.文件下载上传 ...
- 超详细带图详解,在linux下如何利用nginx部署自己的项目到服务器?认真看完,你不会过来找我!
在linux下如何利用nginx部署自己的项目到服务器? 一.基本思路 二.实例解析 1.在虚拟机安装linux系统,我这里用到的是centos7.当然你也可以选择其他的,但大概步骤,过程是一样的.怎 ...
- Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包(亲测)
Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包. 18 (flaskApi) [root@67 flaskDemo]# yum -y install n ...
- linux安装多版本php_Linux系统下为Nginx安装多版本PHP
我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法 linux版本:64位CentOS 6.4 Nginx版本:ngi ...
- windows系统下安装Nginx以及简单使用(详解)
一.背景 Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,特别是现在前后端分离的情况下.而在开发过程中,我们常常需要在wi ...
- 如何解决 CentOS系统下 使用localhost无法连接数据库
参考 一下两篇文章,稍加改动: 解决方案 mysql数据库连接的两种方式 [描述] Centos系统下,使用mysql数据库.当主机名称使用 127.0.0.1 时可以连接成功,使用 local ...
- 在Centos系统下创建与Windows的共享文件夹
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1分钟实现-->在Centos系统下创建与Windows的共享文件夹 前言 提示:这里可以添加本文要记录的大概内容: 在我的项目 ...
- egret与php相连,JavaScript_Mac OS X 系统下安装和部署Egret引擎开发环境, 概述
Egret基于TypeScript开 - phpStudy...
Mac OS X 系统下安装和部署Egret引擎开发环境 概述 Egret基于TypeScript开发的,而TypeScript编译工具tsc是基于Node.js开发的.所以在安装过程中,我们先需要对 ...
最新文章
- 如何替换字符串中出现的所有字符?
- lua学习笔记之开始
- 3d建模电脑配置要求_学习3D建模需要什么软件,电脑配置应该如何?新手自学会遇到的问题...
- full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序
- DevExpress v15.1:XAF控件升级
- 关于一类docker容器闪退问题定位
- 新手必看,老鸟绕道–LAMP简易安装
- 成功之路散文连载之名师出高徒
- 百度快照劫持的表现及解决方法
- DB2的VALUE函数
- php文本框代码_php怎么用代码给文本框输入值
- RV32I控制转移指令的偏移量计算问题
- 【无标题】大一学生HTML5期末大作业——基于HTML+CSS制作女装商城 6页
- 输入3×4的矩阵 将值为负的位置和值输出
- 马丁福勒《UML精粹》读书笔记_第四章
- 启用计算机的无线同屏,完美:将计算机转换为无线显示器,Windows 10的此功能确实强大...
- vue中 .env .env.development
- 全行业聚合支付平台接口_各类API聚合支付平台
- 数字图像处理基础(冈萨雷斯)一
- 基于python的比价系统
热门文章
- Macropodus 新词发现详解(new word discovery, python3)
- Java语言 Timer 定时器的四种使用方式
- Android Studio 里sync下载慢,怎么办?
- html2canvas黑背景,解决canvas转base64/jpeg时透明区域变成黑色背景的方法
- 异地驾驶证转入(+到期换证)——赞深圳交警!
- MYS-6ULX-IOT 开发板测评——Yocto 创建嵌入式 Linux 发行版
- 如何把docx变为ass_电影字幕转Word教程
- esp32查询剩余内存_ESP32 Arduino教程:获取自由堆-esp文件
- 微信小程序 开发者工具和真机调试都能正常请求访问,线上不能登录请求问题
- oracle重启rac2监听,RAC监听服务