LNMP环境搭建学习 --- vagrant
yum update -y 升级所有的包 不升级软件和系统内核
vagrant add yourboxname.box
==================================================================
vagrant ( http://www.vagrantbox.es/ 打好的包地址)
$ vagrant box add {title} {url} $ vagrant init {title} $ vagrant up
- vagrant up (启动虚拟机)
- vagrant halt (关闭虚拟机——对应就是关机)
- vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用)
- vagrant resume (恢复虚拟机—— 与前面的暂停相对应)
- vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留)
- vagrant status 查看虚拟机状态
- vagrant package 打包分发
- vagrant -v 查看版本信息
- vagrant ssh 连接虚拟机 (window机器不支持这样的命令,必须使用第三方客户端来进行连接,例如xmoba、putty、Xshell等.)
- Unable to load R3 module D:\virtualBox/VBoxDD.DLL (VBoxDD): GetLastError=1790 (VERR_UNRESOLVED_ERROR).
sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
vi /etc/hosts
- config.ssh.username = "vagrant"
- config.ssh.password = "vagrant"
-
网络设置
Vagrant有两种方式来进行网络连接,一种是host-only(主机模式),意思是主机和虚拟机之间的网络互访,而不是虚拟机访问internet的技术,也就是只有你一個人自High,其他人访问不到你的虚拟机。另一种是Bridge(桥接模式),该模式下的VM就像是局域网中的一台独立的主机,也就是说需要VM到你的路由器要IP,这样的话局域网里面其他机器就可以访问它了,一般我们设置虚拟机都是自high为主,所以我们的设置一般如下:
config.vm.network :private_network, ip: "11.11.11.11"
这里我们虚拟机设置为hostonly,并且指定了一个IP,IP的话建议最好不要用
192.168..
这个网段,因为很有可能和你局域网里面的其它机器IP冲突,所以最好使用类似11.11..
这样的IP地址。 -
hostname设置
hostname
的设置非常简单,Vagrantfile中加入下面这行就可以了:config.vm.hostname = "go-app"
设置
hostname
非常重要,因为当我们有很多台虚拟服务器的时候,都是依靠hostname
來做识别的,例如Puppet或是Chef,都是通过hostname
來做识别的,既然设置那么简单,所以我们就別偷懒,设置一个。 -
同步目录
我们上面介绍过
/vagrant
目录默认就是当前的开发目录,这是在虚拟机开启的时候默认挂载同步的。我们还可以通过配置来设置额外的同步目录:config.vm.synced_folder "/Users/astaxie/data", "/vagrant_data"
上面这个设定,第一个参数是主机的目录,第二个参数是虚拟机挂载的目录
-
端口转发
config.vm.network :forwarded_port, guest: 80, host: 8080
上面这句配置可厉害了,这一行的意思是把对host机器上8080端口的访问请求forward到虚拟机的80端口的服务上,例如你在你的虚拟机上使用nginx跑了一个Go应用,那么你在host机器上的浏览器中打开
http://localhost:8080
时,Vagrant就会把这个请求转发到VM里面跑在80端口的nginx服务上,因此我们可以通过这个设置来帮助我们去设定host和VM之间,或是VM和VM之间的信息交互。
修改完Vagrantfile的配置后,记得要用vagrant reload
命令来重启VM之后才能使用VM更新后的配置。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
现在开始学习安装LNMP
首先安装nginx的依赖
yum -y install gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5
解释:gcc,gcc-c++编译环境 openssl 加密
由于Nginx中的功能是模块化,而模块又需要依赖一些软件包(如pcre库,zlib库,openssl库)
openssl-devel库依赖于zlib-devel,在通过yum进行安装时会自动解决依赖,因此这里省略zlib-devel。
mkdir software 放压缩包文件
wget http://nginx.org/download/nginx-1.14.0.tar.gz 下载压缩包
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz pcre 正则
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.42
安装完成。。。
make && make install 编译安装
/usr/local/nginx/sbin/nginx 启动
ps -ef | grep nginx 是否启动
----------------------------------------------------------------------------------------------
Nginx目录介绍:
src:存放Nginx的源代码;
man:存放Nginx的帮助文档;
html:存放默认网站文件;
contrib:存放其他机构或组织贡献的文档资料;
conf:存放Nginx服务器的配置文件;
auto:存放大量的脚本文件,和configure脚本程序相关;
configure:Nginx自动安装脚本,用于检查环境,生成编译代码需要的makefile文件;
其他目录都是Nginx服务器的相关文档资料;
---------------------------------------------------------------------------------------------------------------------------------------------
vi /etc/rc.local 开机自启动 这个文件是系统启动后会自动执行的
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf &
init 6
重启系统
chmod o+x /etc/rc.local 修改权限
vi /etc/profile nginx的位置加入到环境变量中
export PATH="$PATH:/usr/local/nginx/sbin:"
再次重启nginx
下面编译安装PHP-FPM
yum -y install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel
wget http://cn2.php.net/get/php-7.2.6.tar.gz/from/this/mirror
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.gz
tar zxf php-7.2.6.tar.gz
cd php-7.2.6/
./configure --prefix=/usr/local/php-fpm --enable-fpm --with-zlib --with-pdo-mysql --enable-mbstring --with-gd --with-png-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64
make && make install
先对它进行一些配置,到php-fpm的安装目录etc下复制一份配置文件,修改配置文件 php-fpm.conf
设置对应的用户和组
user = ling
group = ling
useradd = ling
/usr/local/php-fpm/sbin/php-fpm
ps -e | grep php
我们可以通过快捷命令管理php-fpm
关闭php-fpm
编译MySQL
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data
代表没有安装cmake
yum -y install cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data
make && make install
进入到我们的安装目录
cd /usr/local/mysql/
创建mysql用户和mysql用户组 并且让mysql用户属于mysql用户组
groupadd mysql #创建mysql组
useradd -r -g mysql mysql #增加mysql用户并让它属于mysql用户组
将所有的目录都改成mysql用户和mysql组 (安装好后默认都是root)
删除默认的配置文件
rm -f /etc/my.cnf
安装MySQL系统表
./scripts/mysql_install_db --user=mysql
所有目录都改成root 和root组 只有data目录不是不是
chown -R root:root .
chown -R mysql:mysql data
修改配置文件
cp support-files/my-default.cnf /etc/my.cnf
以完整路径的方式启动MySQL
/usr/local/mysql/bin/mysqld_safe --user=mysql &
将MySQL程序复制到启动目录
cp support-files/mysql.server /etc/init.d/mysqld
增加配置即可
chkconfig --add mysqld
vim /etc/profile
修改对应位置 将MySQL对应的bin目录增加进去
export PATH="$PATH:/usr/local/apache/bin:/usr/local/mysql/bin"
source /etc/profile
==================================================================================================================================================================================