公司最近在申请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项目相关推荐

  1. centos系统下安装Nginx

    参考链接 CentOS 7 用 yum 安装 Nginx Nginx负载均衡配置 下载并安装 #使用以下命令 sudo yum install -y nginx #sudo表示使用管理员权限运行命令 ...

  2. Linux(CentOS)系统下设置nginx开机自启动

    2019独角兽企业重金招聘Python工程师标准>>> Nginx 是一个很强大的高性能Web和 反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动. 首先,在linu ...

  3. CentOS系统下部署Hadoop2.0单机模式

    Hadoop的部署前必须按照JDK,且只能使用Oracle 的1.6级以上版本的JDK,不能使用openJDK.事先下载JDK包,如jdk-7u40-linux-x64.tar.gz 1.文件下载上传 ...

  4. 超详细带图详解,在linux下如何利用nginx部署自己的项目到服务器?认真看完,你不会过来找我!

    在linux下如何利用nginx部署自己的项目到服务器? 一.基本思路 二.实例解析 1.在虚拟机安装linux系统,我这里用到的是centos7.当然你也可以选择其他的,但大概步骤,过程是一样的.怎 ...

  5. Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包(亲测)

    Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包. 18 (flaskApi) [root@67 flaskDemo]# yum -y install n ...

  6. linux安装多版本php_Linux系统下为Nginx安装多版本PHP

    我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法 linux版本:64位CentOS 6.4 Nginx版本:ngi ...

  7. windows系统下安装Nginx以及简单使用(详解)

    一.背景 Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,特别是现在前后端分离的情况下.而在开发过程中,我们常常需要在wi ...

  8. 如何解决 CentOS系统下 使用localhost无法连接数据库

    参考 一下两篇文章,稍加改动: 解决方案    mysql数据库连接的两种方式 [描述] Centos系统下,使用mysql数据库.当主机名称使用 127.0.0.1 时可以连接成功,使用 local ...

  9. 在Centos系统下创建与Windows的共享文件夹

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1分钟实现-->在Centos系统下创建与Windows的共享文件夹 前言 提示:这里可以添加本文要记录的大概内容: 在我的项目 ...

  10. egret与php相连,JavaScript_Mac OS X 系统下安装和部署Egret引擎开发环境, 概述 Egret基于TypeScript开 - phpStudy...

    Mac OS X 系统下安装和部署Egret引擎开发环境 概述 Egret基于TypeScript开发的,而TypeScript编译工具tsc是基于Node.js开发的.所以在安装过程中,我们先需要对 ...

最新文章

  1. 如何替换字符串中出现的所有字符?
  2. lua学习笔记之开始
  3. 3d建模电脑配置要求_学习3D建模需要什么软件,电脑配置应该如何?新手自学会遇到的问题...
  4. full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序
  5. DevExpress v15.1:XAF控件升级
  6. 关于一类docker容器闪退问题定位
  7. 新手必看,老鸟绕道–LAMP简易安装
  8. 成功之路散文连载之名师出高徒
  9. 百度快照劫持的表现及解决方法
  10. DB2的VALUE函数
  11. php文本框代码_php怎么用代码给文本框输入值
  12. RV32I控制转移指令的偏移量计算问题
  13. 【无标题】大一学生HTML5期末大作业——基于HTML+CSS制作女装商城 6页
  14. 输入3×4的矩阵 将值为负的位置和值输出
  15. 马丁福勒《UML精粹》读书笔记_第四章
  16. 启用计算机的无线同屏,完美:将计算机转换为无线显示器,Windows 10的此功能确实强大...
  17. vue中 .env .env.development
  18. 全行业聚合支付平台接口_各类API聚合支付平台
  19. 数字图像处理基础(冈萨雷斯)一
  20. 基于python的比价系统

热门文章

  1. Macropodus 新词发现详解(new word discovery, python3)
  2. Java语言 Timer 定时器的四种使用方式
  3. Android Studio 里sync下载慢,怎么办?
  4. html2canvas黑背景,解决canvas转base64/jpeg时透明区域变成黑色背景的方法
  5. 异地驾驶证转入(+到期换证)——赞深圳交警!
  6. MYS-6ULX-IOT 开发板测评——Yocto 创建嵌入式 Linux 发行版
  7. 如何把docx变为ass_电影字幕转Word教程
  8. esp32查询剩余内存_ESP32 Arduino教程:获取自由堆-esp文件
  9. 微信小程序 开发者工具和真机调试都能正常请求访问,线上不能登录请求问题
  10. oracle重启rac2监听,RAC监听服务