当前位置: 首页 > news >正文

企业架构LNMP学习笔记8

1、

运维人员需要考虑安全性、稳定性。 

安装:

解压进入到目录:

shell > tar zxf php-7.2.12.tar.gz
shell > cd php-7.2.12

安装依赖软件:

yum -y install libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel openssl-devel

编译参数配置:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-libzip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts

编译并安装到目录:

make && make install

查看PHP的安装目录:

cd /usr/local/php

 跟mysql相关的模块:

[root@server01 bin]# ./php -m |grep mysql
mysqli
mysqlnd
pdo_mysql

man文档:

man ./php.1

配置:

使用php-fpm进行管理php服务,有两个配置文件:①php.ini                  #默认php配置文件②php-fpm.conf       #php-fpm相关的配置 

复制配置文件:

shell > cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
shell > cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
shell > cp /root/soft/php-7.2.12/php.ini-development /usr/local/php/etc/php.ini

启动php-fpm服务:

添加启动服务:

shell > cp /root/soft/php-7.2.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
shell > chmod +x /etc/init.d/php-fpm
shell > chkconfig --add php-fpm

 

[root@server01 fpm]# service php-fpm status
php-fpm is stopped
[root@server01 fpm]# service php-fpm start
Starting php-fpm  done
[root@server01 fpm]#
[root@server01 fpm]# service php-fpm status
php-fpm (pid 26261) is running...

 

#! /bin/sh### BEGIN INIT INFO
# Provides:          php-fpm
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFOprefix=/usr/local/php
exec_prefix=${prefix}php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pidphp_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"wait_for_pid () {try=0while test $try -lt 35 ; docase "$1" in'created')if [ -f "$2" ] ; thentry=''breakfi;;'removed')if [ ! -f "$2" ] ; thentry=''breakfi;;esacecho -n .try=`expr $try + 1`sleep 1done}case "$1" instart)echo -n "Starting php-fpm "$php_fpm_BIN --daemonize $php_optsif [ "$?" != 0 ] ; thenecho " failed"exit 1fiwait_for_pid created $php_fpm_PIDif [ -n "$try" ] ; thenecho " failed"exit 1elseecho " done"fi;;stop)echo -n "Gracefully shutting down php-fpm "if [ ! -r $php_fpm_PID ] ; thenecho "warning, no pid file found - php-fpm is not running ?"exit 1fikill -QUIT `cat $php_fpm_PID`wait_for_pid removed $php_fpm_PIDif [ -n "$try" ] ; thenecho " failed. Use force-quit"exit 1elseecho " done"fi;;status)if [ ! -r $php_fpm_PID ] ; thenecho "php-fpm is stopped"exit 0fiPID=`cat $php_fpm_PID`if ps -p $PID | grep -q $PID; thenecho "php-fpm (pid $PID) is running..."elseecho "php-fpm dead but pid file exists"fi;;force-quit)echo -n "Terminating php-fpm "if [ ! -r $php_fpm_PID ] ; thenecho "warning, no pid file found - php-fpm is not running ?"exit 1fikill -TERM `cat $php_fpm_PID`wait_for_pid removed $php_fpm_PIDif [ -n "$try" ] ; thenecho " failed"exit 1elseecho " done"fi;;restart)$0 stop$0 start;;reload)echo -n "Reload service php-fpm "if [ ! -r $php_fpm_PID ] ; thenecho "warning, no pid file found - php-fpm is not running ?"exit 1fikill -USR2 `cat $php_fpm_PID`echo " done";;configtest)$php_fpm_BIN -t;;*)echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"exit 1;;esac

说明:Default-start和Default-stop:这个跟chkconfig 类似。

脚本还是要多练习的。

添加环境变量:

[root@server01 fpm]# echo "PATH=/usr/local/php/bin:$PATH" >> /etc/profile
[root@server01 fpm]# source /etc/profile

php安装脚本及其初始化配置 :

#!/bin/bash
php_install(){
#php编译安装
#和nginx使用相同的用户,如果没有就创建
`id www` &> /dev/null
[ $? -ne 0 ] && useradd -s /sbin/nologin -M www
#解决依赖
yum -y install libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel openssl-devel
#解压
tar xvf php-7.2.12.tar.gz
cd php-7.2.12
#编译安装php
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-libzip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts && make && make install
#配置文件初始化
cp php.ini-development /usr/local/php/etc/php.ini
#php-fpm服务配置文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
#php-fpm服务子配置文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
#配置服务及其环境变量
cp /root/soft/php-7.2.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
service php-fpm start
chkconfig --add php-fpm
echo 'PATH=/usr/local/php/bin:$PATH' >> /etc/profile
source /etc/profile
}
#脚本开始时间
start_time=`date +%s`
#执行的脚本代码
php_install
#脚本结束时间
end_time=`date +%s`
#脚本执行花费时间
const_time=$((end_time-start_time))
echo 'Take time is: '$const_time's'

进行测试:

[root@server01 fpm]# php -v
PHP 7.2.12 (cli) (built: Sep  3 2023 14:57:38) ( ZTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
[root@server01 fpm]#
[root@server01 fpm]#
[root@server01 fpm]# php -m |grep mysql
mysqli
mysqlnd
pdo_mysql

http://www.lryc.cn/news/157069.html

相关文章:

  • 简单使用_matlab生成数据帧
  • uni-app语音转文字功能demo(同声传译)
  • vue2+element-ui批量导入方法并判断上传的文件是否为xls或xlsx
  • 【FPGA】通俗理解从VGA显示到HDMI显示
  • 【SpringMVC】参数传递与用户请求和响应
  • Android图形-Hardware Composer HAL
  • P1093 [NOIP2007 普及组] 奖学金
  • C#模拟PLC设备运行
  • LeetCode 每日一题 2023/8/28-2023/9/3
  • Python Tkinter Multiple Windows 教程
  • 【Arduino24】8*8点阵实验
  • 2023年09月数据库流行度最新排名
  • jenkins快速跑通helloworld任务
  • win10中安装ros
  • 问道管理:光刻胶概念再度活跃,广信材料两连板,蓝英装备等涨停
  • InstructPix2Pix(CVPR2023)-图像编辑论文解读
  • 基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测
  • 一个新工具 nolyfill
  • vue的第2篇 开发环境vscode的安装以及创建项目空间
  • Java之包装类的详细解析
  • SpringBoot项目防止接口重复提交(简单拦截器实现方案)
  • C语言 数据结构与算法 I
  • PHP指定时间戳/日期加一天,一年,一周,一月
  • 前端框架 vue-admin-template的搭建运行
  • Git—版本控制系统
  • 【MySQL基础|第一篇】——谈谈SQL中的DDL语句
  • 移动安全测试框架-MobSF WINDOWS 环境搭建
  • QT连接OpenCV库完成人脸识别
  • 使用 ElasticSearch 作为知识库,存储向量及相似性搜索
  • 视频图像处理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv