简介
这篇博文对于从零开始建站的小伙伴可能会有所帮助。相信在着手建站之前,大家一定已经看过了很多教程,肯定也发现了教程都各不相同,难免使人迷惑。这里把自己在建站过程中遇到了各种各样奇怪的问题,这里一一做下记录,希望这篇博客可以让独立建站的你少走弯路。
前期准备工作
1 阿里云服务器( 教育版一年一百多)
2 域名(万网购买)
3 备案 (大约15天,如果你购买的服务器是在大陆需要备案)
4 域名解析
上面这4个必备环节的准备工作比较简单。也没有出现难以解决的问题。阿里云客服服务态度超好。
服务器环境构建
使用WordPress建站,必备环境要安装PHP、数据库等。首先打开中文版WordPress官网:https://cn.wordpress.org/
查看必要说明 https://codex.wordpress.org/zh-cn:%E5%AE%89%E8%A3%85_WordPress。
运行WordPress最低环境要求。
PHP version 7.3 or greater.
MySQL version 5.6 or greater OR MariaDB version 10.1 or greater.
HTTPS support
提示:这里可以单独分别安装PHP、MySQL等,但是我强烈不建议分别安装,中间遇到的问题会浪费很多时间,如果你想借此练手,也很不建议。这也是我走过的弯路。
同样不推荐Wampserver安装所有环境,虽然Wampserver安装简单,但是对于新手来说需要自己设置的东西太多。
这里我强烈推荐PHPStudy安装所需环境,真的超级简单。所有设置基本都可以可视化操作。
这里有一个问题,如果服务器中已经安装了MySQL,使用PHPStudy会重新安装MySQL,这一点一定要注意。
我采取的方法是,备份最先安装的MySQL A数据文件data,然后卸载MySQL A。使用PHPStudy安装后,新的MySQL B。
安装后,将data文件拷贝到新安装的MySQL B目录data中即可。
PHPStudy安装
1 安装超级简单
![](https://i-blog.csdnimg.cn/blog_migrate/d57836446c7c315eb4490a03e3482b52.png)
这样所有WordPress所需环境就安装好了。
2 从phpstudy其他选项菜单打开phpMyadmin,设置网站数据库
数据库用户名root,默认密码root
![](https://i-blog.csdnimg.cn/blog_migrate/bcf7aba24825f7cbdc8ed9c562c5de6f.png)
新建数据库 wordpress,创建。这里数据库名可以自己根据情况取名。
3 安装wordpress
这里的wordpress需要下载和php版本一致的版本,否则会提示所需Php版本较低。如果提示了就下载一个老版本的WordPress就行了。
(1) 在phpstudy 其他选项菜单中,打开网站根目录菜单,就可以跳转到www文件夹。将下载的WordPress解压至该文件夹。
(2) 打开浏览器,输入localhost/wordpress/进入安装步骤,按照步骤提示安装即可。
(3)安装结束。
![](https://i-blog.csdnimg.cn/blog_migrate/d5395d50c600baf17e8de09871c443f1.png)
如果修改了服务器密码,就在WordPress文件夹中,将wp-config.php配置文件用记事本打开,修改其中的数据库密码即可。
(4)使用域名打开网站。发现显示的是helloword。做如下修改。
网站目录选择www内wordpress文件夹,点新增,和保存设置并生成配置文件。
![](https://i-blog.csdnimg.cn/blog_migrate/9222778f8a62846c463e3b3cbc2f288c.png)
4 出现各种问题及解决方法
(1) 出现You don’t have permission to access / on this server的解决办法
https://www.06929.com/jsjh/technology/3632.html
(2) 网页公网打开仅显示文字
进入localhost/wordpress/wp-admin/将地址和站点URL都改为自己的域名就好了。
(3)打开博客,无法进入内容,出现错误 Internal Server Error
方法1:内部服务器错误(错误500)通常是由插件或主题功能冲突引起的,请尝试停用所有插件,如果这样可以解决问题,请单独重新激活每个问题,直到找到原因。如果这不能解决问题。
方法2:请尝试切换到您的WordPress版本的默认主题,以排除特定于主题的问题。
方法3:如果这不能解决问题,那么.htaccess规则可能是问题的根源。重命名该.htaccess文件。
我是采用方法3解决的问题。
(4)配置ssl后apache无法启动问题
可能原因很多,大概率是httpd-ssl.conf配置错误导致。打开cmd窗口,运行
https://blog.csdn.net/u014345860/article/details/84671986
C:\phpStudy\PHPTutorial\Apache\bin\httpd.exe -t
查看错误记录说明,根据说明提示进行修改即可。
httpd.conf配置错误导致,
489行 Include extra/httpd-ssl.conf,默认有#,单曲去掉后,将导致apache无法启动,网页无法开启。
(6) 移除左上角 w logo
找到主题文件夹内的functions.php在其最后添加代码即可实现:
function _admin_bar_remove() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
}
add_action('wp_before_admin_bar_render', '_admin_bar_remove', 0);
(7)注册用户,邮件发送不了
登录服务器,phpstudy,php拓展,打开openssl即可
wp smtp配置方法https://blog.csdn.net/liu_yanzhao/article/details/54933605
(8) wordpress上传的文件尺寸超过php.ini中定义的upload_max_filesize值。
修改启动版本的php中php.ini文件中
upload_max_filesize = 8M
post_max_size = 8M
默认是2M。
https://www.cnblogs.com/xby1993/p/3150590.html
(9) 用户注册链接无效
1.修改WP根目录下的 wp-login.php文件
$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";
修改为
$message .=network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n";
2.WP安装目录下的/wp-includes/pluggable.php文件
$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n";
修改为
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . "\r\n\r\n";
https://blog.csdn.net/baidu_33864675/article/details/52219899
(10)移除页脚 感谢使用WordPress进行创作 信息
在 functions.php 中加入:
function change_footer_admin () {
return '';
}
add_filter('admin_footer_text', 'change_footer_admin', 9999);
function change_footer_version() {
return '';
}
add_filter( 'update_footer', 'change_footer_version', 9999);
https://wpmore.cn/wordpress-remove-admin_footer.html
(12) wordpress 建站的主题查询
https://whatwpthemeisthat.com/
在这里输入网站链接,可以获取网站的wordpress建站主题。
(13)WordPress 媒体库附件上传中文名、数字名图片自动重命名,如果不重命名为英文或数字,将无法显示或插入文章。
依然是 WordPress 的老规矩,将以下代码添加到当前主题的 functions.php 中:
//WordPress 中文名、数字名图片上传自动重命名
add_filter('sanitize_file_name','fanly_custom_upload_name', 5, 1 );
function fanly_custom_upload_name($file){
$info = pathinfo($file);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($file, $ext);
if(preg_match("/[一-龥]/u",$file)){//中文换名
$file = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前 20 位 MD5 长度,加上两位随机
}elseif(is_numeric($name)){//数字换名
$file = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前 20 位 MD5 长度,加上两位随机
}
return $file;
}
https://zhangzifan.com/wordpress-images-rename.html
(14)WordPress“添加媒体”文件时只显示上传到当前文章的附件
依然是 WordPress 的老规矩,将以下代码添加到当前主题的 functions.php 中:
//WordPress “添加媒体”文件时只显示上传到当前文章的附件
//add_action( 'wp_footer', 'fanly_mediapanel_lock_uploaded' );//让前台编辑器也生效
add_action( 'admin_footer-post-new.php', 'fanly_mediapanel_lock_uploaded' );
add_action( 'admin_footer-post.php', 'fanly_mediapanel_lock_uploaded' );
function fanly_mediapanel_lock_uploaded() {
echo '<script type="text/javascript">var $i=0;jQuery(document).on("DOMNodeInserted", function(){if(jQuery("#media-attachment-filters").length>0&&$i==0){jQuery(\'select.attachment-filters [value="uploaded"]\').attr(\'selected\',true).parent().trigger(\'change\');$i++;}});</script>';
}
https://zhangzifan.com/wordpress-media-only-uploaded.html
(15)WordPress后台只显示当前用户的媒体文件和附件:WP Users Media
WP Users Media 这个插件非常简单,安装之后,无需设置就可以让用户登录 WordPress 后台之后,只显示当前用户的媒体文件和附件。
这个插件使得用户(管理员除外)无法通过点击上传按钮和特色图片按钮访问其他用户的图片和其他附件。所以如果你的站点如果有多个作者,并且你不想让他们互相使用别人图片的时候就特别有用。
https://zhangzifan.com/wp-users-media.html
(16)WordPress删除文章时自动删除图片附件和删除媒体库内所有文件的方法
WordPress删除文章时,文章内所上传到媒体库的图片等附件不会自动删除,占用了网站空间,因此下面说明通过几行代码的简单方式实现在删除文章时自动删除缩略图以及图片附件,这样就不用手动去媒体库寻找并删除,准确而且效率高。将下面代码放到主题functions.php文件的最下面即可添加成功
/* 删除文章时删除图片附件 */
function delete_post_and_attachments($post_ID) {
global $wpdb;
//删除特色图片
$thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" );
foreach ( $thumbnails as $thumbnail ) {
wp_delete_attachment( $thumbnail->meta_value, true );
}
//删除图片附件
$attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" );
foreach ( $attachments as $attachment ) {
wp_delete_attachment( $attachment->ID, true );
}
$wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" );
}
add_action('before_delete_post', 'delete_post_and_attachments');
https://qzxx.com/30921.html
(17)插入图片自动居中排版的两种方法
比如我们设置插入图片的尺寸默认为完整尺寸,链接到媒体文件本身,并居中显示,那么我们只需要将下面的代码添加到主题的 functions.php 文件最后一个?>的前面即可:
add_action( 'after_setup_theme', 'default_attachment_display_settings' );
function default_attachment_display_settings() {
update_option( 'image_default_align', 'center' ); //居中显示
update_option( 'image_default_link_type', ' file ' ); //连接到媒体文件本身
update_option( 'image_default_size', 'full' ); //完整尺寸
}
以上代码中有三个选项,它们各自的参数如下,你可以根据自己的需要进行默认设置:
image_default_align,图片的对齐方式
left:左对齐
right:右对齐
center:居中对齐
none:无
image_default_link_type,图片的链接到
file:媒体文件本身
post:附件页面,也就是图片所在文章地址
custom:自定义URL
none:无
image_default_size,图片的尺寸
thumbnail:缩略图尺寸
medium:中等尺寸
full:完整尺寸
http://www.wazhuti.com/678.html
(18)后台文章列表仅仅显示当前作者的文章
对于WordPress多作者博客,如何让每个作者在后台只能浏览自己的文章?只需要将下面的代码添加到你主题的 functions.php 即可:
function mypo_parse_query_useronly( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
if ( !current_user_can( 'manage_options' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'mypo_parse_query_useronly' );
5 phpstudy卸载
卸载比较简单,退出程序,进程中停用phpstudy.exe httpd.exe mysql.exe等进程,如果没有就不用管。最后删掉安装文件夹即可。
https://blog.csdn.net/JonSnowY/article/details/81628974
总结
建站小白,一路下来路途坎坷,各种配置问题百出。使用了phpstudy后,半小时内实现了域名可以访问网站。