最近一直想在阿里云申请一个服务器,可以在上面跑一些服务,输入域名访问,那种感觉肯定很不一样。所以就花学生价买了一年,还是挺划算的。
域名备案花了挺长时间,又上传照片又打电话核实的挺麻烦的,不过好在是顺利的申请下来了。
为了能运行PHP后端代码,所以需要配一些必要的环境,PHP、MySql、Apache,一步到位就又配了一下Node,这样基本上前端所需的环境就都配好了。这里记录一下,分享一下自己的一点经验。
输入手机验证码,确认,等待重置完成,恭喜你获得一台新的centos7.3系统,这里需要等待一段时间。
初始化完成
直接在阿里云上打开服务器是这样子的,不过不太方便,我用 SSH Secure File Transfer Client连接,这个工具的好用之处在于它能够直接将本地的文件拖拽到服务器上,比较方便。
工具下载地址(随便找的)
SSH远程连接 工具下载
下载的是一个压缩包,将里面的exe文件解压出来,然后安装即可,一路下一步,会在桌面生成如下两个图标。
打开 SSH Secure File Transfer Client
然后输入密码,密码是你在申请阿里云的时候留的登录密码,如果忘记了,可以去阿里云上改一下,服务器旁边有个修改密码的指令。
输入密码,点击连接
默认会进入你的/root目录下。
这个界面左侧是本机电脑的文件,右侧是服务器,可以直接将本机的文件拖拽到服务器,SSH工具会自动将文件上传至服务器,很方便,等环境部署完之后,可以将本地的项目压缩为 xxx.tar.gz上传到服务器解压。
不过既然使用了linux,还是得敲命令行,点击上方的小电脑
开始搭环境,为了防止后面搭建环境时忘记开放端口,所以我先在服务器把端口开放。
在阿里云,找到自己的服务器,查看详细信息,如下,点击安全下的防火墙
以后如需再配置别的环境,切记要记得将所对应的端口开放,否则就会无法访问。
在安装程序前,先执行更新(升级所有包同时也升级软件和系统内核):
yum update
这里得更新一会儿。
然后直接安装Apache
yum install httpd
启动Apache
systemctl start httpd.service
设置Apache开机启动
systemctl enable httpd.service
还可能用到的指令:
停止Apache
systemctl stop httpd.service
重启Apache
systemctl restart httpd.service
测试一下,看是否安装成功,因为我的域名已经备案成功了,所以可以直接输入自己的域名访问一下试试,在浏览器输入,
www.hrbustcheny.info
出现上述界面,说明Apache配置成功。
假如域名还未通过备案,就在浏览器输入自己的公网ip进行测试。
下载 mysql源安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
这里我下的是mysql5.7的版本
安装mysql源
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
在线安装Mysql
yum -y install mysql-community-server
这里需要等待一会,下载东西比较多
启动Mysql服务
systemctl start mysqld
设置开机启动
systemctl enable mysqld
systemctl daemon-reload
修改MySql的 root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。
查看mysqld.log
vim /var/log/mysqld.log
d,2A+fZthHDo
退出vim编辑模式,先按ESC,在输入 :q!
登录mysql,输入临时密码
mysql -u root -p
输入临时密码
登录成功,然后修改mysql登录密码。记得这时执行的是mysql的命令,待会再输入linux的命令时要记得退出来。
修改mysql密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'ChenYang2018!@#';
修改密码为 ChenYang2018!@# (备注 mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位)
设置允许远程登录(记得把密码改成你的,直接粘会报错的,报错的是因为密码不对)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ChenYang2018!@#' WITH GRANT OPTION;
在第二节已经将3306端口开放了,所以此时可以直接测试。
测试连接工具我用的是Navicat ,这个工具用起来也挺方便的。
启动Navicat
点击左上角的 连接->mySql ,新建一个连接
mysql环境搭建成功。
本次安装的是 PHP7.0
安装 Php7 相应的 yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安装php7.0
yum install -y php70w
安装php扩展
yum install -y php70w-mysql.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64
安装PHP FPM
yum install -y php70w-fpm
测试:在服务器的/var/www/html/建一个php的文件,可以先通过ip地址访问这个文件,看是否能够解析。(备注:此时还不能通过域名访问,还需配置一下服务器,具体如何配置将在下面给出)。
cd /var/www/html/
mkdir test
cd test
touch test.php
vim test.php
按i进入编辑模式,添加下列测试代码
echo phpinfo();
?>
按ESC,然后输入:wq
,保存退出编辑模式。
重启一下服务器
systemctl restart httpd.service
然后在浏览器通过ip地址访问这个文件。
示例:http://127.0.0.1:80/test/test.php
(将ip地址改为你的公网ip)
PHP环境搭建成功。
注意:这里有个坑,最开始我在测试php环境的时候,我把test.php直接扔在 /var/www/html 目录下了,然后直接用http://127.0.0.1:80/test.php(记住把ip换成你的外网ip)访问,发现并不会解析,太坑了,后来换了n种方法,终于发现必须得再有一层目录才能访问。
我这里装的是node11.0.0版本(刚出锅的最新版本)
把下载的node-v11.0.0-linux-x64.tar(目前最新的)用ssh工具上传到服务器的 /usr/local 目录下(个人习惯),直接拖拽过去就行
解压到当前目录 /usr/local
tar -xvf node-v11.0.0-linux-x64.tar.xz
把解压出来的node-v11.0.0-linux-x64改下名字,太长了,改成node
mv node-v11.0.0-linux-x64 node
删除压缩包
rm -rf node-v11.0.0-linux-x64.tar.xz
配置node的环境变量
vim /etc/profile
按i进入编辑模式,在末尾添加
#set nodejs env
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
按:wq
保存并退出,然后输入
source /etc/profile
使配置生效。
验证
node -v
npm -v
配置这么多,就是为了能够输入自己的域名,然后出来自己的网站,但是发现,当我输入自己备案成功的域名后,只是跳转到服务器的测试页面,如下:
www.hrbustcheny.info
那么,怎么才能访问自己的网站呢,为了测试,我就简单的上传一个静态页面index.html,我把静态页面放在 /var/www/html/cheny 目录下,如下:
如果用ip访问的话,地址是:http://127.0.0.1:80/cheny/index.html
(ip地址改为你的外网ip)
现在我想直接输入自己的域名,就能进入这个页面。需要再对Apache进行配置。
查看httpd的相关配置信息(注意是大V,小v出的信息不全)
httpd -V
所以正在使用的配置文件为 /etc/httpd/conf/httpd.conf
备份配置文件
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
编辑配置文件,并添加下面的配置
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName hrbustcheny.info
DocumentRoot /var/www/html/cheny/
VirtualHost>
ServerName 是你的域名
DocumentRoot 是项目的绝对路径(注意不用再路径最后添加index.html,Apache会默认找这个index)
重启httpd服务
systemctl restart httpd.service
测试
www.hrbustcheny.info
bingo~ 大功告成