wordpress权限管理
WordPress很奇怪的问题-管理员不能安装主题和插件/不能删除
wordpress出现的问题wordpress外贸建站的客户遇到很奇怪的问题,他的wordpress后台没有安装插件的入口,插件除了能启用/禁用,也没有删除按钮,主题也是无法在后台上传,还有wordpress核心升级也没有入口,总之就是少了很多常规菜单。
排查过程主题/插件问题:起初以为是插件/主题的问题,因为有安装一个插件,可以修改后台菜单,角色权限等。试着禁用所有插件,但问题还是依旧存在,再换个主题,也是一样的问题。管理员权限问题:接下来排查管理员权限,因为网站里面有好几个管理员(角色为administrator),我们用系统第一个管理员账户登陆,创建一个新的管理员,用新的管理员登陆,发现也是一样的问题。核心程序问题:接下来排查核心程序,重新安装核心程序,并且修复数据库表,但还是一样的问题。配置问题:接下来排查配置问题,打开wp-config.php文件,发现多了以下2行代码,也不知道是客户安装了哪个插件自动写入的。define(‘DISALLOW_FILE_EDIT’, true);define(‘DISALLOW_FILE_MODS’,true); 问题解决方法
从你的网站主机控制面板,文件管理,进入 wordpress网站根目录,打开wp-config.php文件编辑,把true改false ,或者直接删除,保存文件,wordpress后台刷新一下就正常了。
原文:Wordpress很奇怪的问题-管理员无权限升级/不能安装主题和插件/不能删除 - 美络云MLoun
LNMP架构部署
一、网站架构1、常见网站架构LNMP网站架构是目前国际流行的web框架,该框架包括Linux操作系统,Nginx网络服务器,MySQL数据库,PHP编程语言。
LAMP网站架构是目前最流行的web框架,该框架包括Linux操作系统,Apache网络服务器,Mysql数据库,PHP编程语言。
LNOT网站架构是群众诉求的web框架,该框架包括Linux操作系统,Nginx网络服务器,Oracle数据库,tomcat网络服务器。
2、网站架构特性
引入问题
问题:为什么网站架构基本都是使用Linux开发的?????
回答这个问题之前,我们先看一下操作系统的市场份额
从图中我们看到,在市场的这一块,windows操作系统还是占比最大,达到90.83%,而Linux只是占比1.64%
但是在全球的网站开发系统占比中,Linux远远高于Windows(据某新闻报道)
这又引入第二个问题
为什么,windows的市场份额占比高达90%,而在web市场只是占比25%????
这个就得要说明一下Linux的优势了
1)、Linux免费,Windows软件非免费
2)、Linux更节约资源,不耗内存
3)、Linux运行稳定
4)、现在网站一般都是使用php变成语言,只有少量会用到asp和.net(这两种语言是微软开发的,只能运行在windows服务器上)
二、LNMP架构上文我们已经简单的了解Linux的优势,下面正式进入架构学习
1、LNMP工作流程①、用户通过http协议发起请求,请求会先抵达LNMP架构中的nginx
②、nginx会根据用户的请求进行判断,这个判断是由location进行完成
静态请求:nginx会直接进行处理
动态请求:nginx会将该请求交给fastcgi协议下发到php
③、fastcgi会将请求交给php-fpm程序进行解析,php-fpm管理进程接收到后会调用具体的工作进程warrap
④、warrap进程会调用php程序进行解析,如果只是解析代码,则php直接返回
⑤、如果有数据库操作,则由php连接数据库发起查询的操作
2、LNMP架构1)、单机架构
2)、高可用架构
三、LNMP架构部署 1、PHP部署安装依赖包
[root@localhost ~]# yum install -y gcc gcc++ libxml2-devel
下载php
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget
解压源码包
[root@localhost src]# tar -zxvf php-5.6.36.tar.gz
进入到解压后的目录,将配置写入makefile文件
./configure是编译makefile文件的工具,--prefix指定安装PHP的目录 –enable-fpm选项用于监听php请求
[root@localhost php-5.6.36]# ./configure --prefix=/usr/local/php --enable-fpm --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
[root@localhost php-5.6.36]# make && make install
进入到php安装目录sbin,执行./php-fpm启动php
[root@nginx1 sbin]# ./php-fpm
2、Nginx部署安装依赖包
[root@nginx1 ~]# yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
上传源码包到tmp目录
解压该源码文件
[root@nginx1 tmp]# tar -zxvf nginx-1.20.0.tar.gz
进入到nginx-1.12.0目录,指定安装目录/usr/local/nginx
[root@nginx1 nginx-1.20.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
编译安装
[root@nginx1 nginx-1.20.0]# make && make install
进入到/usr/local/nginx/sbin,执行./nginx启动nginx服务
[root@nginx1 sbin]# /usr/local/nginx/sbin/nginx
查看nginx是否启动成功
[root@nginx1 sbin]# ps -ef | grep nginx
3、mysql部署安装mariadb
因为mysql要收费,所以安装mariadb也足够使用
[root@localhost ~]# yum install -y mariadb mariadb-server
启动mariadb数据库
[root@localhost ~]# systemctl start mariadb
对数据库简单配置
[root@lnmp ~]# mysql_secure_installation
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的root密码
其他步骤直接回车即可
登录数据库
[root@lnmp ~]# mysql -uroot -p
四、LNMP架构配置1、nginx与php
server {
listen 80;
server_name 10.100.1.10;
root /usr/local/nginx/html;
index index.html index.html;
location ~ \.php$ {
fastcgi_index index.php;##默认的php识别首页文件
fastcgi_pass 127.0.0.1:9000;##将状态请求转发到本地主机的9000端口
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;##识别访问网站url资源路径
include fastcgi_params;##让nginx程序可以识别一些内置变量
}
}
php创建一个文件,用于测试
[root@master ~]# cat 1.php
<?php
echo "hello world"
?>
网页访问
2、php与mysql
php创建一个文件,用于测试与mysql的交互
[root@master ~]# cat mariadb.php
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "663911";
//创建连接
$conn = mysqli_connect($servername,$username,$password);
//检测连接
if (!$conn) {
die("Connection failed:" . mysqli_connect_error());
}
echo "php连接MySQL数据库成功"
>?
网页访问
五、项目实战部署一个个人博客网站
1) 、nginx配置
2) 、创建wordpress数据库
3) 、下载最新版本的wordpress到/usr/local目录
4) 、解压该文件
5) 、网页打开
6)、填写数据库信息
7)、登录
8)、进入博客
六、问题总结1、启动php失败原因:配置文件没有准备好
查看/usr/local/php/etc下的文件,并无php-fpm.conf文件
将php-fpm.conf.defaults文重命名为php-fpm.conf文件
重新启动服务
2、nginx与php服务程序串联,网页访问php失败查看nginx文件的php地址是本机IP:10.100.1.13
php配置的地址是127.0.0.1
9000端口监听的地址也是127.0.0.1
修改nignx的配置
重新访问,访问成功
3、搭建wordpress时,目录权限都显示红叉目录权限不足,一般都是目录属主和属组的问题,查看当前目录的属主和属组都为root
找到php-fpm www.conf的配置文件路径
www.conf这是php-fpm进程服务的扩展配置文件
查看当前的使用用户是apache
将wordpress的目录的属主和属组都设置为apache
刷新后成功
七、心得体会1、搭建学习过程中,文档、案例和问题做好归档整理,避免后期需要时,没有文档支持。
2、事前梳理好架构、流程,事中做好记录,事后做好总结。
3、遇到问题,懂得怎么去查看报错日志。
4、掌握处理问题的思路。
Wordpress通过升级避免网站漏洞
为什么Wordpress要升级?修复上一版本所存在的功能样式BUG增加新的网站功能修复网站漏洞,及时打补丁所以WP更新要准时,而且版本也不要相隔太远,否则升级就有可能出错。而且升级前一定要先把网站备份下来
准备工作: 备份!!!!
1、备份数据库
mysqldump -uroot -p -B wordpress > /root/wordpress.sql
2、备份网站数据
我这里的网站的数据都在 /usr/local/nginx/html 目录下,所有直接备份这个目录即可
cp -rp /usr/local/nginx/html /roo/html-bak0823
下面有两种更新的方案,这里推荐第二种方案
网站后台更新 不推荐!当有新的Wordpress版本出现时,网站后台就会有升级提醒,只要点击进去,点击“现在更新”就可以了。
这种方法是傻瓜式操作,不需要任何技术含量。但也有比较大的缺点,当网络传输不正常时,就容易升级失败,导致WP文件丢失,网站打开空白。
手动文件更新 ? 极力推荐 ?A . 先下载Wordpress最新版解压,得到下面文件。然后把wp-content文件夹删掉,把剩下的文件在FTP上传替换,升级网站文件。
B . 在浏览器上输入地址:域名/wp-admin/upgrade.php升级数据库。
当第一种升级方法出现问题失败时,可用第二种方法重新升级。
升级完成后,登录网站后台,把网站插件开启即可。至于升级Wordpress网站系统后,主题和插件不兼容的情况,这就需要开发者也把主题和插件跟着升级一下。
另外:如果升级后,在安装插件的时候,提示 wordpress安装主题或插件需要使用FTP
问题现象:
要执行请求的操作,WordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。
解决方法:
1、连接FTP空间,进入wp-content目录,新建tmp文件夹,设置文件夹的权限为777
2、设置wp-content目录中的plugins(插件)和themes(主题)文件夹权限为777
3、在wordpress目录下找到wp-config.php文件,并将其下载到本地打开
4、后面添加如下代码
define('WP_TEMP_DIR', ABSPATH.'wp-content/tmp');brdefine("FS_METHOD", "direct");brdefine("FS_CHMOD_DIR", 0777);brdefine("FS_CHMOD_FILE", 0777)
最终wp-config.php内代码
5、将修改好的wp-config.php上传并覆盖原始文件
注意:一定先建立tmp,在设置权限为777,最后修改wp-config.php配置文件