部署在Nginx的wordpress全部页面都出现404错误

问题

虽然这个问题网上已经有很多人回答过了,但是还是不能解决我的问题。Nginx上的wordpress,除了首页外,其它页面全部出现404。
下面是nginx的配置:

server {
        listen 80 ;
        listen [::]:80;

        root /var/www/html/p/swear;
        index index.php index.html index.htm;

        server_name skinnybikiniswimwear.org;

        location / {
                try_files $uri /$uri/ /index.php?args =404;
        }


            location ~ .php$ {
                fastcgi_split_path_info ^(.+.php)(/.+)$;
                try_files $uri /index.php?args =404;
                fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

从这个配置我找不出有什么问题。
wordpress安装在/var/www/html/p/swear。
多谢.

最佳答案

尝试如下配置:

    location / {
                # This is cool because no php is touched for static content.
                # include the "?$args" part so non-default permalinks doesn't break when using query string
                try_files $uri $uri/ /index.php?$is_args$args =404;
    }


    if (!-e $request_filename) {
            rewrite ^.*$ /index.php last;
    }

许多wordpress上配置nginx不成功,大多数是重写规则不对导致的404问题。

迁移wordpress并更换域名方法

迁移WordPress

第一步,打包原数据库和网站整站源码。

第二步,源码上传到新服务器上,数据库新建后恢复。

第三步,将域名解析到新服务器上。

第四步,删除新服务器上WordPress文件夹目录里的wp-config.php文件

第五部,通过域名打开网站,会提示从新安装WordPress,按照步骤填入新数据库信息,完成,你的数据是不是完整迁移啦!

WordPress更改域名教程

第一步,开始之前,请先做好网站的备份,备份好网站数据库和网站文件。尤其是数据库,一定要做好备份,以防操作过程中出现错误,我们可以使用备份的数据库重新进行操作。

第二步,将新域名做好解析和绑定操作。解析新域名,就是将域名指向服务器的IP地址,通常在域名商那里进行操作;绑定新域名,通常在空间商那里进行操作,就是在服务器上添加新域名,并确保网站目录和旧域名的网站目录一致。

完成以上两步之后,需要确认新域名生效之后,再继续进行以下操作。新域名设置解析后,通常需要一段时间才能传递到各地网络,各地生效时间并不一致,通常需要几分钟或者几个小时,最多不会超过48小时。你可以使用ping命令来检查,来查看新域名是否生效。如果ping出来的ip地址是刚刚设置的ip,那么解析就生效了。

新域名生效之后,这个时候在浏览器中输入新域名和旧域名,都可以打开原来的网站。如果旧域名已经失效,比如说已经过期,或者已经解析到其他地方等,那么网站虽然可以打开,但网页看起来会比较乱;这是因为网页无法正常加载WordPress主题的样式表。

第三步,登录主机管理系统,进入phpmyadmin,选择WordPress网站所使用的数据库。如果你不确定WordPress使用的是哪一个数据库,可以查看WordPress目录下的wp-config.php配置文件,查看其中的 DB_NAME 设置。

选中该数据库之后,点击SQL,输入以下代码:

UPDATE wp_options SET option_value = replace(option_value, 'www.mydomain.com','www.newdomain.com') ;
UPDATE wp_posts SET post_content = replace(post_content, 'www.mydomain.com','www.newdomain.com') ;
UPDATE wp_comments SET comment_content = replace(comment_content, 'www.mydomain.com', 'www.newdomain.com') ;
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'www.mydomain.com', 'www.newdomain.com') ;

以上代码中,www.mydomain.com 代表原来的域名,www.newdomain.com 代表新域名。域名一定要输入完整;如果你使用类似 blog.newdomain.com 这样的二级域名,也是可以的,只要输入完整域名就可以了。

未分类

然后点击右下角的【执行】按钮,就可以了。phpmyadmin会返回结果,告诉你每行命令修改了多少处地方。这样,我们就将WordPress的域名完美地切换到新的域名了。

与直接在WordPress的管理后台修改域名相比,今天介绍的这个办法有两个优点:

  1. 即便旧域名已经失效了,也可以更换新域名;因为整个操作过程中,根本不需要登陆WordPress的管理后台。

  2. 更换比较彻底,不光更换了网站的域名,连文章内部的链接,图片和音视频等媒体文件的地址、链接,以及评论中的链接等,都一起进行了更换。

因此,通过以上操作,可以比较完美地更换WordPress网站域名。现在,再使用新域名去访问你的WordPress网站试试吧。

centos7.3下配置LAMP部署WordPress博客

在同一台主机上搭建,首先需要安装的软件包Apache 、MariaDB 、PHP

未分类

一、安装LAMP 这里我们采用yum的方式

yum install httpd mariadb-server php php-mysql -y

未分类

二、创建虚拟主机

1、虚拟主机配置文件

未分类

2、创建所需的目录

mkdir /var/www/wordpress

三.在虚拟主机主目录/var/www/wordpress下新建index.php文件

<?php
        phpinfo();
 ?>

四、启动httpd服务

systemctl start httpd

五、测试

未分类

六、解压 wordpress 4.7并把解压的wordpress复制到/var/www/wordpress

未分类

七、通过浏览器访问wordpress

主意:

注意:配置DNS服务器解析www.test.com 为192.168.23.144 或者 修改windows 下的C:WindowsSysteme32driversetchosts文件
192.168.23.144 www.test.com

未分类

未分类

八、修改wordpress 配置文件复制cp wp-config-sample.php模板文件为 wp-config.php,然后编辑

vim /var/www/wordpress/wordpress/wp-config.php

未分类

未分类

未分类

上一篇 vim shell 练习作业题

WordPress最大上传文件大小限制修改

在为有的客户搭建 WordPress 网站时,有时会遇到因为所在的服务器限制了上传文件大小而无法上传较大的附件,WordPress的媒体文件上传可以看到,大多数都是2MB或者8MB。如果是图片的话可能会还够用,但是如果是音频和视频文件就不一定够用了,今天要分享的方法就是增大文件上传限制的大小。不过如果你的主机商有特别严格的限制,本文的方法就不确定可以实现了。一般的主机商都可以实现。

未分类

方法一:

在functions.php中添加如下代码,这样上传限制就是64M

@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );

方法二:

新建一个php.ini文件,在你的主机空间的根目录新建一个php.ini文件,里面使用如下代码。

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

方法三:

在网站根目录的 .htaccess 文件中添加如下代码。

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

WordPress忘记密码找回的方法

WordPress的管理员登录密码忘记了是经常有的事情就归纳总结了四种找回Wordpress登录密码的方式。

一、最简单的找回Wordpress密码:后台用邮件直接找回

1、忘记了Wordpress登录密码,直接使用Wordpress登录后台的“找回密码”,输入你的管理员邮箱,就会收到重置密码的邮件了,点击重置链接,设置新的密码即可。

2、不过,使用后台直接找回密码有两个前提:一是你当初安装Wordpress时填写的是自己的邮箱,二是你的主机可以发送重置密码的邮件,二者缺一,则会导致找回密码失败。

未分类

二、最直接的重置Wordpress密码:PhpMyAdmin修改MD5

1、进入到主机的PhpMyAdmin管理界面

2、进入到PhpMyAdmin后,点击wp_users这个表。

3、再点击修改用户参数。(注意:user_login是登录名,默认的是admin,如果你这之前改过用户名,则显示的是其它的)。

4、在这里将user_pass值改成:5d41402abc4b2a76b9719d911017c592,执行,保存。这里是密码是MD5加密后的数值,可以在网上搜索MD5加密后填入。这里的数据为hello。

5、完成后,你就可以使用密码:hello 来登录你的Wordpress了,登录到Wordpress后台后要记得马上修改密码。

三、最快捷的修改Wordpress密码:执行SQL命令

1、进入到PhpMyAdmin的SQL执行命令页面,执行以下命令:

update wp_users set user_pass=md5("123456") where user_login='admin';

2、123456是你的Wordpress新密码,admin是管理员账号。执行完了命令后,你就可以用新的密码来登录Wordpress了。

四、最方便的设置Wordpress新密码:用PHP文件重置密码

这是要下载一个php文件上传到博客主目录,然后打开。根据要求填写就好!

未分类

下载地址:
http://pan.baidu.com/s/1pL7HalX

更换WordPress网站域名的方法

我们以手头的演示网站为例,介绍一下如何将WordPress网站的域名从旧域名 www.mydomain.com 更换为新域名 www.newdomain.com 。

第一步,开始之前,请先做好网站的备份,备份好网站数据库和网站文件。尤其是数据库,一定要做好备份,以防操作过程中出现错误,我们可以使用备份的数据库重新进行操作。

第二步,将新域名做好解析和绑定操作。解析新域名,就是将域名指向服务器的IP地址,通常在域名商那里进行操作;绑定新域名,通常在空间商那里进行操作,就是在服务器上添加新域名,并确保网站目录和旧域名的网站目录一致。

完成以上两步之后,需要确认新域名生效之后,再继续进行以下操作。新域名设置解析后,通常需要一段时间才能传递到各地网络,各地生效时间并不一致,通常需要几分钟或者几个小时,最多不会超过48小时。你可以使用ping命令来检查,来查看新域名是否生效。如果ping出来的ip地址是刚刚设置的ip,那么解析就生效了。

新域名生效之后,这个时候在浏览器中输入新域名和旧域名,都可以打开原来的网站。如果旧域名已经失效,比如说已经过期,或者已经解析到其他地方等,那么网站虽然可以打开,但网页看起来会比较乱;这是因为网页无法正常加载WordPress主题的样式表。

第三步,登录主机管理系统,进入phpmyadmin,选择WordPress网站所使用的数据库。如果你不确定WordPress使用的是哪一个数据库,可以查看WordPress目录下的wp-config.php配置文件,查看其中的 DB_NAME 设置。

选中该数据库之后,点击SQL,输入以下代码:

UPDATE wp_options SET option_value = replace(option_value,'www.mydomain.com','www.newdomain.com') ;

UPDATE wp_posts SET post_content = replace(post_content, 'www.mydomain.com','www.newdomain.com') ;

UPDATE wp_comments SET comment_content = replace(comment_content, 'www.mydomain.com', 'www.newdomain.com') ;

UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'www.mydomain.com', 'www.newdomain.com') ;

以上代码中,www.mydomain.com 代表原来的域名,www.newdomain.com 代表新域名。域名一定要输入完整;如果你使用类似 blog.newdomain.com 这样的二级域名,也是可以的,只要输入完整域名就可以了。

然后点击右下角的【执行】按钮,就可以了。phpmyadmin会返回结果,告诉你每行命令修改了多少处地方。这样,我们就将WordPress的域名完美地切换到新的域名了。

与直接在WordPress的管理后台修改域名相比,今天介绍的这个办法有两个优点:

  1. 即便旧域名已经失效了,也可以更换新域名;因为整个操作过程中,根本不需要登陆WordPress的管理后台。

  2. 更换比较彻底,不光更换了网站的域名,连文章内部的链接,图片和音视频等媒体文件的地址、链接,以及评论中的链接等,都一起进行了更换。

因此,通过以上操作,可以比较完美地更换WordPress网站域名。现在,再使用新域名去访问你的WordPress网站试试吧。

wordpress开启Redis扩展教程

本教程中使用到的是宝塔面板(宝塔面板,小白建站的不二之选)Wordpress站点如果时间久了,流量大了,文章多了,前台后台都会变得龟速!

利用Redis将WordPress页面直接缓存在服务器的内存中,这样在避免了PHP重复执行操作的同时,内存的极速响应能够最大限度地提升Wordpress页面的访问速度,实际测试发现页面执行时间可以降低到0.00X秒级别,比没有使用Redis缓存提升几倍甚至十几倍以上。

利用宝塔面板非常简单的就能安装配置成功!

1、首先我们需要进入宝塔面板安装Redis扩展

未分类

2、下载我们要用到的PHP文件

  • PHP文件下载

https://www.ddblog.cc/wp-content/themes/begin/inc/go.php?url=https://page22.ctfile.com/fs/12214022-213374766

  • 下载解压以后我们会得到predis.php和wp-index-redis.php两个文件

  • 上传这两个文件到Wordpress的根目录

3、配置修改及注意事项

  • 如果你想在页面上看到脚本执行时间和缓存加载时间

请打开wp-index-redis.php文件把

// change vars here
$cf = 0;                // set to 1 if you are using cloudflare
$debug = 0;             // set to 1 if you wish to see execution time and cache actions

修改为

// change vars here
$cf = 0;                // set to 1 if you are using cloudflare
$debug = 1;             // set to 1 if you wish to see execution time and cache actions

也就是把$debug = 0;修改为$debug = 1;

  • 如果你使用的是nginx,需要原来的根目录的index.php修改为为任意其它名字,把wp-index-redis.php重命名为index.php

  • 如果你使用的是Apache,则需要把.htaccess中出现的index.php替换成wp-index-redis.php,我命名的是下面图片的名字。

未分类

所有的操作完成后,你就可以刷新一下Wordpress页面,查看Redis缓存效果了

  • 如果开启了缓存插件或cdn请先关闭才能看到效果

删除某一个页面的缓存:发表评论、按下F5刷新、在URL后面加上?r=y回车。

删除整站页面缓存:登录到Wordpress后台,在任意URL后面加上?r=y回车。

迁移wordpress到docker容器

这几天抽了个时间,终于把自己阿里云ecs的os升级到了centos7,所以也打算把博客wordpress也升级下,同时还要使用现在比较火的docker技术。

下面把相关wordpress迁移到docker中的相关步骤记录下。

PS:强烈建议OS使用3.0以上内核。

一、备份wordpress数据

在正式迁移wordpress之前,我们需要备份wordpress的相关数据,包括数据库、图片以及主题。

有关wordpress数据库的备份,就是个仁者见仁智者见智的事情了,你通过什么方法都可以备份的。我这边的做法是在本地的一个环境上,使用navicat这个mysql数据库管理工具,把数据传输到本地的环境上。

wordpress图片和主题都在wp-content这个目录下,我们只需要备份这个目录即可。

二、安装docker及其相关软件

wordpress相关数据备份完毕后,我们现在开始安装docker及其相关软件。

2.1 安装docker

docker的安装我们可以分为使用脚本快速安装和配置yum源安装,下面分别介绍下。

2.1.1 脚本快速安装

docker的安装比较简单,我们可以直接使用官方提供的脚本快速安装命令进行安装,如下:

curl -fsSL https://get.docker.com/ | sh

未分类

当然我们也可以使用国内提供的脚本快速安装命令,如下:

curl -sSL https://get.daocloud.io/docker | sh

2.1.2 配置yum源安装

通过配置yum源方式安装docker就比较简单,只需要在本地配置yum仓库配置即可。在此我们使用的中科大的docker仓库,配置如下:

vim /etc/yum.repos.d/docker.repo

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/7

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

未分类

yum仓库配置完毕后,我们现在开始安装docker,如下:

yum -y install docker-engine

未分类

2.1.3 普通用户添加docker权限

如果我们想让普通用户也具有使用docker权限,只需要把该用户添加到docker用户组即可。现在以ilanni这个用户为例,如下:

cat /etc/group |grep docker

sudo usermod -aG docker ilanni

su – ilanni

docker ps

未分类

2.1.4 docker开机启动

默认情况下docker是没有开机启动的,使用下面命令使docker开机启动,如下:

systemctl start docker && systemctl enable docker

未分类

2.2 安装docker-compose

因为wordpress需要使用多个docker镜像,所以在此我们使用docker-compose编排工具,进行管理。

安装docker-compose,使用如下命令:

curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose –version

未分类

2.3 安装iptables

centos7默认情况使用的是firewalld作为防火墙,但是对firewalld很是不熟悉,所以还是打算使用iptables。

下面安装iptables,使用如下命令:

yum -y install iptables-services iptables

未分类

把iptables加入到系统服务,使用如下命令:

cp /usr/libexec/iptables/iptables.init /etc/init.d/iptables

/etc/init.d/iptables start

/etc/init.d/iptables status

未分类

把iptables设置为开机启动,使用如下命令:

systemctl enable iptables

systemctl list-unit-files | grep iptables

未分类

关闭firewalld服务,使用如下命令:

systemctl disable firewalld.service

systemctl status firewalld.service

未分类

PS:docker及其相关软件安装完毕后,强烈建议重启服务器。

三、下载镜像

在本次wordpress迁移到docker中,我们需要两个镜像mysql镜像和wordpress镜像。其中wordpress镜像中包含apache、php和wordpress,而mysql镜像提供数据库服务。

PS:无论是wordress镜像还是mysql镜像都提供了多个版本,比如:wordpress镜像中有的只提供wordpress功能,没有提供php功能等等。

但是这次为了迁移的方便,我们只使用wordpress提供的全部功能。

除此之外,考虑到众所周知的原因,我们使用国内网易的蜂巢docker。

3.1 下载mysql5.5镜像

因为我现在wordpress的数据库使用的mysql5.5版本,所以我们也要下载mysql5.5的docker镜像,使用如下命令:

docker pull hub.c.163.com/library/mysql:5.5

未分类

未分类

如果要使用官方提供的mysql5.5镜像,使用如下命令:

docker pull mysql:5.5

未分类

3.2 下载wordpress镜像

wordpress镜像我们使用最新的版本即可,下载最新版本的镜像命令如下:

docker pull hub.c.163.com/library/wordpress

未分类

如果要使用官方提供的wordpress镜像,使用如下命令:

docker pull wordpress

未分类

对于wordpress提供的多个版本,我们使用的是包含有apache、php、php-fpm的latest版本。

对于只提供wordpress功能的版本,我们会在以后的文章进行相关讲解。

四、编写docker-compose.yml文件

为了管理容器的方便在此我们使用的是docker-compose来进行的,当然你也可以对每个docker镜像单独来运行。

但是在这为了迁移的方便,我们在这直接使用docker-compose来进行管理。

对于docker-compose,我们只需要编写docker-compose.yml文件,即可。示例如下:

vim docker-compose.yml

version: '2'

services:

mysqldb:

image: hub.c.163.com/library/mysql:5.5

container_name: ilanni_mysql

ports:

- "33033:3306"

volumes:

- ./data:/var/lib/mysql

restart: always

environment:

MYSQL_ROOT_PASSWORD: 123456

MYSQL_DATABASE: ilanni

MYSQL_USER: wwwilanni

MYSQL_PASSWORD: ilanni123

wordpress:

depends_on:

- mysqldb

image: hub.c.163.com/library/wordpress

container_name: ilanni_wordpress

ports:

- "80:80"

restart: always

environment:

WORDPRESS_DB_HOST: ilanni_mysql:3306

WORDPRESS_DB_NAME: ilanni

WORDPRESS_DB_USER: wwwilanni

WORDPRESS_DB_PASSWORD: ilanni123

volumes:

- ./wp-content/themes/xiu_ilanni:/var/www/html/wp-content/themes/xiu_ilanni

- ./wp-content/plugins:/var/www/html/wp-content/plugins

- ./wp-content/uploads:/var/www/html/wp-content/uploads

- ./favicon.ico:/var/www/html/favicon.ico

- ./alivv.txt:/var/www/html/alivv.txt

未分类

未分类

上述的docker-compose.yml文件中,我们创建了两个容器ilanni_mysql和ilanni_wordpress,其中- ./data:/var/lib/mysql的意思是把容器中的/var/lib/mysql目录映射到本地的data目录下。

  • ./alivv.txt:/var/www/html/alivv.txt意思是把本地的alivv.txt文件挂载到容器为/var/www/html/alivv.txt文件。

  • “33033:3306″意思是把容器中的3306端口映射为本地33033端口。

depends_on意思是一个容器依赖与另外一个容器。

docker-compose.yml文件编写完毕后,我们就可以启动容器了。使用如下命令:

docker-compose up -d

docker ps

未分类

通过上图我们可以很明显的看出,ilanni_mysql和ilanni_wordpress这个容器已经创建完毕。

PS:上述docker-compose.yml文件相关的环境变量中,我们都可以在对应docker镜像中看到对应的函数。

mysql镜像的对应变量,可以通过如下连接进行查看:

https://hub.docker.com/r/library/mysql/

未分类

wordpress镜像的对应变量,可以通过如下连接进行查看:

https://hub.docker.com/r/library/wordpress/

未分类

五、导入wordpress备份数据

通过上述章节,我们可以看到ilanni_mysql容器已经正常启动了。

现在我们把wordpress备份的数据导入到新的数据库中,使用navicat进行数据传输如下:

未分类

未分类

未分类

通过上图,我们可以看到wordpress数据已经被恢复到新的数据库ilanni_mysql中了。

其他的备份数据,我们只需要复制到对应的目录下即可。

六、启动容器

其实我们在前面已经启动了容器,之所以我们再次说要启动容器,是因为我们在第五章节中刚刚把原来备份的数据恢复到新的环境中。

现在我们只需要重启容器即可,使用如下命令:

docker-compose restart

未分类

现在我们来访问下刚刚恢复数据后的wordpress,如下:

未分类

未分类

通过上图,我们可以看出wordpress已经全部迁移过去了。

七、配置iptables规则

因为没有启用firewalld服务,所以这个牵涉到有关iptables规则的配置。

下面是正确配置的iptables规则,如下:

cat /etc/sysconfig/iptables

*nat

:PREROUTING ACCEPT [263:15384]

:INPUT ACCEPT [135:7704]

:OUTPUT ACCEPT [104:6272]

:POSTROUTING ACCEPT [232:13952]

:DOCKER - [0:0]

-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER

-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER

-A POSTROUTING -s 172.17.0.1/16 ! -o docker0 -j MASQUERADE

COMMIT

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:DOCKER - [0:0]

-A INPUT -i br-eaa791e079d2 -j ACCEPT

-A FORWARD -o br-eaa791e079d2 -j DOCKER

-A FORWARD -o br-eaa791e079d2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -i br-eaa791e079d2 ! -o br-eaa791e079d2 -j ACCEPT

-A FORWARD -i br-eaa791e079d2 -o br-eaa791e079d2 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22022 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

未分类

上述iptables规则中,我们需要关注nat规则和filter规则,对于nat规则中我们只需要关注POSTROUTING中ip地址即可。

该ip地址就是docrer0网卡的ip地址,我们可以通过ip a命令进行查看,如下:

ip add

未分类

对于filter规则中,需要我们关注如下规则:

:DOCKER - [0:0]

-A FORWARD -o br-d63b827b6fc9 -j DOCKER

-A FORWARD -o br-d63b827b6fc9 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -i br-d63b827b6fc9 ! -o br-d63b827b6fc9 -j ACCEPT

-A FORWARD -i br-d63b827b6fc9 -o br-d63b827b6fc9 -j ACCEPT

其中br-d63b827b6fc9为docker所在机器的桥接网卡地址,如果docker所在机器有多块网卡的话,我们可以通过登录进入docker容器查看ip地址,就可以得到该容器运行时所使用的宿主机的网卡。

示例如下:

docker exec -it ilanni_mysql /bin/bash

ip a    

未分类

八、配置wordpress上传图片权限

按照上述步骤迁移完毕后,在发布文章时,你会发现wordpress提示你没有上传图片的权限。

这个应该是wordpress镜像的一个bug,需要我们修改wordpress镜像的upload目录的权限,如下:

docker exec -it ilanni_wordpress /bin/bash

chown www-data:www-data -R wp-content/uploads/

未分类

配置WordPress上传图片/附件文件同步到UPYUN又拍云存储

这几天笔者一直在折腾UPYUN又拍云存储相关的问题且整理到不少的基础文章,昨天已经创建且绑定域名,并且又拍云还支持一键快速配置SSL证书。对于一般的站长而言,我们希望网站速度打开快一些,这样用户体验会比较好,如果在本身的服务器资源比较固定限制的时候,我们就要寻求细微的改善,比如将静态资源与网站分离,一般会使用到第三方云存储+CDN加速。

因为考虑到UPYUN又拍云免费空间支持HTTPS流量,所以暂时就准备将占用资源较大的图片资源单独存放到又拍云存储中,这样就减低页面的加载资源提高速度。我们可以实现的方法有很多种,比如可以手工将图片传到云存储空间中,然后编辑文章的时候调用图片,或者采用W3 Total Cache缓存插件结合FTP同步上传图片。

在这篇文章中,我准备使用hacklog remote attachment upyun插件,实现WordPress附件图片文件上传到又拍云存储中,然后直接从又拍云存储调用图片,一来可以降低服务器的存储空间,二来可以提高网站打开速度,毕竟这类第三方存储空间具备CDN加速,应该是比自己服务器速度快。

未分类

第一、 WordPress同步又拍云插件

插件地址:https://github.com/ihacklog/hacklog-remote-attachment-upyun

目前这款插件并没有在WordPress官方平台中,以前有一款老版本在的,这款比较新的插件提交在GITHUN上,我们下载后安装到当前WordPress网站中。

第二、 配置同步又拍云插件准备工作

1、如果我们直接看到这篇文章的,那需要创建一个又拍云存储空间,如果我们域名有BA过的,可以设定绑定自己的域名,这样觉得更加专业一点点,也可以选择启动SSL证书,具体可以参考这篇文章。

2、开启表单API

未分类

因为我们上传的图片、附件文件会直接上传到又拍云存储中,所以需要开启API,这样不经过本地服务器,直接传到又拍云存储空间中。

3、开启防盗链

未分类

如果我们附件文件较大,或者希望启动防盗链,可以直接开启Token 防盗链,设置一个密钥,记下来,等会设置需要,如果不希望启动那就不管了。

第三、 又拍云同步WordPress插件设置

1、管理员、表单API设置

未分类

根据我们创建的云存储空间设置空间名称、操作员用户名和密码。以及我们开启的API密钥,其他参数默认。如果防盗链设置密钥后,就填写,没设置启动就留空。

2、设置URL和路径

未分类

上面几行的参数都默认即可,主要是最后这三行,远程URL是我们自定义的域名,以及在服务器和存储空间保存文件的路径。

第四、 WordPress站点文件的路径定向

因为我们即将图片和附件都采用又拍云存储空间上的,如果我们是新网站那就不用管,但是已经本地有存储图片的,我们需要全部转移拷贝一份到远程空间中。这里我们直接用FTP链接到又拍云,然后对应路径传上去。

未分类

理论上我们需要将全站本地地址的目录替换成又拍云的绑定空间的地址,但是这个插件提供一键转移,点击后直接就替换掉了。刷新页面,我们可以看到当前的全部使用的又拍云空间存储地址文件。

第五、 小结

1、这个hacklog remote attachment upyun插件能够和又拍云完美结合,将WordPress附件文件传到存储中,使得静态文件完全调用又拍云存储的,提高网站速度降低资源占用。

2、唯一不足的是上传文件完全到又拍云存储中,本地没有同步一份,如果能给用户选择本地也保存一份这样对于数据的安全会更好一些。这样完全是在又拍云,如果,我们定期也需要将又拍云存储文件备份到本地,确保数据的安全。

解决WordPress的Fatal Error: Out of Memory

WordPress 偶尔出现 502 Bad Gateway 错误,通过查看日志,发现是 Fatal Error: Out of Memory 错误,也就是内存不足导致的,最好的解决方法就是直接升级服务器配置啦,如果你是VPS 或者 是共享主机,可以尝试下面的方法来解决:

方法一:You can even consider adding a line in .htaccess file which will resolve the issue.

php_value memory_limit 256M

就是在 .htaccess 文件中加上红色的那行字

方法二:Add this to your wp-config.php file:

define (‘WP_MEMORY_LIMIT’, ‘256M’ );

在你的 wp-config.php 文件中加上红色的那行字

方法三:wp-settings.php,编辑这个文件,修改define(‘WP_MEMORY_LIMIT’, ’32M’);为

define(‘WP_MEMORY_LIMIT’, ‘256M’);

方法四:在你的博客目录中添加一个 php.ini 文件,并且写入下面那行

memory_limit=256M

方法五:其实是方法四升级版:在你的博客目录中添加一个 php.ini 文件,并且写入下面的内容

register_globals=Off
safe_mode=off
magic_quotes_gpc=On
allow_url_include=Off
file_uploads=on
memory_limit=256M
max_executi alt=90
post_max_size=10M
upload_max_filesize=10M
max_input_time=300

如果以上加大内存的方法,还是不能够解决 Fatal Error: Out of Memory ,那你的WordPress可能某个插件 或 个功能,真的很耗内存,可以尝试用「WordPress插件:P3,找出拖慢网站的插件」排查。