从周一入职开始,我就开始学习公司的项目环境配置及项目上线的问题。公司项目以thinkCMF框架为基础,上线到阿里云Centos6版本服务器。因为我之前的所有项目都是在window环境进行调试和上线的,学习的框架也基本以Vue,React等前端框架为主,所以运行维护并改进公司项目对我来说是一件有些难度的事情。我用了4天的时间,基本了解了linux系统的运行和命令行功能的写法。这篇文章主要写一下我入坑排雷的过程以及经验,参考的文章链接我会写在最后面,希望对有需要的朋友们能有一些帮助。thinkCMF的排雷经验放在下篇再讲。
1. 阿里云linux服务器的申请
我之前有一个空闲的服务器是window系统的,我把里面的东西清空,申请换成了centos_6_09系统。
2.连接远程桌面
一开始我还以为用之前的window自带的远程桌面连接工具就可以连接了,后来发现根本没法连接。因为linux没有可视化桌面。所以我用了Xshell6+Xftp6用来连接服务器。软件可以在官网下https://xshell.en.softonic.com/,但是速度很慢,可能科学上网能快点。选择免费版,它会发下载链接到你的邮箱里,点击那个链接就可以直接下了。也可以在https://www.xshellcn.com/下载。
打开Xshell连接你的服务器
然后输入你在申请服务器的时候的用户名和自己设定的密码,当你看到这个界面的时候就证明你连接成功了。
3.安装中文语文包
这一步可以不做,我英文较差,有的时候报错我还要查一下什么意思,换成中文包有一些错误就可以看的很明白了。
1)检查你的服务器里有没有安装支持的语言包
locale -a |grep zh_CN
如过你的显示不是下面这样,就代表你电脑里没有安装中文包
2)安装中文包
yum groupinstall chinese-support
3)打开Xftp,Centos6系统找到etc/sysconfig/i18n 这个文件,Centos7找到/etc/locale.conf,右键用记事本编辑,把里面的内容改成
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
这时候注意一下,Xshell6的编码是什么,如果不是utf-8,很可能会出现乱码的情况
4)最后重启下服务器,输入
# echo $LANG
如果显示的是
就代表中文包已经安装成功了
4.配置网站环境
网站上线的必备环境一定要安好,在linux上可以直接一键安装lamp包,lamp是服务器(Linux + Apache + MySQL/MariaDB/Percona + PHP) 生产环境的 Shell 脚本。如果选择安装lamp可以看一下这两篇博客,因为我是分开安装的。
博客地址
https://blog.csdn.net/xiezhangbao/article/details/74058224?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158764215719726867815054%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=158764215719726867815054&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1
https://blog.csdn.net/zhangtao4/article/details/81117635?ops_request_misc=&request_id=&biz_id=102&utm_source=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0
下面我讲一下我分开安装apache,php,mysql的过程
1)更新系统内核
yum -y update
2)安装apache服务器
yum-y install httpd httpd-devel /*安装apache*/
service httpd start /*启动apache*/
service httpd restart /*重启apache服务器*/
启动Apache之后,会产生 /var/www/html/目录,在浏览器上输入:
http://+主机IP
会出现如下界面就安装好了:
3)安装mysql
#mysql客户端程序
#mysql-server 服务端程序
#mysql-devel 开发设计的库
yum -y install mysql mysql-server mysql-devel
chkconfig --list | grep mysqld /*查看mysql是否自启动*/
chkconfig mysqld on /*设置开机启动*/
service musqld start /*启动mqsqld服务*/
安装好MySQL之后,通过
mysql -u root -p
进入MySQL模块,此时的密码为空,直接回车就OK,然后,执行
set password = password(‘….’); /*记住mql里面的语句末尾一定要加上;*/
设置一个数据库密码。这里有个很坑的地方,输入的密码是不显示,刚接触命令行的朋友可能会一直卡在这里,以为自己怎么按都输不进去密码。
4)安装php及相关模块
为了让PHP支持MysQL,我们可以安装php-mysql软件包等相关模块
yum-y install php php-mysql /*安装php及php-mysql*/
yum-y install gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrp c php-imap
/*这些都是可能用的到的相关模块,可以看情况安装*/
测试一下php有没有安装成功,在/var/www/html/目录下新建一个Index.php的文件,内容为:
<?php
phpinfo();
?>
然后在浏览器输入http://+主机IP 会得到如下界面:
5.安装压缩包软件
因为大多数小型服务器的数据吞吐速度都是比较慢的,如果你的网页文件有点大的(我公司的网站一个就600M多),一定要安装一个压缩软件,这样不管你是上传还是下载项目都要快一些了。这一步涉及到一些linux的命令行,就不具体讲每句的原理了。
1)下载软件
mkdir -p /home/oldboy/tools /*创建多层次文件夹*/
cd /home/oldboy/tools
wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz
2)安装软件
tar zxvf rarlinux-3.8.0.tar.gz
cd rar
make
make install
3)rar压缩和解压缩的命令行
将/etc 目录压缩为etc.rar 命令为:
rar a etc.rar /etc
将etc.rar 解压 命令为:
rar x etc.rar
unrar -e etc.tar
4)注意:如果安装完成执行解压命令提示:
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
解决方法:
1.执行命令:
yum whatprovides libstdc++.so.6
然后看提示哪个安装包有这个库:
2.接着执行命令:
yum install libstdc++-4.4.7-3.el6.i686
注:libstdc+±4.4.7-3.el6.i686这个是根据上面的查询显示的,不能直接复制粘贴本案例中的!!
6.上传项目及运行sql文件
1)把项目文件上传到 /var/www/html文件夹中,如果文件较大,可以在本地将项目压缩,上传到服务器后再解压(压缩包格式和自己下的压缩软件格式需要一样)
2)运行sql文件
1.连接数据库
mysql -u root -p
Enter password: **
Mysql> /*看到这个就代表连上数据库了*/
2.建立空数据库
create database aaa; /*千万记得写分号!!!*/
3.设置数据库编码
set names utf8;
4.导入数据(注意sql文件的路径,要完整的全局路径)
source /home/aaa/aaa.sql;
数据库有关的一些命令行大家还是应该要熟记的,这里是我找到的一个博客,上面的都是最基础常用的的命令行,大家有时间最好学一下:
https://www.cnblogs.com/6J2B2/p/12069497.html
7.运行成功前的最后一坑
上面的步骤全部执行完的时候,你就会发现你的项目已经能在服务器上运行了(前提是这个项目在本地已经没有问题了),但是我运行的时候却发现一个问题,我的缓存文件不能读写,这就代表我的项目不能运行了,我查了一些资料发现,linux系统需要给每个必要的文件夹单独的权限,所以我把我的缓存文件/runtime的权限改成了“777”(所有人都能读写,这样再运行项目就没有任何问题了)
8.成功!
参考文章
http://www.myhack58.com/Article/sort099/sort0102/2016/79560_6.htm
https://lamp.sh/
https://blog.csdn.net/jinpengncu/article/details/77804063
https://www.jianshu.com/p/8db1e14df353
https://www.cnblogs.com/6J2B2/p/12069497.html
https://www.cnblogs.com/coco–/p/12033661.html