阿里云 建站过程-阿里云主机建站
目录前言及自我简介配置阿里云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 "" > /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查看,敬请谅解。请关注笔者之后的文章,未来将会细化阐述网站建设方面的经验与心得。
在阿里云上开发的最让我欣喜的,不是免费的服务器。
是无数的文档,资料,与阿里云开发者。
他们是我素未谋面的同好,同学,同志。
当我在开发中遭遇意外与困难时,
他们如同繁星一般,
默默地,微微地,
点亮我的夜空。
笔者特地在此感谢在本次探索过程中以文档、博客、社区等方式提供帮助的诸多有名或无名的阿里云开发者,以及提供这一平台的阿里云。凝涓流成巨涛,这正是云的魅力,开源的魅力,互联网的魅力,互帮互助的魅力。