目录
- 前言及自我简介
- 配置阿里云ECS
- 搭建LAMP环境
- 安装Wordpress
- 调试与部署FTP
- 后记及成果参考
使用阿里云ECS搭建基于Wordpress的网站
1.前言及自我简介
笔者是一名本科大二在读学生,来自宁波大学科学技术学院电气工程及其自动化专业。在本文中,笔者将尽量以初学者的角度,为所有初次接触ECS并想要建立个人网站的朋友详细讲述流程与心得。
由于阿里云的“飞天加速计划”,笔者免费领取到一台阿里云ECS云服务器(后文简称“ECS”)。虽然带宽略小,地域略偏,时间略短,作为学习实验工具而言还是足够使用的。下文的所有操作,皆于此ECS之上完成。
2.配置阿里云ECS
推荐首次使用阿里云ECS的用户完整完成“ECS云服务器新手上路”实验,熟悉阿里云控制台的基本操作。
进入云服务器管理控制台后,可以在概览页面下方找到标题为“搭建云上博客”的场景教程。
建议想要使用阿里云ECS的用户跟随此场景教程进行操作。本文将基于此教程额外进行补充说明与后续指引。
在创建服务器的过程中,请务必选用“Alibaba Cloud Linux 2.* LTS 64位
”操作系统。
“*”:即通配符*,可泛指一切字符串。
“LTS”:即长期支持版本,相较其他版本更加成熟且稳定。
Alibaba Cloud Liunx是CentOS的兼容发行版,相较于CentOS7少去了许多初期配置的麻烦。而3.*版本经笔者实际使用,发现其依然存在难以解决的BUG(如:无法安装mod_auth_mysql)。故此处推荐使用LTS的2.*版本。
场景教程中没有指明所需的操作系统。若你打算跟随场景教程并参考本文进行操作,但已经安装其他操作系统,请在控制台-实例-实例详情中停止ECS,并更换操作系统。
指令在不同的系统之间存在不兼容的可能。例如软件包安装指令,在CentOS系统中为“yum install”,而在Debian系统中则为“apt-get install”。Alibaba Cloud Linux使用前者。
若你通过CMD使用openSSH连接ECS,那么在更换操作系统后,可能会出现无法连接的情况。错误信息如下:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man- in- the- middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:*. Please contact your system administrator. Add correct host key in /c/Users/administrator/.ssh/known_hosts to get rid of this message. Offending RSA key in /c/Users/administrator/.ssh/known_hosts:4 RSA host key for *.*.*.* has changed and you have requested strict checking. Host key verification failed.
这是因为ECS重装系统后SSH对不上公钥了。此时根据报错信息中提供的文件路径,找到known_host
文件,将其中对应ECS的IP字段以及RSA信息删去即可。
推荐使用阿里云控制台-远程连接-Workbench进行ECS的远程连接。
3.搭建LAMP环境
yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql systemctl start httpd.service
于ECS终端依次执行上述命令。终端显示Complete!
之后,表示Apache服务安装完成并成功启动。
但想要通过浏览器直接访问公网IP,还必须在阿里云控制台-实例-安全组-配置规则中,添加入方向的HTTP端口授权。如图所示,在快速添加中勾选对应端口并确定即可。
现在,于浏览器中访问公网IP,即可看见Apache的初始页面。
执行以下命令以安装MySQL。
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server
实际上,在执行第3条命令语句时,将会安装失败并返回一大串报错信息,其中一段为GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
。这是因为教程中的指令有缺漏,RPM数字签名无法验证。解决方法很简单,只需要补一句去mysql官网安装GPG公钥的命令即可。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 yum -y install mysql-community-server
安装完成后,启动MySQL数据库并查看MySQL的初始密码。
systemctl start mysqld.service grep "password" /var/log/mysqld.log
根据初始密码,登录MySQL,并修改默认密码。
新密码必需同时具有“大小写英文字母”、“数字”、“标点符号”三种不同字符,否则无法修改并报错。下面给出操作命令与参考范例密码。
mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aliyun@123';
在MySQL中,所有命令语句都必须以“;”结尾。无“;”的语句即使回车换行也不会执行。此时,需要在第二行补上一个“;”。
执行下列命令,以创建一个供Wordpress存储网站内容的数据库,然后查看数据库目录。
create database wordpress; show databases;
终端将返回以下信息。可以看到在最后一行即是成功创建的Wordpress数据库。
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | wordpress | +--------------------+ 5 rows in set (0.00 sec)
输入exit
即可退出MySQL。
执行下列命令,安装PHP并创建测试页面,随后重启Apache服务以应用更改。
yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php systemctl restart httpd
执行完毕后,在浏览器中输入ECS公网IP/phpinfo.php
查看PHP信息。如图显示,即PHP安装成功。
至此,LAMP环境搭建完成。
“LAMP”:即Linux+Apache+MySQL+PHP,常用网站服务器环境解决方案之一。
“LNMP”:即Linux+Nginx+MySQL+PHP,另一种常用解决方案。
Apache几乎就是为CentOS而生,所以笔者于此选用LAMP方案。相对地,在Debian系统上,我认为LNMP是更好的选择。当然,Apache与Nginx各有千秋,根据实际需求选择合适者即可。
4.安装Wordpress
执行安装命令。
yum -y install wordpress
将wp-config.php改为绝对路径,随后将Wordpress移动到Apache的根目录。
cd /usr/share/wordpress ln -snf /etc/wordpress/wp-config.php wp-config.php mkdir /var/www/html/wp-blog mv * /var/www/html/wp-blog/
安装nano文本编辑器。完成后,使用nano编辑wp-config.php文件
yum -y install nano nano /var/www/html/wp-blog/wp-config.php
找到“/** The name of the database for WordPress */
”
下面一行改为“define( 'DB_NAME', 'wordpress' );
”。
“/** MySQL database username */
”
下面一行改为“define( 'DB_USER', 'root' );
”
“/** MySQL database password */
”
下面一行改为“define( 'DB_PASSWORD', 'Aliyun@123' );
”
修改完成后,使用Ctrl+O组合键写入数据,再使用Ctrl+X组合键退出编辑。
这三项即分别为wordpress数据库名称,MySQL用户名,MySQL登陆密码。
此外,也可以利用nano编辑器,于此处进行其他设置的修改。
编辑后,重启Apache服务以应用更改。
systemctl restart httpd
浏览器中打开ECS公网IP/wp-blog/wp-admin/install.php
以进行Wordpress的初期配置。从上至下,依次设置:
“Site Title
”:站点名称。
“Username
”:管理员用户名。
“Password
”:管理员用户密码。
推荐使用与MySQL类似的高强度密码以确保安全性。
之后点击Install Wordpress
完成设置。
刷新页面,输入用户名与密码,点击Log In
即可进入Wordpress后台。在后台中可
以进行更多的详细设置。
Wordpress安装至此完成。
5.调试及部署FTP
这样安装的Wordpress是英文版的,即使在后台-Settings-General-Site Language选项中,也只有English,而不能选择中文。
为解决这个问题,需要将中文语言包上传至ECS中Wordpress的对应目录。所以,这里需要用到FTP服务。为ECS建立FTP服务也便于日后更好地管理网站。
首先,在ECS上安装FTP服务。
yum -y install vsftpd
在自己的电脑上也安装FTP服务。
下载并安装FileZilla。
在ECS上修改vsftpd的用户配置文件。
nano /etc/vsftpd/ftpusers
在该文件中的“root
”前加一个“#
”。
Ctrl+O,回车,Ctrl+X。
修改另一个文件。
nano /etc/vsftpd/user_list
同样在“root
”前加一个“#
”。
Ctrl+O,回车,Ctrl+X。
“#”:在多数语言中常用的注释符,在一行命令前加上#可使该命令行转变为注释行,使其在程序运行时被忽略并跳过。这个符号也是Linux系统中超级用户“root”的命令提示符。
这两段操作是为了取消vsFTPd的用户名限制。若没有取消,将会在后续FTP连接中导致连接失败,报错信息为:
命令: USER root
响应: 530 Permission denied.
错误: 无法连接到服务器
然后,在阿里云控制台-实例-安全组-配置规则中,添加用于FTP的21、20端口。
至此,ECS端设置完成。
接下来配置FileZilla。
首先,点击文件-站点管理器,进行如下操作:
“协议
”设置为“FTP - 文件传输协议
”。
“主机
”设置为ECS公网IP
。
“端口
”设置为“21
”。
“加密
”设置为“只使用明文FTP
”。
“登陆类型
”设置为“正常
”。
“用户
”设置为“root
”。
“密码
”设置为你的ECS密码
。
使用快速连接与其他加密方式的连接均会导致连接失败,报错信息为:
命令: AUTH TLS
响应: 220 (vsFTPd 3.*)
错误: 无法连接到服务器
这是因为ECS与主机之间没有TLS协议书,安全验证无法通过。
然后,在编辑-设置-连接-FTP-被动模式中,将“使用服务器的外部ip地址来代替
”改为“回到主动模式
”
此步骤防止FTP不能正确显示文件路径。若没有这样设置,则会出现以下报错信息:
状态: 服务器发回了不可路由的地址。使用服务器地址代替。
命令: LIST
全部设置完成后,在站点管理器中点击“连接
”
如图所示,连接成功。在左右两侧窗口分别选择好路径作为接收与发送文件的对应路径,即可正常使用。
Wordpress的路径是/var/www/html
。对于本ECS而言,这将会是它最常用的FTP路径之一。
至此,FTP服务部署完成。
要更换Wordpress的语言,需下载Wordpress中文版,在此压缩包的\wordpress\wp-content
路径中找到language
文件夹并解压出来。然后,将language
文件夹通过FTP上传至ECS中wordpress的wp-content
目录下。
上传完成后,重启apache服务,浏览器进入ECS公网IP/wp-blog/wp-admin/options-general.php
,即可更改站点语言为简体中文。
至此,Wordpress调试完成。
Q:既然是从中文版Wordpress里取得中文语言包,为什么不直接安装中文版Wordpress?
A:因为中文版Wordpress更新时间与英文版不一致,在安装时容易与出现兼容性BUG。
Q:我直接在Wordpress上传一个全是中文的模板,网站就是中文的了,为什么要在设置里改站点语言?
A:这样做只能让网站“表面上”看起来是中文站点。实际上,无论是网站后台显示还是直接查看网站源代码,都会发现lang="en-US",也就是说,你的网站在搜索引擎看来其实还是个英文站点。这样会对网站的发展造成多方面的不利影响。
6.后记及成果参考
在wordpress中对站点进行详细的设计与制作之后,笔者获得了首个自己在阿里云ECS上的网站。点击链接查看:二维实验室。
由于工信局备案流程所需时间较长,而DV型SSL证书的部署需要域名,所以该网站暂时只能通过HTTP端口直连服务器公网IP查看,敬请谅解。请关注笔者之后的文章,未来将会细化阐述网站建设方面的经验与心得。
在阿里云上开发的最让我欣喜的,不是免费的服务器。
是无数的文档,资料,与阿里云开发者。
他们是我素未谋面的同好,同学,同志。
当我在开发中遭遇意外与困难时,
他们如同繁星一般,
默默地,微微地,
点亮我的夜空。
笔者特地在此感谢在本次探索过程中以文档、博客、社区等方式提供帮助的诸多有名或无名的阿里云开发者,以及提供这一平台的阿里云。凝涓流成巨涛,这正是云的魅力,开源的魅力,互联网的魅力,互帮互助的魅力。