本站已放弃wordpress,转投typecho。因为我的服务器性能有限,使用wordpress会很卡,体验不好。

搭建typecho的步骤在这里:https://www.huangoo.top/index.php/archives/12/

在Ubuntu18.04上用wordpress、apache、php搭建博客。

先更新源:

sudo apt-get update
sudo apt-get upgrade

安装Apache2

安装命令:

apt-get install apache2

查看是否安装成功:

apache2 -v

image-20220520160632856

启动apache:

apache2 -k start

可能会有以下报错:AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.165.160. Set the 'ServerName' directive globally to suppress this message

解决方式是如下:

  • 打开apache2的配置文件,vim /etc/apache2/apache2.conf
  • 在文件末尾插入ServerName 127.0.0.1
  • 重启apache即可

阿里云ECS还需要在安全组里开放80端口

查看是否工作正常。在浏览器的地址栏中输入http://<ECS服务器公网IP>,看到如下图片即工作正常

image-20220520170734068

安装MariaDB Server

安装命令:

apt-get install mariadb-server

启动MariaDB Server:

systemctl start mariadb

查看运行状态:出现active (running)即说明启动成功

systemctl status mariadb

设置数据库root账户初始密码。然后再回车一次,输入两次新密码即可。

mysqladmin -u root -p password

连接数据库,需要输入刚刚设置的密码

mysql -uroot -p

mariaDB有个问题:安装后,即使修改了root的密码,也可以不用密码就登录,解决方法如下:

use mysql;
update mysql.user set authentication_string = PASSWORD('yourPassword'),plugin = 'mysql_native_password' where user = 'root' and host = 'localhost';
flush privileges;

退出再进就需要输入密码了

创建WordPress数据库

create database wordpress;

查看创建好的数据库

show databases;

image-20220520163357744

创建一个新用户并设置密码

create user 'wordpressuser'@'localhost' identified by 'password12';

赋予用户权限,不然后面wordpress会显示无法选择数据库

grant all on wordpress.* to wordpressuser@localhost;

生效设置

FLUSH PRIVILEGES;

退出数据库

exit;

卸载mariadb的方法:

sudo apt-get remove mysql-*
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

然后选择yes即可

安装PHP

安装PHP

apt-get install php

还需要安装PHP的其他组件

apt install libapache2-mod-php
apt install php-mysql
apt install php-curl
apt install php-gd
apt install php-xml
apt install php-mbstring
apt install php-xmlrpc
apt install php-zip
apt install php-soap
apt install php-intl
apt install php-imap
apt install php-pear

创建PHP测试页面

 echo "<?php phpinfo();?>"> /var/www/html/phpinfo.php

重启apache

apache2 -k restart

在浏览器的地址栏中填入http://公网IP/phpinfo.php。出现以下页面即安装PHP完成

image-20220520172820790

安装WordPress

安装WordPress

apt-get install wordpress

修改WordPress配置文件

修改wp-config.php指向路径为绝对路径

cd /usr/share/wordpress
ln -snf /etc/wordpress/wp-config.php wp-config.php

/usr/share/wordpress下,执行以下命令,移动wordpress文件到Apache根目录

domain_name是你申请的域名,方便后面配置apache2。

mkdir /var/www/html/domain_name
mv * /var/www/html/domain_name/

WordPress安装之后的配置文件为wp-config-sample.php,因此需要先进行一次改名

  • cd /var/www/html/domain_name
  • mv wp-config-sample.php wp-config.php

修改配置文件vim -n /var/www/html/domain_name/wp-config.php。把之前创建的数据库名、用户名、密码填入配置文件

image-20220520195214114

重启Apache

systemctl restart apache2

设置WordPress

在浏览器地址栏中输入http://公网IP/domain_name/wp-admin/install.php。没问题的话就会进入以下界面

image-20220520211914985

设置好站点名称、管理员账号、密码和邮箱即可。

绑定域名

绑定域名后就可以通过域名访问博客了。因此需要先买一个域名。

国内域名购买后需要ICP备案和公安备案,否则无法访问。这里,我是在阿里云上买的域名。

域名解析

进入阿里云域名控制台,然后进入解析设置,点击新手引导,输入服务器公网IP,确定。完成

wordpress配置

先通过IP地址进入wordpress:http://公网IP/domain_name/wp-login.php

登录后,在设置里把两个url改成http://domain_name

保存。这是会显示404,不用担心,配置完成后刷新即可恢复正常。

apache2配置

切换目录

cd /etc/apache2/sites-available

apache2默认有一个配置文件(一个配置文件对应一个网站)。我们最好还是为博客重新创建一个配置文件:

touch /etc/apache2/sites-available/domain_name.conf

在配置文件中写入:

<VirtualHost *:80>
    ServerName domain_name
    ServerAlias www.domain_name
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html/domain_name
    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
  • ServerAdmin:这里可以填你的邮箱,如果服务器有任何问题将发信到这个地址, 这个地址会在服务器产生的某些页面中出现
  • DocumentRoot:网站根目录

此时配置文件还没生效,需要将其连接到sites-enabled下:

a2ensite domain_name

测试一下有没有语法错误:

apachectl configtest

如果没有错误,会输出

Syntax OK

重启Apache服务,使修改生效:

systemctl restart apache2

到这里应该就可以在浏览器中输入你的域名来访问博客了。

禁止访问目录

目前wordpress根目录下的wp-content和wp-includes还暴露在外面,通过domain_name/wp-content,访客就可以访问这些文件。这很不安全。因此需要设置禁止访客访问这两个目录。

首先,打开apache2的配置文件:

sodu vim /etc/apache2/apache2.conf

然后添加以下代码:

<Directory /var/www/html/domain_name/wp-includes>
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

<Directory /var/www/html/domain_name/wp-content>
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

退出vim后,重启apache2服务

systemctl restart apache2

之后访客再访问这两个目录就会显示403.

关于插件

插件可以让我们很方便的管理博客。我目前装了以下几个插件:

  • Disable Comments:禁止全部评论功能。这样的博客就不是交互式的了
  • Login Lockdown:登录错误次数超过设定值禁止对应IP登录
  • WP Statistics:统计访客访问信息,包括IP地址、国家、地区、设备类型等
最后修改:2022 年 08 月 11 日
如果觉得我的文章对你有用,请随意赞赏