LNMP网站架构分布式搭建部署

目录

一、LNMP概述

1.LNMP工作原理

2.LAMP工作原理

3.LAMP和LNMP的区别

LNMP安装部署 基本和LAMP一样 Apache换成Nginx

二.LNMP部署

1、安装Nginx服务

1、安装nginx的依赖包

2、创建运行用户

3、上传安装包、编译安装 

4、优化路径 让系统识别nginx的操作命令

​编辑​5、添加 Nginx 系统服务

6、赋权,重启服务并设置开机自启 

7、验证

2、安装 MySQL服务

1、准备工作

2、安装Mysql环境依赖包

3、创建用户

4、编译安装

6、清除mariadb缓存

8、更改mysql安装目录和配置文件的属主属组

9、设置路径的环境变量 

10、初始化数据库

​编辑​11、添加mysql系统服务 

12、修改mysql 的登录密码

13、授权远程登录

3.安装配置 PHP 解析环境

1、安装环境依赖包重新开始

2、编译安装

 3、路径优化

4、调整PHP配置文件 

5、验证PHP 测试页

​编辑

6、验证数据库工作是否正常

一键部署LNMP脚本(要改软件安装包版本号)


一、LNMP概述

1.LNMP工作原理

客户端请求访问一个地址,这个请求会到达nginx服务器 

nginx服务器首先判断是否为静态请求,如果是静态请求则直接返回结果到达客户端,

如果是动态请求,这是nginx服务器只做反向代理的作用,(nginx通过接口传输协议PHP-fastcgi协议)它会将请求传给php-fpm这个服务来处理,但是php-fpm不做处理,因为php-fpm是用来管理进程的程序,他会调用PHP解析器进程,php解析进程会来处理这个php文件,如果其中需要调用数据,那么再通过mysql.sock连接到数据库进行读取数据,再进程处理,处理完成之后再交给php-fpm服务进程,php-fpm服务进程再交给nginx服务器,最后到达客户端

2.LAMP工作原理

客户端请求访问一个地址,这个请求会到达apache服务器

  • apache服务会判断是动态请求还是静态请求,如果是静态请求,apache服务将会直接返回到客户端
  • 如果是动态请求,apache服务会调用自己的一个模块libphp7.so模块进行解析处理,如果需要mysql数据库的支持,还会通过mysql.sock来连接数据库进行读去数据,处理完成之后,将返回到apache服务器,最后返回到客户端

3.LAMP和LNMP的区别

LAMP表示为:linux、apache、mysql、php

LNMP表示为:linux、 nginx、  mysql、php

主要区别在于web服务器与php后台之间的转发存在区别

  • 当nginx作为web服务器时,nginx通过cgi接口协议转发到php-fpm服务程序上,nginx服务和php-fpm服务时相对独立的,然后由php-fpm程序调用对应的php解析进行来完成处理
  • 当apache作为web服务器时,apache是调用libphp7.so模块来进行处理,这个模块是会随着apache的启动而启动。内嵌在apache中的一个模块

LNMP安装部署 基本和LAMP一样 Apache换成Nginx

二.LNMP部署

准备三台虚拟机(个人准备第一台安装nginx,第二台mysql数据库,第三台php服务)

分布式搭建部署:效率高,不会单点负载过高,防灾能力强不会全部挂掉,种架构不仅能够显著提升Web服务的性能和可靠性,还能带来维护便捷。

三台都要关闭防火墙,和挂载光盘

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

mount /dev/sr0 /mnt

1、安装Nginx服务

1、安装nginx的依赖包
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
2、创建运行用户
useradd -M -s /sbin/nologin nginx

3、上传安装包、编译安装 
tar xf nginx-1.26.1.tar.gz

cd nginx-1.26.1/

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
 
##--prefix=/usr/local/nginx                              #指定nginx的安装路径
##--user=nginx \                                        #指定用户名
##--group=nginx \                                        #指定组名
##--with-http_stub_status_module    #启用 http_stub_status_module 模块以支持状态统计
##--with-http_ssl_module      ##需要https协议时启动http_ssl_module模块

make -j 4 && make install  #b别超核编译
4、优化路径 让系统识别nginx的操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx -t					#检查配置文件是否配置正确
​5、添加 Nginx 系统服务
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#服务启动停止管理配置
6、赋权,重启服务并设置开机自启 
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

7、验证

有问题可能是本机防火墙没关

2、安装 MySQL服务

1、准备工作
[root@localhost ~]# cd /opt/
#拖入安装包
[root@localhost opt]# ls
mysql-boost-5.7.44.tar.gz
[root@localhost opt]# tar xf mysql-boost-5.7.44.tar.gz 
[root@localhost opt]# cd mysql-5.7.44/
2、安装Mysql环境依赖包
[root@localhost mysql-5.7.44]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                 1913624       0  1913624    0% /dev
tmpfs                    1930644       0  1930644    0% /dev/shm
tmpfs                    1930644   12592  1918052    1% /run
tmpfs                    1930644       0  1930644    0% /sys/fs/cgroup
/dev/mapper/centos-root 36805060 6238132 30566928   17% /
/dev/sda1                1038336  189024   849312   19% /boot
tmpfs                     386132      12   386120    1% /run/user/42
tmpfs                     386132       0   386132    0% /run/user/0
[root@localhost mysql-5.7.44]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel

3、创建用户
[root@localhost opt]# useradd -M -s /sbin/nologin  mysql
[root@localhost opt]# cat /etc/passwd | grep mysql:
mysql:x:1001:1001::/home/mysql:/sbin/nologin
4、编译安装
cd /opt/mysql-5.7.44/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \          #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ 
-DSYSCONFDIR=/etc \                             
-DSYSTEMD_PID_DIR=/usr/local/mysql \            
-DDEFAULT_CHARSET=utf8  \                       
-DDEFAULT_COLLATION=utf8_general_ci \			
-DWITH_EXTRA_CHARSETS=all \						
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            
-DMYSQL_DATADIR=/usr/local/mysql/data \         
-DWITH_BOOST=/usr/local/boost \         	    
-DWITH_SYSTEMD=1								

5、编译及安装

make -j 4 && make install     #慢,想开6核编译
6、清除mariadb缓存
yum remove -y mariadb*

7、修改mysql 配置文件

vim /etc/my.cnf

删除原配置,重新添加以下配置 

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
 
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

8、更改mysql安装目录和配置文件的属主属组
[root@localhost mysql-5.7.44]# chown mysql:mysql /etc/my.cnf
[root@localhost mysql-5.7.44]# ll /etc/my.cnf
-rw-r--r-- 1 mysql mysql 554 5月  30 18:04 /etc/my.cnf
[root@localhost mysql-5.7.44]# cd /usr/local/
[root@zx3 local]# ll
总用量 0
drwxr-xr-x.  2 root root   6 4月  11 2018 bin
drwxr-xr-x.  2 root root   6 4月  11 2018 etc
drwxr-xr-x.  2 root root   6 4月  11 2018 games
drwxr-xr-x.  2 root root   6 4月  11 2018 include
drwxr-xr-x.  2 root root   6 4月  11 2018 lib
drwxr-xr-x.  2 root root   6 4月  11 2018 lib64
drwxr-xr-x.  2 root root   6 4月  11 2018 libexec
drwxr-xr-x  11 root root 177 5月  29 16:12 mysql
drwxr-xr-x.  2 root root   6 4月  11 2018 sbin
drwxr-xr-x.  5 root root  49 4月  30 23:58 share
drwxr-xr-x.  2 root root   6 4月  11 2018 src
[root@localhost local]# chown -R mysql:mysql mysql/
[root@localhost local]# ll
总用量 0
drwxr-xr-x.  2 root  root    6 4月  11 2018 bin
drwxr-xr-x.  2 root  root    6 4月  11 2018 etc
drwxr-xr-x.  2 root  root    6 4月  11 2018 games
drwxr-xr-x.  2 root  root    6 4月  11 2018 include
drwxr-xr-x.  2 root  root    6 4月  11 2018 lib
drwxr-xr-x.  2 root  root    6 4月  11 2018 lib64
drwxr-xr-x.  2 root  root    6 4月  11 2018 libexec
drwxr-xr-x  11 mysql mysql 177 5月  29 16:12 mysql
drwxr-xr-x.  2 root  root    6 4月  11 2018 sbin
drwxr-xr-x.  5 root  root   49 4月  30 23:58 share
drwxr-xr-x.  2 root  root    6 4月  11 2018 src
9、在环境变量中添加mysql的bin和lib目录
[root@localhost local]# cd mysql/bin/
[root@localhost bin]# pwd
/usr/local/mysql/bin
[root@localhost bin]# ls
innochecksum                mysql_config               mysqlslap
lz4_decompress              mysql_config_editor        mysql_ssl_rsa_setup
myisamchk                   mysqld                     mysqltest
myisam_ftdump               mysqld_pre_systemd         mysqltest_embedded
myisamlog                   mysqldump                  mysql_tzinfo_to_sql
myisampack                  mysqldumpslow              mysql_upgrade
my_print_defaults           mysql_embedded             mysqlxtest
mysql                       mysqlimport                perror
mysqladmin                  mysql_install_db           replace
mysqlbinlog                 mysql_plugin               resolveip
mysqlcheck                  mysqlpump                  resolve_stack_dump
mysql_client_test           mysql_secure_installation  zlib_decompress
mysql_client_test_embedded  mysqlshow

echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib' >> /etc/profile

source /etc/profile

[root@localhost bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

​​

10、初始化数据库
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
#生成初始化密码为空
#指定管理用户
#指定数据库的安装目录
#指定数据库文件的存储路径
​11、添加mysql系统服务 
[root@localhost bin]# cd /usr/local/mysql/usr/lib/systemd/system/
[root@localhost system]# ls
mysqld.service  mysqld@.service
[root@localhost system]# cp mysqld.service /usr/lib/systemd/system     
                                #用于systemctl服务管理
systemctl daemon-reload         #刷新识别     
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口

​ 

12、修改mysql 的登录密码
[root@localhost system]# mysqladmin -u root -p password "abc123"
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@localhost system]# mysql -u root -pabc123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.44 Source distribution
 
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
 

Enter password直接回车,因为原先是没有密码的。

13、授权远程登录
mysql -u root -p        
                            
mysql> grant all on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)          
#授予root用户可以在所有终端远程登录,使用的密码是abcd1234,并对所有数据库和所有表有操作权限
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

3.安装配置 PHP 解析环境

1、安装环境依赖包重新开始
yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel pcre-devel

2、编译安装
cd /opt       #添加安装包
tar jxvf php-7.1.10.tar.bz2
 
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
 
#编译安装
make -j 4 && make install
 3、路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
4、调整PHP配置文件 
php有三个配置文件: 
php.ini			主配置文件  
php-fpm.conf	进程服务配置文件 
www.conf		扩展配置文件
 
#调整主配置文件:
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini	
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改时区
date.timezone = Asia/Shanghai
 
php -m 					#验证安装的模块
 
#调整进程服务配置文件:
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid

​ 

#调整扩展配置文件:
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
vim www.conf

创建用户

[root@localhost php-fpm.d]# useradd -M -s /sbin/nologin php
[root@localhost php-fpm.d]# cat /etc/passwd | grep php:
php:x:1001:1001::/home/php:/sbin/nologin

启动php-fpm

cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl daemon-reload
systemctl start php-fpm.service 
systemctl enable php-fpm.service 

5、配置Nginx支持php解析 (再回到第一台)

vim /usr/local/nginx/conf/nginx.conf #修改nginx配置文件

可nginx -t检查 有无语法错误

[root@localhost ~]# nginx -t   #检查语法
[root@localhost ~]# systemctl restart nginx   #重启一下nginx服务
5、验证PHP 测试页
[root@localhost conf]# mkdir -p /var/www/html
[root@localhost conf]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# vim test.php

[root@localhost html]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html  index.html
[root@localhost html]# vim tutu.html
<h1>tutu is a cat</h1>
<img src="tutu.png" />

保存退出,把图片拖进来

静态验证

http://192.168.100.15/tutu.html

验证动态

cd /var/www/html
yum install -y rpcbind nfs-utils
vim /etc/exports

  

systemctl enable --now rpcbind nfs  #先启动rpcbind
showmount -e                #检查一下

  

回php服务器测试    

[root@localhost fpm]# vim /etc/fstab

  

[root@localhost fpm]# mkdir /var/www/html -p
[root@localhost fpm]# mount -a
[root@localhost fpm]# df

    

再看就有了  

6、验证数据库工作是否正常

  

mysql -uroot -pabcd1234
grant all on *.* to 'root'@'%' identified by 'abcd1234';
flush privileges;

在php服务器创建的,文件里面的IP地址是mysql服务器的IP地址

[root@localhost fpm]# cd /var/www/html/
[root@localhost html]# ls
test.php
[root@localhost html]# vim mysql.php


<?php
$link=mysqli_connect('192.168.100.16','root','abcd1234');
if($link) echo "<h1>mysql connect successful </h1>";
else echo "<h1>mysql connect failed</h1>";
?>

  

一键部署LNMP脚本(要改软件安装包版本号)

#!/bin/bash
#关闭系统防火墙和安全机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

cat <<EOF
欢迎使用LNMP架构服务搭建
请将安装包放入/opt目录下
1.安装nginx服务
2.安装mysql
3.安装php
4.一键安装LNMP架构
EOF
read -p "请输入你的选择:" choice

#======编译安装nginx服务======
#1、安装所需开发包和编译环境、编译器
Nginx () {
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#2、创建程序用户,便于准确控制访问
useradd -M -s /sbin/nologin nginx

#3、解压安装包
cd /opt
tar zxf nginx-1.20.2.tar.gz -C /opt/

#4、指定安装路径、指定用户名、组名、启用模块以支持统计状态
cd nginx-1.20.2/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module


#5、编译及安装
make -j2 && make install

#6、优化配置文件路径,便于系统识别nginx操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

#7、添加nginx系统服务
echo '[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target' > /lib/systemd/system/nginx.service

#8、赋权及开启服务、开启开机自启
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

if [ $? -eq 0 ];then
    echo "nginx服务安装完成"
  else
    echo "服务安装失败,请检查"
  fi

}
#=======编译安装mysql服务=======
#1、安装Mysql环境依赖包
Mysql () {
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake

#2、创建程序用户,便于准确控制访问用户
useradd -M -s /sbin/nologin  mysql

#3、配置软件模块
cd /opt
tar zxf boost_1_59_0.tar.gz
tar zxf mysql-5.7.17.tar.gz
mv boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.17/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

#4、编译及安装
make -j2 && make install

#5、修改mysql 配置文件
echo '[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_
DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES' > /etc/my.cnf

#6、更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

#7、设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile


#8、初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

#9、添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#用于systemctl服务管理

systemctl daemon-reload    #刷新识别
systemctl start mysqld.service  #开启服务
systemctl enable mysqld   #开机自启动

echo -e "\033[31m mysql安装完成!\033[0m"
if [ $? -eq 0 ];then
    echo "MYSQL安装完成"
  else
    echo "服务安装异常,请检查"
  fi
}

#=====PHP=======
#1、安装环境依赖包
Php () {
yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

#2、配置软件模块
cd /opt
tar xzf php-7.1.24.tar.gz

cd php-7.1.24
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \

#3、编译安装
make -j3 && make install


#4、主配置文件:php.ini
cp /opt/php-7.1.24/php.ini-development /usr/local/php/lib/php.ini
sed -i '1170c mysqli.default_socket = /usr/local/mysql/mysql.sock' /usr/local/php/lib/php.ini

sed -i '939c date.timezone = Asia/Shanghai' /usr/local/php/lib/php.ini

#5、优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
php -m
#6、进程服务配置文件:php-fpm.conf
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf

sed -i '17c pid = run/php-fpm.pid' /usr/local/php/etc/php-fpm.conf

#7、扩展配置文件:www.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

#8、启动php-fpm
ln -s /usr/local/php/sbin/* /usr/local/sbin
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000
if [ $? -eq 0 ];then
   echo "服务安装成功"
  else
   echo "服务安装失败,请检查"
  fi
}

#9、配置 Nginx 支持php解析
#--65行--取消注释,修改
conf(){
cd /usr/local/nginx/conf/

sed -i '65,71s/#/ /g' nginx.conf

sed -i '69s/\/scripts/\/usr\/local\/nginx\/html/g' nginx.conf
echo '<?php
phpinfo();
?>' > /usr/local/nginx/html/index.php
systemctl restart httpd
}

################调用函数###################################
case $choice in
1)
Nginx
;;
2)
Mysql
;;
3)
Php
;;
4)
nginx
sleep 2
mysql
sleep 2
php
sleep 2
conf
;;
*)
echo "请输入正确选项"
esac

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值