之前想搞Hexo的时候,看网上有人说自己在主机上搭建WordPress还是比较考验动手能力的。是一个比较有挑战性的任务。那时候也尝试过一会,可能是因为看的教程不是特别好的缘故,所以失败了。今天花了一天的时间断断续续终于把想搞的WordPress搞成了,专门写一篇日志来记录下来。
起因是之前在WordPress.com上也用过托管的wp站点,写过2篇文章,昨天想要编辑一下却发现点了编辑按钮以后页面迟迟加载不出来。正巧自己也有云主机和域名都没有派上用场,所以还是抱着试试看的态度,再来搞一回。
教程主要来自官方https://wordpress.org/support/article/how-to-install-wordpress/
不过作为第一次安装的新手只看这个教程恐怕是不够的。我认为wp安装本身已经是无可挑剔了,只不过和它配套的其他软件还是稍微有点多。需要安装数据库MySQL/Maria,Apache,php运行环境,有的教程还会让你装phpmyadmin。一个数据库系统,一个web服务器,一个运行环境,还有数据库的管理工具。确实有3~4个额外的软件要装。可能还需要nginx?这点我没验证,因为我主机上已经装了nginx,回头第二次装的时候可以再验证一下nginx是不是必须的。
准备工作:
云主机环境: Debian GNU/Linux 10 (buster)
上面之前就装了一个nginx,访问主机公网ip就能打开nginx页面,我想我暂时不需要nginx,就把nginx关了。
nginx -s stop
nginx -s quit
验证是否关闭成功,就是再次访问主机的公网ip,显示无法访问才是对的。
MariaDB数据库的安装、建库并授权:
WordPress支持MySQL和MariaDB,毕竟它俩本是同根生。这里我选择了MariaDB,原因是新鲜感,语法上应该大差不差的。
apt install mariadb-server
安装完成后需要设置一下root用户的密码
mysqladmin -u root password 123@abc
然后就可以直接在终端里登录mariadb(目的就是建个库,建个用户,授权一下,我认为暂时没必要装phpmyadmin)参考https://wordpress.org/support/article/creating-database-for-wordpress/
mysql -u root -p
登录后执行下面语句就可以创建一个名叫mywordpress的数据库
CREATE DATABASE mywordpress; 然后用用下面的语句给一个名叫jack的用户授予这个mywordpress数据库的所有权限,用户jack的密码也在这里设置为abc@123 注意打完第一行就有一个回车 MariaDB> GRANT ALL PRIVILEGES ON mywordpress.* TO "jack"@"%" -> IDENTIFIED BY "abc@123"; 然后刷新权限,然后退出 MariaDB> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) MariaDB> EXIT 退出后用jack登录,查看是否拥有对应的数据库权限 mysql -u jack -p MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mywordpress | +--------------------+ 2 rows in set (0.000 sec) 如果能看到mywordpress数据库的话就说明就数据库安装环节已经完成了。
Apache的安装
apt install apache2
查看是否安装成功
apachetl -v
启动Apache服务
service httpd start
或者 /etc/init.d/apache2 start
然后直接用浏览器访问云主机公网ip能打开Apache2 Debian Default Page就是成功了。
如果本地能打开,外面打不开可能需要放行一下iptable
iptables -P INPUT/OUTPUT/FORWARD ACCEPT
最后记住Apache默认目录位于
/var/www/html
php环境安装
apt install php
apt install php-mysql
上面的第一行是安装php环境,如果不装,后面WordPress安装的时候会提示没有php环境。
第二行是安装php的mysql插件,如果不装,后面WordPress安装的时候会提示没有php的mysql插件。提示如下
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
装好以后需要重启Apache服务
service httpd restart
一开始我是不知道怎么安装php环境的,我是想偷懒直接装phpmyadmin的我想这个软件安装的过程中一定会把php和php-mysql环境都装好的,然而Debian10的源里没有居然没有包含phpmyadmin,如果是Ubuntu的我觉得可以一试。
WordPress安装
最后终于来到本篇文章主角的安装。参考文档:https://wordpress.org/support/article/how-to-install-wordpress/#step-3-set-up-wp-config-php
拉取WordPress的最新版,然后解压
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
然后把解压后的wordpress文件夹移动到Apache的主目录下
mv wordpress /var/www/html/
再重启一下Apache服务我们就可以打开浏览器访问
http://公网ip/wordpress/wp-admin/install.php
开始轻松愉快的一键安装了。安装无非就是输入一下之前在数据库里创建的数据库名称mywordpress,数据库用户名是jack,密码abc@123,数据库地址是localhost,最后一项默认就可以了。
然后点击提交。这个时候就遇到了最后一个问题:
WordPress抱歉,我不能写入wp-config.php文件
Unable to write to wp-config.php
file.
You can create the wp-config.php
file manually and paste the following text into it.
网上搜到的解决方案大多都是手工吧那段代码复制,然后手工建一个wp-config.php文件到wordpress所在主目录,还说要要注意在文件最后添加 ?>
我看了以后,就是不想弄。wordpress这么优雅的安装,最后临门一脚你非得整一个手工编辑php配置文件。这让我感觉味道不对。后来在Stack Overflow搜到了解决方案:
For nginx users, the default user is www-data
, so we need to grant write permissions to the www-data
user:
chown -R www-data wordpress
改一下给www-datra用户改一下wordpress主目录的权限,看起来还是和nginx有关系的。
然后再次打开http://公网ip/wordpress/wp-admin/install.php 这个安装页面再输入一边数据库配置信息提交就大功告成了。最后可以进到wordpress目录下面去看wp-config.php这个文本文件最后到底有没有?>
因为我不懂世界上最好的语言,我只是推测现在的版本有没有 ?>都无关紧要了吧。
然后wordpress就开始然你输入属于wordpress的新建用户信息了,开启属于自己的wp博客旅程。