VMware + lnmp安装 + 负载

VMware 版本16.0.0
环境:CentOs7.2 PHP7.3.4 +nginx-1.19.9 + redis 3

VMware 安装
1、VMware安装步骤略过,参考地址:https://blog.csdn.net/qq_35206244/article/details/79339453
2、安装CentOs,下载镜像,官网地址:https://www.centos.org 如果需要安装可视化桌面,安装过程中则按以下操作即可:
VMware + lnmp安装 + 负载_第1张图片
VMware + lnmp安装 + 负载_第2张图片
3、安装好,进入到系统之后,则开始配置linux系统的ip地址:
VMware左上角——虚拟机——设置——选择“网络适配器”——右侧网络连接,勾选:“桥接模式”,并勾选下面的“复制物理网络连接状态”
VMware + lnmp安装 + 负载_第3张图片
然后VMware左上角——编辑——虚拟网络编辑器——选择VMnet8——更改设置
VMware + lnmp安装 + 负载_第4张图片
这个时候就多了一个VMnet0,就选中VMnet0,再选择下面的已桥接至,选中自己本机的网卡,然后保存即可
VMware + lnmp安装 + 负载_第5张图片
完成后回到系统,打开终端,配置ip地址:
首先输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33,打开配置文件
将 BOOTPROTO=dhcp,改为BOOTPROTO=static;
将 ONBOOT=no,改为ONBOOT=yes;

然后添加:
IPADDR=192.168.2.198 //设置虚拟机的ip地址
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.2.1 //网关
DNS1=192.168.2.1 //添加一个也可以
DNS2=192.168.1.1
VMware + lnmp安装 + 负载_第6张图片
保存后重新启动网络,命令:systemctl restart network.service,
记得需要关闭下防火墙:systemctl stop firewalld.service,
然后电脑本地cmd操作,ping + 虚拟机IP,连接成功;
4、ssh访问虚拟机
ssh root@虚拟机ip,然后再输入密码,如果提示拒绝访问的情况,修改ssh配置:vi /etc/ssh/sshd_config,里面有个permitrootlogin 把后面的no 改成yes,有#的删除掉#
保存退出后再重启:/etc/init.d/ssh restart,重启不了则试下:service sshd restart,重启成功后再尝试ssh访问

Nginx 安装
1.先安装gcc-c++编译器
yum install gcc-c++
yum install -y openssl openssl-devel

2.再安装pcre包
yum install -y pcre pcre-devel

3.再安装zlib包
yum install -y zlib zlib-devel

开始安装
1.在/usr/local/下创建文件nginx文件
mkdir /usr/local/nginx

3.下载安装包
wget https://nginx.org/download/nginx-1.19.9.tar.gz

4.解压
tar -zxvf nginx-1.19.9.tar.gz
5.进入解压后的文件夹
cd nginx-1.19.9
6.使用默认配置
./configure
7.编译安装
make
make install
8.安装完成后,则找到安装的路径,使用:whereis nginx,进入该目录下的sbin目录,启动:./nginx
重启:./nginx -s reload
停止:./nginx -s stop
版本:当前sbin目录下:nginx -v
确定Nginx是以那个config文件启动的以及查看是否成功?输入命令行: ps -ef | grep nginx

如果启动遇到情况:nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
执行:sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

PHP安装

1.安装相关环境
yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

2.下载php
wget https://www.php.net/distributions/php-7.3.24.tar.gz

2.解压并进入文件夹
tar -xzvf php-7.3.24.tar.gz
cd php-7.3.24

3.参数配置,貌似安装完成后,会自动有个默认的php5的版本出现,为了做区分,安装路径做修改,php路径修改成php7324,或者自己定义
./configure
–with-php-config=/home/php7324/bin/php-config --enable-mysqlnd
–prefix=/usr/local/php7324
–exec-prefix=/usr/local/php7324
–bindir=/usr/local/php7324/bin
–sbindir=/usr/local/php7324/sbin
–includedir=/usr/localphp7324/include
–libdir=/usr/local/php7324/lib/php
–mandir=/usr/local/php7324/php/man
–with-config-file-path=/usr/local/php7324/etc
–with-openssl
–enable-mbstring
–with-pdo-mysql
–enable-fpm
配置步骤看到有个thank for you…,则表示ok了,这个时候进行编译
3.编译,时间稍微有点久
make && make install
4.编译完成,在之前编译的源码包中,找到 php.ini-production,复制到/usr/local/php7324/etc下,并改名为php.ini
命令:cp php.ini-production /usr/local/php7324/etc/php.ini
5.将php源码编译目录下的 sapi/fpm/init.d.php-fpm 文件拷贝到系统配置 /etc/init.d 目录下并重命名为 php-fpm
命令:cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
命令:chmod +x /etc/init.d/php-fpm
6.添加 php-fpm 配置文件,将php安装目录下的 /usr/local/php7324/etc/php-fpm.conf.default 文件拷贝同目录下并重命名为 php-fpm.conf
命令:cp /usr/local/php7324/etc/php-fpm.conf.default /usr/local/php7324/etc/php-fpm.conf
7.添加 www.conf 配置文件
将php安装目录下的 /usr/local/php7324/etc/php-fpm.d/www.conf.default 文件拷贝同目录下并重命名为 www.conf
命令:cp /usr/local/php7324/etc/php-fpm.d/www.conf.default /usr/local/php7324/etc/php-fpm.d/www.conf
8.添加php安装目录到系统环境变量,创建并打开文件php.sh
命令:vim /etc/profile.d/php.sh ,添加:export PATH=$PATH:/usr/local/php/bin/:/usr/local/php/sbin/
使用source立即生效刚刚添加的php环境变量 :source /etc/profile.d/php.sh
9.启动php:service php-fpm start
10.设置php开机启动
修改系统配置目录下的 php-fpm 文件可执行权限:chmod +x /etc/init.d/php-fpm
将系统配置目录下的 php-fpm 添加到 系统服务 : chkconfig --add php-fpm
设置 php-fpm 系统服务 为开机启动 chkconfig php-fpm on
完成后重启:reboot,查看PHP的fastcgi启动端口:netstat -tnl

PHP安装结束!

mysql安装:本次安装5.7

查看是否已经安装 Mysql:rpm -qa | grep mysql,没提示,则表示没有安装,如果有就删了:rpm -e xxx ,(xxx 为文件全名)
下载官方 Mysql 包:wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
安装 Mysql 包:yum -y install mysql57-community-release-el7-10.noarch.rpm
再:yum -y install mysql-community-server
如果执行命令过程中提示:Unable to find a match: mysql-community-server则可以通过命令解决:yum module disable mysql
启动:systemctl start mysqld.service
查看初始密码:grep ‘password’ /var/log/mysqld.log,如果有看到一个root@localhost,后面的就是默认密码,如果查看不到,则没有密码
进入数据库:mysql -u root -p,再输入密码,可以粘贴密码
进入mysql后,以下操作注意后面都有冒号“;”
修改密码:ALTER USER USER() IDENTIFIED BY ‘XXXX’; 或者 set password=password(‘123456’); ,修改成功后 exit 退出重登
修改密码的时候可能提醒密码过于简单,如果想设置简单的话则:
设置密码长度:set global validate_password_length=4;
密码的验证策略:set global validate_password_policy=0;
然后再修改,修改成功退出重登即可,查看MySQL完整的初始密码规则(需要登录mysql后):SHOW VARIABLES LIKE ‘validate_password%’;

本地mysql连接虚拟机mysql,出现not allowed情况或者10060的错误:
1、首先服务器需要关闭防火墙 或者 开放3306端口
2、允许服务器mysql外网访问,参考:https://jingyan.baidu.com/article/e4511cf36db5282b845eaf2b.html
登录mysql:mysql -u root -p123456
–> use mysql;
–> select host,user from user; 参考一下
–> update user set host = ‘%’ where user =‘root’;
–> grant all privileges on . to ‘root’@’%’ identified by ‘密码’; (root:登录用户名,%:允许访问的ip地址,就是本机ip地址,不改应该是默认所有地址都允许)
–> flush privileges;
完成后,关闭本地的navcat,重新打开,再连接,成功!

登入mysql命令:mysql -u root (这里数据库没有设置密码,有密码的应该是 :mysql -u root -p123456)
create database test; # 创建数据库
use test; # 使用已创建的数据库
set names utf8; # 设置编码
source /root/up/test.sql; # 导入备份数据库

部署项目
把本地的文件上传到服务器:
命令:scp test.sql [email protected]:/root/up/test.sql
把本地的test.sql上传到服务器下的root/up路径,并直接命名test.sql,root/up路径也可以不用跟test.sql
注意:本地的test.sql文件在那个路径下,就先跳转到该文件目录下执行cmd命令

解压文件:unzip 测试文件.zip
解压文件:tar -xzvf 测试文件.tar.gz
移动文件到指定文件目录:mv erp_v2 /home/wwwroot/

然后配置nginx.conf文件

在server中注意以下圈住的位置,先配置好项目的访问路径,和默认访问的文件
VMware + lnmp安装 + 负载_第7张图片
在server中添加如下:

	#========================
    # 添加内容部分
    #定义变量
    set $root /home/wwwroot/erp_v2/public;
     location ~ [^/]\.php(/|$)
    {
        try_files $uri =405;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        #设置PATH_INFO
        fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name;
        #引入fastcgi配置
        include fastcgi.conf;
    }
	#从URL中去掉index.php入口文件
    location /
    {
        if (!-e $request_filename) {
            rewrite  ^(.*)$  /index.php?s=/$1  last;
            break;
        }
    }
    #添加内容结束
    #===================================

php nginx如果是单独安装的情况,部署好项目后访问.html .txt 文件正常,唯独php文件报502的情况(没有则忽略),修改nginx.conf文件
在“location ~ [^/].php(/|$)”里面,fastcgi_pass unix:/tmp/php-cgi.sock;修改成 fastcgi_pass 127.0.0.1:9000;
此问题可以通过查看nginx日志查看到:find / -name error.log,找到文件位置,再查看日志信息

负载
1.至少准备3个虚拟服务器,1台分发,2台业务处理
分发服务器,nginx.conf配置:
VMware + lnmp安装 + 负载_第8张图片
http 内添加

upstream www.erpll.com {
     #ip_hash;
     server 192.168.2.199:80 weight=2; #业务处理服务器ip
     server 192.168.2.198:80 weight=1; #业务处理服务器ip
     }

然后添加,或修改原有的server

server {
     listen 80;
     server_name www.erpll.com;

     location /{
            proxy_pass http://www.erpll.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_http_version 1.1;
            proxy_set_header Connection "";
   	 	}
   	 }

重启后,测试访问业务处理服务器即可
业务处理服务器配置不用管!完成。

当看这里,说明linux系统的基本操作已经熟悉了,坑也踩的差不多了,其实最省事的就是一键安装,什么都不管:一键安装:https://lnmp.org/auto.html

VMware + lnmp安装 + 负载_第9张图片

命令:
wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && LNMP_Auto=“y” DBSelect=“4” DB_Root_Password=“123456” InstallInnodb=“y” PHPSelect=“10” SelectMalloc=“1” ./install.sh lnmp

你可能感兴趣的:(linux,centos,负载均衡)