0
点赞
收藏
分享

微信扫一扫

LNMP学习

残北 2023-06-16 阅读 66

yum安装LNMP部署禅道

禅道官网:https://www.zentao.net/

10.10.21.20 安装nginx和php
10.10.21.196 安装mysql和redis
安装之前先确保有基础的yum源和epel源

nginx安装配置

安装

[root@kibana ~]# yum -y install epel-release # 安装epel源
[root@kibana ~]# yum -y install nginx

[root@kibana ~]# nginx -v # 安装完成检查版本
nginx version: nginx/1.20.1

配置

[root@kibana ~]# cat /etc/nginx/conf.d/lnmp.conf 
server {
	listen 80;
	root /data/lnmp/zentaopms/www ;  # 这里的zentaopms/www后面会生成
	location / {
		index index.php index.html;
	}
	location ~ \.php$ {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include        fastcgi_params;
	}	
}
[root@kibana ~]# mkdir -p /data/lnmp
[root@kibana ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

php-fpm安装配置

安装

[root@kibana ~]# yum -y install https://mirror.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm # 安装php7.4所需的yum源
[root@kibana ~]# yum -y install php74-php-fpm php74-php-mysqlnd php74-php-pecl-redis5 php74-php-mbstring php74-php-xml php74-php-gd # 安装php74和必须的插件,74已经停止支持了
[root@kibana ~]# yum -y install php82-php-fpm php82-php-json php82-php-mysqlnd  php82-php-gd php82-php-pecl-zip php82-php-xml php82-php-pecl-redis5 php82-php-mbstring # 安装php82和必须的插件

安装时候可能遇到类似报错:
Error: Package: libzip5-1.9.2-3.el7.remi.x86_64 (remi-safe)
           Requires: libzstd(x86-64) >= 1.3.6
Error: Package: php82-php-pecl-redis5-5.3.7-2.el7.remi.x86_64 (remi-safe)
           Requires: liblzf.so.1()(64bit)
Error: Package: libzip5-1.9.2-3.el7.remi.x86_64 (remi-safe)
           Requires: libzstd.so.1()(64bit)
Error: Package: php82-php-pecl-redis5-5.3.7-2.el7.remi.x86_64 (remi-safe)
           Requires: libzstd.so.1()(64bit)
Error: Package: gd3php-2.3.3-7.el7.remi.x86_64 (remi-safe)
           Requires: libraqm.so.0()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

解决方法:
[root@kibana ~]# yum -y install zstd
# 安装缺失的库文件,安装完成之后再安装php

[root@kibana ~]# /opt/remi/php82/root/usr/sbin/php-fpm -v  
PHP 8.2.6 (fpm-fcgi) (built: May  9 2023 06:25:31)
Copyright (c) The PHP Group
Zend Engine v4.2.6, Copyright (c) Zend Technologies
# 安装成功

配置

[root@kibana ~]# vim /etc/opt/remi/php82/php-fpm.d/www.conf

[root@kibana ~]# egrep "nginx|redis|tcp" /etc/opt/remi/php82/php-fpm.d/www.conf |grep -v "^;"
user = nginx
group = nginx
php_value[session.save_handler] = redis
php_value[session.save_path]    = "tcp://10.10.21.196"  
# 修改对应的4行,php_value[session.save_path]  需要改成redis的服务器地址

安装和配置mariadb、redis

安装

[root@es1 ~]# yum -y install mariadb redis

[root@es1 ~]# mysql -V
mysql  Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1
[root@es1 ~]# redis-server -v
Redis server v=3.2.12 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=7897e7d0e13773f

配置

redis

[root@es1 ~]# sed -i 's/^bind.*/bind 0.0.0.0/' /etc/redis.conf
[root@es1 ~]# systemctl enable --now redis 
[root@es1 ~]# ps aux |grep redis
redis     30285  0.0  0.1 143056  5768 ?        Ssl  14:37   0:00 /usr/bin/redis-server 0.0.0.0:6379

mariadb

[root@es1 ~]# systemctl enable --now mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@es1 ~]# mysqladmin -uroot password Huawei@123
# 修改root密码,生产环境建议进库里面改,避免history留下密码痕迹
MariaDB [(none)]> set password for root@localhost = password('Huawei@123');
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)




[root@es1 ~]# mysql -uroot -pHuawei@123  # 生产环境建议使用 mysql -uroot -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create user 'zentao'@'10.10.21.%' identified by 'Huawei@1234';  # 创建普通用户
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database zentaodb;  # 创建一个库
Query OK, 1 row affected (0.00 sec) 

MariaDB [(none)]> grant all on zentaodb.* to 'zentaodb'@'10.10.21.%';  # 将这个库授权给上面的用户
Query OK, 0 rows affected (0.01 sec)

嫌弃麻烦的话也可以直接允许root远程登录

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.21.%' IDENTIFIED BY 'Huawei@123' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

# 同时这个禅道还有个坑爹的点,需要把默认引擎改改,否则会报错
MariaDB [(none)]> SET default_storage_engine=MyISAM;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE '%default_storage_engine%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1 row in set (0.00 sec)

安装禅道

下载禅道php源码

[root@kibana ~]# wget https://www.zentao.net/dl/zentao/18.3/ZenTaoPMS.18.3.php7.2_7.4.zip

[root@kibana ~]# unzip ZenTaoPMS.18.3.php7.2_7.4.zip  -d /data/lnmp/
# 解压到nginx定义的root目录下

安装

启动服务

[root@kibana ~]# systemctl enable --now nginx php82-php-fpm.service 
# redis和mysql之前就已经启动过了,这里就不用重复启动了

浏览器安装

浏览器访问 http://10.10.21.20 (对应自己的nginx地址)

LNMP学习_php

之后按提示安装即可,安装完成登录 redis 也可以看到有一下key,表示redis加速session成功

[root@es1 ~]# redis-cli 
127.0.0.1:6379> keys *
1) "name"
2) "PHPREDIS_SESSION:mir1rc9p4k8dgqt1f9v3cun76d"
3) "PHPREDIS_SESSION:3pjdkdgtqjde9sl0s9m22b4k45"

编译安装LNMP部署可道云

可道云官网:https://kodcloud.com/

清除环境

[root@es1 ~]# yum -y remove redis* mariadb*
[root@kibana ~]# yum -y remove nginx php*

仍然10.10.21.20安装nginx和php,10.10.21.196安装mysql和php

编译安装mysql

准备工具和源码包

[root@es1 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.32.tar.gz
# 官网下载源码包
[root@es1 ~]# tar -xf mysql-boost-8.0.32.tar.gz
[root@es1 ~]# useradd mysql -r -s /sbin/nologin -M
[root@es1 ~]# yum -y install gcc gcc-c++ cmake cmake3 ncurses ncurses-devel bison openssl-devel rpcgen 
# 下载编译需要的工具包,8.x的mysql依赖cmake 3.5.1及以上版本,GCC 11及以上版本
[root@es1 mysql]# cmake --version
cmake version 2.8.12.2
[root@es1 mysql]# cmake3 --version
cmake3 version 3.17.5
# cmake3是满足要求的

[root@es1 mysql]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#默认的gcc版本低了

[root@es1 ~]# wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz
[root@es1 ~]# wget https://mirrors.ustc.edu.cn/gnu/gmp/gmp-6.1.2.tar.xz
[root@es1 ~]# wget https://mirrors.ustc.edu.cn/gnu/mpfr/mpfr-4.0.2.tar.gz
[root@es1 ~]# wget https://mirrors.ustc.edu.cn/gnu/mpc/mpc-1.1.0.tar.gz
# gcc如果编译安装需要依赖很多东西,并且耗时很久,我这边就直接yum来装了

[root@es1 mysql]# yum -y install centos-release-scl  # 安装gcc的yum源
[root@es1 mysql]# yum -y install devtoolset-11-gcc*
[root@es1 mysql]# scl enable devtoolset-11 bash  # 激活新版本gcc
[root@es1 mysql]# gcc --version
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# gcc版本已经升级为11.2.1了

开始编译

[root@es1 mysql-8.0.32]# cd mysql-8.0.32
[root@es1 mysql-8.0.32]# cmake3 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-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=$(pwd)/boost/boost_1_77_0 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1

[root@es1 mysql-8.0.32]# make -j 4 && make install  # 开始编译,可根据自己cpu数量来决定参数,我这边是4个vcpu,编的时候cpu都跑满了

LNMP学习_nginx_02

我这边编译完成之后遇到了 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 不生效,但是手动拷贝过去ok的情况,因此干脆重新二进制安装一次

[root@es1 local]# cd /usr/local/
[root@es1 local]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz   # 官网下载地址
[root@es1 local]# tar -xf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
[root@es1 local]# mv mysql-8.0.32-linux-glibc2.12-x86_64 mysql  && cd mysql
[root@es1 mysql]# useradd mysql -r -s /sbin/nologin -M
[root@es1 mysql]# mkdir data log
[root@es1 mysql]# vim my.cnf 
[root@es1 mysql]# cat my.cnf 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 设置socket文件目录
socket=/tmp/mysql.sock
# 设置日志目录
log-error=/usr/local/mysql/log/mysql.log
# 设置pid目录
pid-file=/usr/local/mysql/mysql.pid
# 允许最大连接数
max_connections=1500
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用"mysql_native_password"插件认证
default_authentication_plugin=mysql_native_password
# 区分大小写,0区分,1不区分,填写这个配置前提是在initialize初始化数据库的时候加参数--lower_case_table_names=1,否则报错
lower_case_table_names=1
 


[root@es1 mysql]# chown -R mysql.mysql /usr/local/mysql


[root@es1 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --lower_case_table_names=1  # 初始化,初始化完成会生成初始密码
2023-05-19T12:33:53.647397Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.32) initializing of server in progress as process 93505
2023-05-19T12:33:53.654056Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-05-19T12:33:54.179881Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-05-19T12:33:55.096205Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: R<ogdDep0NcG    # 这里就是密码
#参数说明
    #--user=mysql 指定用户
    #--basedir=/usr/local/mysql/ 指定安装目录
    #--datadir=/usr/local/mysql/data/ 指定初始化数据目录

配置systemd管理mysql

[root@es1 ~]# cat /etc/systemd/system/mysqld.service 
[Unit]
Description=mysql
After=network-online.target 
Wants=network-online.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --daemonize
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
LimitNOFILE = 10000
Restart=on-failure
Type=forking
TimeoutSec=0

[Install]
WantedBy=multi-user.target
[root@es1 ~]# systemctl enable --now mysqld  # 启动mysql

连接数据库进行初始配置

[root@es1 ~]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh # 配置环境变量,这样就可以直接执行mysql命令,不需要用绝对路径
[root@es1 ~]# /usr/local/mysql/bin/mysql -uroot -p   # 密码是初始密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Huawei@123';
Query OK, 0 rows affected (0.01 sec)
# 必须要改掉初始化密码,否则什么都干不了

mysql>  create database kodbox;
Query OK, 1 row affected (0.00 sec)

mysql>  create user kodbox@'10.10.21.%'  identified by 'Huawei@123';
Query OK, 0 rows affected (0.02 sec)

mysql> grant all on kodbox.* to kodbox@'10.10.21.%';
Query OK, 0 rows affected (0.00 sec)
# 创建库后面用

编译安装redis

准备工具和源码包

[root@es1 ~]# wget http://download.redis.io/releases/redis-7.0.9.tar.gz
[root@es1 redis]# tar -xf redis-7.0.9.tar.gz -C /usr/local/
[root@es1 redis]# mv /usr/local/{redis-7.0.9,redis}
[root@es1 redis]# cd /usr/local/redis/
[root@es1 redis]# make # 直接make即可 (make install默认安装到/usr/local/bin目录下,但是我这边不需要)

[root@es1 redis]#  src/redis-server redis.conf 
11188:C 19 May 2023 22:14:19.707 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
11188:C 19 May 2023 22:14:19.707 # Redis version=7.0.9, bits=64, commit=00000000, modified=0, pid=11188, just started
11188:C 19 May 2023 22:14:19.707 # Configuration loaded
11188:M 19 May 2023 22:14:19.708 * monotonic clock: POSIX clock_gettime
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 7.0.9 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                  
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 11188
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           https://redis.io       
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               
# 测试redis启动成功

简单配置redis

[root@es1 redis]# sed -i 's/^bind.*/bind 0.0.0.0/' /usr/local/redis/redis.conf 
# 然后加上访问密码
  requirepass Huawei@123

配置systemd管理redis

[root@es1 redis]# cat /etc/systemd/system/redis.service 
[Unit]
Description=redis-server
After=network.target
Wants=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
PrivateTmp=true
Restart=on-failure
TimeoutSec=0

[Install]
WantedBy=multi-user.target

[root@es1 redis]# systemctl enable --now redis
[root@es1 ~]# ps aux |grep redis
root      12258  0.0  0.2 163156  8180 ?        Ssl  22:26   0:00 /usr/local/redis/src/redis-server 0.0.0.0:6379
# 检测进程是否启动

编译安装php

准备工具和源码包

[root@kibana ~]# yum -y install gcc openssl-devel libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel
[root@kibana ~]#  wget https://www.php.net/distributions/php-8.2.6.tar.gz
[root@kibana ~]# tar -xf  https://www.php.net/distributions/php-8.2.6.tar.gz
[root@kibana ~]# yum  -y install libcurl-devel libxml2-devel sqlite-devel bzip2-devel libpng-devel  libjpeg-devel freetype-devel libicu-devel  oniguruma-devel libxslt-devel libzip-devel libffi-devel libwebp-devel
# 如不安装可能遇到编译报错

开始编译

[root@kibana ~]# cd php-8.2.6/
[root@kibana php-8.2.6]#  ./configure  \
--prefix=/usr/local/php \
--sysconfdir=/usr/local/php \
--with-openssl  \
--with-imap-ssl  \
--with-zlib  \
--with-bz2  \
--with-curl  \
--enable-bcmath  \
--enable-gd  \
--with-webp  \
--with-jpeg  \
--with-mhash  \
--enable-mbstring  \
--enable-xml \
--enable-sockets  \
--enable-fpm  \
--enable-maintainer-zts \
--disable-fileinfo \
--enable-mysqlnd \
--with-mysqli=mysqlnd  \
--with-pdo-mysql \
--enable-exif  \
--with-ffi  \
--with-pcre-jit  \
--enable-pcntl	

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

[root@kibana php-8.2.6]#   make -j 4 && make install 

/root/php-8.2.6/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin/phar.phar
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:           /usr/local/php/include/php/ext/pdo/
# 编完了会有对应提示
 
[root@kibana php-8.2.6]# cd /usr/local/php/
[root@kibana php]# ls      # 检查下编完了的文件
bin  include  lib  php  php-fpm.conf.default  php-fpm.d  sbin  var

[root@kibana php]# /usr/local/php/bin/php -v
PHP 8.2.6 (cli) (built: May 20 2023 09:41:05) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.6, Copyright (c) Zend Technologies

配置php

[root@kibana php]# cp /usr/local/php/{php-fpm.conf.default,php-fpm.conf} 
[root@kibana php]# cp /usr/local/php/php-fpm.d/{www.conf.default,www.conf}
# 拷贝出来配置文件
[root@kibana php]# pwd 
/usr/local/php

[root@kibana php]# sed -i 's/nobody/nginx/g' php-fpm.d/www.conf
[root@kibana php]# egrep -v '^;|^$' php-fpm.d/www.conf
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
access.log = log/$pool.access.log
slowlog = log/$pool.log.slow

[root@kibana php]# mkdir log  # 默认没有日志目录,需要创建一个
[root@kibana php]# /usr/local/php/sbin/php-fpm -t  # 检查语法配置是否正确
[20-May-2023 09:57:12] NOTICE: configuration file /usr/local/php/php-fpm.conf test is successful
[root@kibana php]# echo "PATH=\$PATH:/usr/local/php/bin/:/usr/local/php/sbin/" > /etc/profile.d/php.sh  # 设置环境变量,这样就可以直接用php命令了

设置systemd管理php

[root@kibana php]# cat /etc/systemd/system/php-fpm.service
[Unit]
Description=php-fpm
After=network.target
Wants=network.target

[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
PrivateTmp=true
Restart=on-failure

[Install]
WantedBy=multi-user.target
[root@kibana php]# systemctl daemon-reload 
[root@kibana php]# systemctl enable --now php-fpm.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /etc/systemd/system/php-fpm.service.
[root@kibana php]# ps -aux |grep php
root      48551  0.0  0.1 221160  4620 ?        Ss   10:02   0:00 php-fpm: master process (/usr/local/php/php-fpm.conf)
nginx     48552  0.0  0.1 223244  4492 ?        S    10:02   0:00 php-fpm: pool www
nginx     48553  0.0  0.1 223244  4492 ?        S    10:02   0:00 php-fpm: pool www

编译安装redis扩展模块

[root@kibana ~]# wget https://pecl.php.net/get/redis-5.3.7.tgz  # 我安装的php是8.2,老的扩展安装会报错,自己去 pecl.php.net 找的最新版redis扩展
[root@kibana ~]# tar -xf redis-5.3.7.tgz 
[root@kibana ~]# cd redis-5.3.7
[root@kibana redis-5.3.7]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@kibana redis-5.3.7]#  make -j 4 && make install 
[root@kibana redis-5.3.7]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20220829/
opcache.so  redis.so
# 多出来了redis

配置php-fpm开启redis扩展

# 正常开启是需要在php.ini里面开,但是我安装的这版本没有这个文件
[root@kibana redis-5.3.7]# php -i |grep "Configuration File"   # 找出来对应的配置文件位置
Configuration File (php.ini) Path => /usr/local/php/lib        # 位置找到了,在/usr/local/php/lib
Loaded Configuration File => (none)                            # 但是很显然是没有文件的

# 因此直接获取一个标准的php.ini文件来改,记得路径和上面查出来的保持一致
[root@kibana redis-5.3.7]# egrep -v '^$|^;'  /usr/local/php/lib/php.ini
[PHP]
error_reporting = E_ALL
display_errors = On
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20220829"
extension = "redis.so"
max_execution_time = 30
memory_limit = 128M
upload_max_filesize = 32M
session.save_handle = redis                   # 声明用redis存放session
session.save_path = "tcp://10.10.21.196:6379?auth=Huawei@123"      # 声明用redis的地址,如果redis测没开启密码,这里就? 往右的删掉
session.use_cookies = 1
session.name = "MYSESSID"
session.cookie_path = "/"
session.cookie_lifetime = 86400
session.cookie_domain = ".example.com"
session.gc_probability = 1
session.gc_divisor = 100
file_uploads = On
upload_tmp_dir = "/tmp"
post_max_size = 64M
date.timezone = "Asia/Shanghai"
# 上面的 # 只是我写上来的注释,但是php注释是用 ; 因此真正使用的时候记得删除

# 验证配置是否有问题
[root@kibana redis-5.3.7]# php -i |grep "Configuration File"
Configuration File (php.ini) Path => /usr/local/php/lib
Loaded Configuration File => /usr/local/php/lib/php.ini     # 文件已经有了

[root@kibana redis-5.3.7]# php-fpm -t
[20-May-2023 11:25:32] NOTICE: configuration file /usr/local/php/php-fpm.conf test is successful  配置文件也没毛病
[root@kibana redis-5.3.7]# systemctl restart php-fpm # 重启生效

编译安装nginx

准备工具和源码包

[root@kibana ~]# yum -y install gcc pcre-devel openssl-devel zlib-devel
[root@kibana ~]# wget http://nginx.org/download/nginx-1.20.2.tar.gz
[root@kibana ~]# useradd nginx -r -s /sbin/nologin

开始编译

[root@kibana ~]# tar -xf nginx-1.20.2.tar.gz
[root@kibana nginx-1.20.2]# cd nginx-1.20.2
[root@kibana nginx-1.20.2]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module

[root@kibana nginx-1.20.2]# make -j 4 && make install 
# 同样的配置,编译nginx就比mysql轻松很多

配置systemd管理nginx

[root@kibana nginx-1.20.2]# mkdir /usr/local/nginx/run
[root@kibana nginx-1.20.2]# cat /etc/systemd/system/nginx.service
[Unit]
Description=nginx
After=network-online.target 
Wants=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID

[Install]
WantedBy=multi-user.target

简单配nginx

[root@kibana ~]# sed -i 's@^#pid.*@pid  run/nginx.pid;@'  /usr/local/nginx/conf/nginx.conf
[root@kibana nginx]# sed -i 's@^worker_processes.*@worker_processes  4;@' /usr/local/nginx/conf/nginx.conf  # 几个核心就改成几

[root@kibana nginx]# egrep -v '#|^$' conf/nginx.conf
worker_processes  4;
pid  run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  mykodbox.com;
        location / {
            index  index.php index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           kodbox;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_script_name;
            include        fastcgi_params;
	    fastcgi_hide_header X-Powered-By; 
        }
    }
}




[root@kibana nginx]# systemctl enable --now nginx 
[root@kibana nginx]# ps aux |grep nginx 
root      50472  0.0  0.0  46228  1160 ?        Ss   21:56   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx     50473  0.0  0.0  48768  1996 ?        S    21:56   0:00 nginx: worker process
nginx     50474  0.0  0.0  48768  1996 ?        S    21:56   0:00 nginx: worker process
nginx     50475  0.0  0.0  48768  1996 ?        S    21:56   0:00 nginx: worker process
nginx     50476  0.0  0.0  48768  1996 ?        S    21:56   0:00 nginx: worker process
root      50513  0.0  0.0 112808   968 pts/0    S+   21:56   0:00 grep --color=auto nginx
# 一个master和4个worker就是对的

准备一个php测试文件看看redis是否开起来了

[root@kibana redis-5.3.7]# cat /usr/local/nginx/kodbox/index.php  #路径和nginx配置的需要一致
<?php
phpinfo();
?>

浏览器访问测试

LNMP学习_nginx_03

测试session存放是否是redis

LNMP学习_nginx_04

安装可道云

下载安装包

[root@kibana ~]# wget https://static.kodcloud.com/update/download/kodbox.1.40.zip
[root@kibana ~]# rm -f /usr/local/nginx/kodbox/*
[root@kibana ~]# unzip  kodbox.1.40.zip -d /usr/local/nginx/kodbox/
[root@kibana ~]# chown nginx.nginx /usr/local/nginx/kodbox/ -R

浏览器访问页面开始安装

LNMP学习_php_05

安装完成检测

LNMP学习_php_06

可以看到已经缓存了不少内容到redis中 了

LNMP学习_mysql_07

可道云对接对象存储

LNMP学习_mysql_08

举报

相关推荐

0 条评论