CentOS的wordpress站点由apache换为nginx

前言

由于本人linux操作技术实在稀碎,apache总是碰到莫名其妙的bug,关键是现在网上使用apache的人也越来越少,资料难找,这次更改ssl证书把网站彻底搞崩了(现在想来可能是证书权限问题),总算让我只能放弃apache转向nginx。。记录一下。

关于Nginx

Nginxe并不能够直接使用.php文件,所以直接设置目录是不会生效的,需要php-fpm解析后才能访问。

nginx

安装、设置php-fpm

可以参考Nginx中文文档,版本有点老,到php官网下载最新的比较好。
代码

wget https://www.php.net/distributions/php-8.0.10.tar.gz
tar zvxf php-8.0.10.tar.gz
cd php-8.0.10
./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt \
--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --with-pdo --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli \
--with-gd --with-jpeg-dir
make
make install

可能由几个包会提示更新,跟着提示来就行了。
然后更改config文件vim /etc/php-fpm.d/www.conf,找到listen =…更改为listen = /var/run/php-fpm.sock,并取消行首的分号注释符,不用在意当前还没有这个文件,重启php-fpm后会自动创建,更改listen.owner = apachelisten.group = apachelisten.mode = 0660,原本是apache的话一般用户和用户组都是apache,不清楚的话可以在httpd.conf中查看;
更改/etc/php.ini文件cgi.fix_pathinfo=0并取消注释, 这是一种安全措施。 如果此参数设置为“1”,php-fpm将尝试通过查找请求的文件来提供PHP文件,然后如果没有找到完全匹配,它将尝试猜测并返回一个紧密匹配。这是非常不安全的,因为它可以允许您的网站向外部用户暴露敏感信息。 对于php-fpm来说,如果文件与请求的文件完全匹配,则返回更安全,否则返回错误给用户。
更改/etc/php-fpm.conf,,修改user = apachegroup = apache两项。
最后service php-fpm restart,没报错就OK了。

安装、设置Nginxe

图方便直接使用yum install nginx安装nginx。愿意折腾可以自己编译安装,功能会更全一点。
更改nginx.conf
同样将user改为apache,删除server{…},将server内容写到/etc/nginx/conf.d中,方便管理
vim /etc/nginx/conf.d/de.conf

server {
    listen 80;
    server_name ***.com;#改为自己的域名
    return 301 https://server_namerequest_uri;#强制https
}
server {
    # 服务器端口使用443,开启ssl
    listen       443 ssl;
    # 域名,多个以空格分开
    server_name ***.com;#改为自己的域名

    # ssl证书地址
    ssl_certificate     /***.crt;
    ssl_certificate_key  /***.key;#填写正确路径

    # ssl验证相关配置
    ssl_session_timeout  5m;    #缓存有效期
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密算法
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #安全链接可选的加密协议
    ssl_prefer_server_ciphers on;   #使用服务器端的首选算法
    fastcgi_buffers 512 64k;
    root /var/www/html;
    index index.php;

    location / {
        try_files uriuri/ /index.php?q=uri&args;
    }

    location ~ \.php{
        try_filesuri =404;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        #include fastcgi_params;
        include fastcgi.conf;
    }

    location = /favicon.ico {#为Nginx如何尝试提供favicon请求和robot.txt请求创建一些规则。 
        log_not_found off;#我们不需要记录此信息的请求。
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ /\. {#拒绝访问任何隐藏的文件夹(由Linux系统中的起始点表示)。 
        deny all;#这将阻止我们服务可能已被用于Apache的配置,
    }#例如文件.htaccess文件

    location ~* /(?:uploads|files)/.*\.php$ {#防止在uploads或files目录中运行或访问任何PHP文件。 
        deny all;#这可以防止我们的服务器执行恶意代码。
    }
}

然后运行nginx,使用命令service nginx restart,没提示错误就是顺利完成了,然后测试网站是否能正常访问。如果出现了错误,/var/log/nginx/error.log会记录错误原因,,本人碰到了502错误,参考NGINX 502 Bad Gateway: PHP-FPM这篇文章完成修改。

其他问题

控制台页面混乱

原因:http://…..com/wp-admin/load-styles.php?c=1&dir=ltr&load=dashicons,admin-bar,wp-admin,buttons,wp-auth-check&ver=4.1.1 这个url的内容太大,大概有3百多KB,nginx的fcgi buff有限,导致无法正常加载css。
解决:在server中加入fastcgi_buffers 512 64k 即可。

php-fpm占用内存过大

可供参考的文章:Linux的php-fpm优化心得

发表文章返回500错误

日志内容open() "/var/lib/nginx/tmp/client_body/0000000001" failed (13: Permission denied)
没有权限去访问:/var/lib/nginx/tmp ,该目录主要是用来存放临时的缓存文件,直接chmod +x /var/lib/nginx -R解决。

文章作者: Rainmo
文章链接: https://www.rainmos.com/centos_wordpress_apache_nginx/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明来自 rainmos.com
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇