把OctoberCMS的web服务器由Apache更换为Nginx

卸载安装的apache和php

yum remove httpd* php*
使用php -v看是否还能看到php的版本信息,如果能,说明没卸载干净,继续进行以下操作:
rpm -qa | grep php
根据列表卸载,注意卸载顺序,先卸载没有依赖的。
正确的卸载顺序为:
rpm -e php-mysql-5.1.6-27.el5_5.3
rpm -e php-pdo-5.1.6-27.el5_5.3
rpm -e php-xml-5.1.6-27.el5_5.3
rpm -e php-cli-5.1.6-27.el5_5.3
rpm -e php-gd-5.1.6-27.el5_5.3
rpm -e php-common-5.1.6-27.el5_5.3
最后,再用php -v,看看是否卸载干净。

安装PHP和PHP-FPM
  1. nginx本身是个web服务器,需要安装php-fpm处理php文件,php-fpm把处理结果返回给nginx。
  2. php-fpm是一个管理fastcgi的工具,以前是第三方的包,现在php7.0版本已经集成了这个东西。
    yum默认安装的是老版本PHP,需要增加额外资源库,才能安装新版php7.0:
    CentOs 6.x
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpmmirror.webtatic.com/yum/el6/latest.rpm

CentOs 7.X

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

如果想删除上面安装的包,使用以下命令:

  1. rpm -qa | grep webtatic
  2. rpm -e 上面搜索到的包即可

yum list php* //显示可用的php安装包
安装php7.0
yum -y install php70w.x86_64
php -v //查看安装的php版本
php -m //查看安装的php模块
查找php:
which php 或 whereis php
安装php-fpm
yum -y install php70w-fpm.x86_64

根据需要,安装其他模块,命令为:php -y install XXXXX

统一nginx与php-fpm的运行用户
  1. 对于静态文件,nginx运行用户要有对文件的读/读写权限。
  2. 对于php文件,nginx运行用户霜有对文件的读权限,发现是php文件后,转发给php-fpm。php-fpm运行用户要有对这些文件的读/读写权限。

查看nginx运行在哪个用户下

ps -ef | grep nginx

查看php-fpm运行在哪个用户下

ps -ef | grep php-fpm

调整nginx的运行用户
nginx配置文件,第一行

user XXXX

调整php-fpm的运行用户
yum安装的php-fpm,配置文件所在路径:/etc/php-fpm.d/www.conf

user = www-data
group = www-data

重启php-fpm

/etc/init.d/php-fpm restart

netstat -tln | grep 9000 //查看9000端口使用情况
ps aux | grep php-fpm //查看是否运行在www-data用户

运行用户修改完毕,继续修改文件目录权限
chown www-data:www-data -R /网站目录XXX

开启自动启动php-fpm

添加可执行权限

chmod +x /etc/init.d/php-fpm

添加到开机自动启动

chkconfig --add php-fpm
chkconfig php-fpm on

这样后,php-fpm就会开机自动启动了,而且可以使用以下命令进行重启

service php-fpm start
service php-fpm stop
service php-fpm reload或restart
修改nginx配置文件把nginx与php-fpm关联起来
server {
    #监听端口
    listen       80;
    #访问域名
    server_name  域名;
    index index.php index.html index.htm;
    #编码格式,若网页格式与此不同,将被自动转码
    charset utf-8;
    #设定本虚拟主机的访问日志
    #access_log  /var/log/nginx/host.access.log  main;
    
    #注意一下,这里把root放到了location外面
    root /data/wwwroot/XXXX; 
    
    location / {  
        try_files $uri $uri/ /index.php$is_args$args;
    }  
  	#使nginx能够解析php文件
    location ~ \.php$ {  
           try_files  $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass   127.0.0.1:9000;  #这个是php-fpm监听的端口,默认为9000
           fastcgi_index  index.php; 
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    #这里的$document_root就是上面外层的root
           include        fastcgi_params; 
       }  

    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

# Whitelist
## Let October handle if static file not exists
location ~ ^/favicon\.ico { try_files $uri /index.php; }
location ~ ^/sitemap\.xml { try_files $uri /index.php; }
location ~ ^/robots\.txt { try_files $uri /index.php; }
location ~ ^/humans\.txt { try_files $uri /index.php; }

## Let nginx return 404 if static file not exists
location ~ ^/storage/app/uploads/public { try_files $uri 404; }
location ~ ^/storage/app/media { try_files $uri 404; }
location ~ ^/storage/temp/public { try_files $uri 404; }

location ~ ^/modules/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/resources { try_files $uri 404; }

location ~ ^/plugins/.*/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/resources { try_files $uri 404; }

location ~ ^/themes/.*/assets { try_files $uri 404; }
location ~ ^/themes/.*/resources { try_files $uri 404; }

}

重启nginx。
现在试试吧,是不是可以打开octobercms网站了。

附:linux用户管理

  • groupadd www-data //添加用户组www-data
  • useradd -g www-data www-data //添加用户www-data,并加到用户组www-data
  • userdel www-data //删除用户www-data
  • userdel -r www-data //删除用户www-data,同时删除他的工作目录
  • groupdel www-data //删除用户组
  • id www-data //查看用户www-data的信息
  • groups //查看当前登录用户的组内成员
  • groups www-data 查看用户www-data所在的组,以及组内成员
  • whoami //查看当前登录用户名
  • /etc/group //此文件包含所有用户组
  • /etc/shadow和/etc/passwd //此文件包括所有用户名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值