wordpress个人博客源码
编辑整理:整理来源:搜狗问问,浏览量:50,时间:2023-03-26 05:32:01
前沿:wordpress个人博客源码
补充知识:
域名解析到网站空间后,我们就可以开始我们的网站内容建设工作了。现在建一个网站,还是非常简单的,只需要安装一个网站程序,就可以让我们的网站运行起来。前面,我们安装宝塔面板时,安装的是Php + Mysql + apache的网站环境,所以,我们要选择php语言的网站程序安装到我们的网站空间。php语言的网站程序还是非常多的,如:织梦CMS、z-blog、帝国CMS、discuz论坛、wordpress等等。我们这里选择wordpress程序作为演示。
第一步:下载wordpress程序。
我们可以百度一下“wordpress下载”,搜索结果中的第一条就是wordpress中文官网的下载地址,如下图:
点击它,进入到wordpress程序的下载页面。我们可以看到最新版本的wordpress程序下载链接,点击下载。如下图:
第二步:FTP远程连接网站空间。
我们在宝塔后台创建 ssmay. top 域名网站时,我们还为这个网站创建了 FTP 。我们到宝塔后台去查看这个FTP的用户名和密码,呆会儿会用到。如下图:
打开电脑中安装好的FTP软件,我这里使用的是flashfxp.exe,点击“会话”=>“快速连接”,弹出快速连接窗口,填写上 “服务或URL、用户名、密码”,然后点击“连接”按钮。如下图:
第三步:通过FTP上传wordpress程序到网站空间。
FTP软件连接上网站空间后,我们就可以上传我们刚才下载下来的wordpress程序到网站空间了。如下图中,我们可以使用鼠标左键,拖动FlashFXP窗口中左边本地硬盘中的wordpress程序,到右边的网站空间中。也可以在wordpress文件名上点击鼠标右键,再点击“传送”。这样就会把wordpress上传到空间。
第四步:解压wordpress压缩文件。
wordpress程序上传到网站空间后,我们点击宝塔后台“文件”菜单,可以在后台文件列表中看到刚刚上传的wordpress-5.4.1-zh_CN.zip压缩文件,如下图:
鼠标移到这个文件列上,在它的右侧会显示出“复制、剪切、压缩、解压”等按钮。这里,我们点击“解压”,wordpress程序就会解压到空间,出现一个wordpress文件夹目录。如下图:
点击“wordpress”进入文件夹,勾选“全选”,然后点击右上角的“剪切”,再点击“返回上级目录”,如下图:
返回到上级目录后,点击“粘贴所有”,如下图:
这样,我们就把wordpress程序的源代码上传到了ssmay. top域名的网站。
第五步:安装wordpress程序。
1、浏览器中打开 ssmay. top网站,进入到wordpress安装界面,如下图。
2、点击“现在就开始”,进入到表单信息提交界面,我们填写好“数据库名、用户名、密码、主机地址”,数据库信息在宝塔后台的数据库菜单中都可以找到。主机地址,一般不需要更改(localhost)。
3、点击“提交”按钮。并“现在安装”,进入到欢迎界面,如下图。
4、在这个界面,我们要填写我们网站的标题、管理员用户名及密码、、管理员的电子邮箱,然后再点击“安装wordpress”按钮,开始安装。
5、进入到如上图这样的页面,就表示wordpress安装成功了。这时,我们可以用刚才创建的管理员用户名和密码登录 ssmay. top 网站后台了。
从上面的几个安装步骤,我们可以看出,给网站安装wordpress程序是非常简单的,就算你是一个从来没有接触过网站的wordpress菜鸟,只要按着上面的步骤,一步一步地来操作,你的wordpress网站也是可以完整展现在你的眼前。
如有不明之处,可以在下面留言。关注我吧,后面的文章会更加精彩哦。
补充拓展:wordpress个人博客源码
一。研汽联鲜洲绍度着朝究wordpress时wordpess的密码密码生成与登录密码验证方式很重要
WordPress密码已成为整间朝克减代部合的首要目标,如何征服整合,就得了解WordPress密码算法。
WordPress系统的用户密码是保存在wp_users数据表的user_pass字段,密码是通过Po济垂做互rtable PHP password hashing framework类产生的,密码的形式是随机且不减可逆,同一个明文的密码在不同时间,产生的密文也不一样,相对来说较为安全。
二。密码生成方式
> 随机产生一个salt 并将salt和password宣走限另目相加
> 进行了count次md5 然后和encode64的hash数值累加
> 最后得到一个以$P$开头的密码,这个密码每次应距具产生的结果都不一样
以下为在wordpress中调用密码生成的代码
[php] view plain copy print?
<?php
$password = 'abc';
glo场预威白失距究破建bal $wp_hasher;
if ( empty($wp_hasher) ) {
require_once( './wp-includes/class-phpass.php');
$wp_hashe倒自入教吗外宗占过季钱r = new PasswordHash(8, TRUE);
}
echo $wp_hasher->HashPassword($p务没青话稳地差批脚造assword);
?>
三。wordpress密码生成与登录验证
wordpress中位置为\wp-in供于硫胞真小促督cludes\class-phpass.php
以下是wordpress中生成密码的代码直接运行可查看密码的生成以及要啊油验证过程
[php] view plain copy print?
<?php
class PasswordHash {
var $itoa64;
var $iteration_count_log2;
var $portable_hashes;
var $random_state;
function Pa办抓轴需重片实香矿sswordHash($iteration_count_log2, $portable_hashes)
{
$this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVW张有你的材济序土XYZabcdefghijklmnopqrstuvwxyz';
if ($iteration_count每长阿证企看李巴操剧块_log2 < 4 || $iteratio六价万简静洲n_count_log2 > 31)
$iteration_count_log2 = 8;
$this->iteration_count_log2 = $iteration_co刚官消unt_log2;
$this->portable_hashes = $portable_hashes;
$this->random_state = microtime() . uniqid(rand(), TRUE); // removed getmypid() for compability reasons
}
function get_random_bytes($count)
{
$output = '';
if ( @is_readable('/dev/u死每庆较神春商random') &&
($fh = @fop('/dev/urandom', 'rb'))) {
$output = fread($fh, $count);
fclose($fh);
}
if (strlen($output) < $count) {
$output = '';
for ($i = 0; $i < $count; $i += 16) {
$this->random_state =
md5(microtime() . $this->random_state);
$output .=
pack('H*', md5($this->random_state));
}
$output = substr($output, 0, $count);
}
return $output;
}
function encode64($input, $count)
{
$output = '';
$i = 0;
do {
$value = ord($input[$i++]);
$output .= $this->itoa64[$value & 0x3f];
if ($i < $count)
$value |= ord($input[$i]) << 8;
$output .= $this->itoa64[($value >> 6) & 0x3f];
if ($i++ >= $count)
break;
if ($i < $count)
$value |= ord($input[$i]) << 16;
$output .= $this->itoa64[($value >> 12) & 0x3f];
if ($i++ >= $count)
break;
$output .= $this->itoa64[($value >> 18) & 0x3f];
} while ($i < $count);
return $output;
}
function gensalt_private($input)
{
$output = '$PXXXXX;
$output .= $this->itoa64[min($this->iteration_count_log2 +
((PHP_VERSION >= '5') ? 5 : 3), 30)];
$output .= $this->encode64($input, 6);
return $output;
}
function crypt_private($password, $setting)
{
$output = '*0';
if (substr($setting, 0, 2) == $output)
$output = '*1';
$id = substr($setting, 0, 3);
# We use "$P{1}quot;, phpBB3 uses "$H{1}quot; for the same thing
if ($id != '$PXXXXX && $id != '$HXXXXX)
return $output;
$count_log2 = strpos($this->itoa64, $setting[3]);
if ($count_log2 < 7 || $count_log2 > 30)
return $output;
$count = 1 << $count_log2;
$salt = substr($setting, 4, 8);
if (strlen($salt) != 8)
return $output;
# We're kind of forced to use MD5 here since it's the only
# cryptographic primitive available in all versions of PHP
# currently in use. To implement our own low-level crypto
# in PHP would result in much worse performance and
# consequently in lower iteration counts and hashes tt are
# quicker to crack (by non-PHP code).
if (PHP_VERSION >= '5') {
$hash = md5($salt . $password, TRUE);
do {
$hash = md5($hash . $password, TRUE);
} while (--$count);
} else {
$hash = pack('H*', md5($salt . $password));
do {
$hash = pack('H*', md5($hash . $password));
} while (--$count);
}
$output = substr($setting, 0, 12);
$output .= $this->encode64($hash, 16);
return $output;
}
function gensalt_extended($input)
{
$count_log2 = min($this->iteration_count_log2 + 8, 24);
# This should be odd to not reveal weak DES keys, and the
# maximum valid value is (2**24 - 1) which is odd anyway.
$count = (1 << $count_log2) - 1;
$output = '_';
$output .= $this->itoa64[$count & 0x3f];
$output .= $this->itoa64[($count >> 6) & 0x3f];
$output .= $this->itoa64[($count >> 12) & 0x3f];
$output .= $this->itoa64[($count >> 18) & 0x3f];
$output .= $this->encode64($input, 3);
return $output;
}
function gensalt_blowfish($input)
{
# This one needs to use a different order of characters and a
# different encoding scheme from the one in encode64() above.
# We care because the last character in our encoded string will
# only represent 2 bits. While two known implementations of
# bcrypt will happily accept and correct a salt string which
# has the 4 unused bits set to non-zero, we do not want to take
# chances and we also do not want to waste an additional byte
# of entropy.
$itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$output = '$2aXXXXX;
$output .= chr(ord('0') + $this->iteration_count_log2 / 10);
$output .= chr(ord('0') + $this->iteration_count_log2 % 10);
$output .= 'XXXXX;
$i = 0;
do {
$c1 = ord($input[$i++]);
$output .= $itoa64[$c1 >> 2];
$c1 = ($c1 & 0x03) << 4;
if ($i >= 16) {
$output .= $itoa64[$c1];
break;
}
$c2 = ord($input[$i++]);
$c1 |= $c2 >> 4;
$output .= $itoa64[$c1];
$c1 = ($c2 & 0x0f) << 2;
$c2 = ord($input[$i++]);
$c1 |= $c2 >> 6;
$output .= $itoa64[$c1];
$output .= $itoa64[$c2 & 0x3f];
} while (1);
return $output;
}
function HashPassword($password)
{
$random = '';
if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) {
$random = $this->get_random_bytes(16);
$hash =
crypt($password, $this->gensalt_blowfish($random));
if (strlen($hash) == 60)
return $hash;
}
if (CRYPT_EXT_DES == 1 && !$this->portable_hashes) {
if (strlen($random) < 3)
$random = $this->get_random_bytes(3);
$hash =
crypt($password, $this->gensalt_extended($random));
if (strlen($hash) == 20)
return $hash;
}
if (strlen($random) < 6)
$random = $this->get_random_bytes(6);
$hash =
$this->crypt_private($password,
$this->gensalt_private($random));
if (strlen($hash) == 34)
return $hash;
# Returning '*' on error is safe here, but would _not_ be safe
# in a crypt(3)-like function used _both_ for generating new
# hashes and for validating passwords against existing hashes.
return '*';
}
function CheckPassword($password, $stored_hash)
{
$hash = $this->crypt_private($password, $stored_hash);
if ($hash[0] == '*')
$hash = crypt($password, $stored_hash);
return $hash == $stored_hash;
}
}
//原始密码
$passwordValue = "123456";
//生成密码
$wp_hasher = new PasswordHash(8, TRUE);
$sigPassword = $wp_hasher->HashPassword($passwordValue);
echo "生成的密码为:".$sigPassword;
echo "\n";
//验证密码
$data = $wp_hasher->CheckPassword($passwordValue,$sigPassword);
if($data){
echo '密码正确';
}else{
echo '密码错误';
}
?>
此为一个wordpres密码生成与登录验证实例,其中HashPassword为生成密码,CheckPassword为验证密码
itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 为以上提到的生成salt的基础字符串。
备注:由于csdn代码显示插件对特殊字符的限制。 请将以上代码中 XXXXX替换为 $' 注意有单引号,代码中一共有5处
行业热门话题:
【wordpress个人博客网站】【wordpress搭建个人博客教程】【wordpress个人博客主题 简约】【wordpress博客模板】【如何用wordpress搭建个人独立博客ppt】【wordpress博客小程序】【wordpress适合做博客的主题】【wordpress个人博客模板】【个人博客 wordpress】【用wordpress做博客】
wordpress个人博客源码完!