首先介绍下linux,linux因其开源,定制化高,安全等原因,成为了目前web应用部署首选的操作系统,linux操作系统有很多版本,常见的有centos,debian,RHLE,redhat,乌班图等等。今天我选了红帽RHEL8作为操作系统来部署一个webapp环境。
我的电脑是windows系统,我选择虚拟机来安装linux系统,这样不会引起双系统的冲突,对于学习来说,在适合不过了。首先第一步,在windows系统上安装VMware WorkStation虚拟机(简称VM虚拟机),这里介绍下VMware WorkStation虚拟机,他是一款桌面级的虚拟软件,运行在windows系统上,在这上边可以随意安装其他操作系统,比如linux,ios等等,并且VMware WorkStation虚拟机对电脑的硬件要求也不高,普通的电脑就可以胜任,所以建议大家用VMware WorkStation虚拟机来联系linux相关的实战。安装好vm虚拟机后,双击打开是这样一个界面。
装好vm虚拟机之后,我们需要再下载对应的linux操作系统,这里我选择红帽操作系统REHL8,下载好镜像之后,点击vm虚拟机中的新建新的虚拟机,然后一直默认选择即可,最后安装程序光盘影响文件选择我们上边下载好的REHL8操作系统镜像,操作系统选择linux,系统配置根据当前windows的配置,随意设置即可,这里我选择处理器数量1,内核数量1,内存分配2048MB,网络模式推荐选择使用仅主机模式网络,这样linux的网络就和你自己的windows网络就通了,i/o控制器类型选择推荐模式LSI LOGIC,磁盘类型选择SATA,磁盘设置如下:选择创建新的虚拟磁盘,指定磁盘容量为20G,磁盘名称我填:RHEL8,位置自己指定,这样在自己windows磁盘下,就会生成一个20G左右大小的linux虚拟机文件,后边的的设置全部默认即可,设置完成之后,会是这样一个界面。
然后点击开启此虚拟机,就会自动安装linux系统了,里边的选项全部选择默认选项,安装完成之后重启,就能正常进入红帽操作系统了,如下图所示:
装好红帽操作系统之后,我们进入系统,这里我们会用到安装,卸载,升级软件等操作,常用的命令如下:安装软件:rpm -ivh filename.rpm
升级软件:rpm -Uvh filename.rpm;卸载软件:rpm -e filename.rpm;查询软件描述信息:rpm -qpi filename.rpm;查询文件属于哪个RPM:rpm -qf filename。可能还会用到yum相关的命令。常见的yum命令如下:列出所有仓库:yum repolist all;列出仓库中所有软件包:yum list all;安装软件包:yum install 软件包名称;升级软件包:yum update 软件包名称;移除软件包:yum remove 软件包名称。
Linux系统准备就绪之后,我们下一步安装Nginx。这里先简单介绍下nginx,nginx是一个部署动态网站的服务程序,nginx占用资源少,轻量高效,支持热部署等等,目前在web服务器方面市场占有率很高,是动态部署网络的首选。使用tar zxvf nginx-1.35.0.tar.gz命令解压nginx安装包,cd nginx-1.35.0进入安装目录,使用如下命令编译nginx:./configure --prefix=/usr/local/nginx --with-http_ssl_module;make; make install期间如果没有明显报错,说明我们安装nginx成功了;安装好nginx之后,进入配置目录,配置我们webapp的相关信息。vim /usr/local/nginx/conf/nginx.conf 配置文件内容如下:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
64 #
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
70 include fastcgi_params;
71 }
配置之后为了方便后续我们快捷使用nginx命令,这里我们添加环境变量:/usr/local/nginx/sbin路径加入到PATH变量中。让Bash解释器在后续执行命令时自动搜索到它。然后在source命令后加载配置文件,让参数立即生效。下次就只需要输入nginx命令即可启动网站服务了。
下一步我们安装数据库,这里我选择免费的mysql数据库,同样的,我们先解压mysql安装包:tar xvf mysql-8.2.0.tar.xz,进入解压目录cd mysql-8.2.0/bin 执行mysql初始化服务:./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data;然后设置原始账号和密码:mysql -u root -p;安装成功之后,使用use mysql; show tables等命令查看mysql功能是否正常,如下图所示:
最后配置我们webapp服务,我的webapp是php写的,所以这里部署php服务,操作步骤类似上边的。解压:tar xvf php-7.3.5.tar.gz
编译:make;make install;编辑php.ini : vim /usr/local/php/lib/php.ini
最后启动php服务:/etc/init.d/php-fpm start。
至此wepapp依赖的底层服务全部搭建结束,后边就是安装自己的App了,这里就不介绍了,搭建后台服务中间遇上了很多细节问题,比如nginx启动失败,mysql编译报错的问题,上网搜索发现了《Linux就该这么学》有详细的搭建过程,里边有一个章节专门介绍了使用LNMP架构部署动态网络环境,非常适合新手练习,如果我早发现,按部就班就不会出现那些稀奇古怪的错误了,能够解约很多时间,大家有需要可以去看看。