企业架构LNMP学习笔记8

这篇具有很好参考价值的文章主要介绍了企业架构LNMP学习笔记8。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、

企业架构LNMP学习笔记8,PHP,架构

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

企业架构LNMP学习笔记8,PHP,架构

安装:

解压进入到目录:

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

企业架构LNMP学习笔记8,PHP,架构

查看PHP的安装目录:

cd /usr/local/php

企业架构LNMP学习笔记8,PHP,架构

 跟mysql相关的模块:

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

man文档:

man ./php.1

企业架构LNMP学习笔记8,PHP,架构

配置:

使用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服务:

企业架构LNMP学习笔记8,PHP,架构

添加启动服务:

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...

 企业架构LNMP学习笔记8,PHP,架构

#! /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 INFO

prefix=/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.pid


php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"


wait_for_pid () {
        try=0

        while test $try -lt 35 ; do

                case "$1" in
                        'created')
                        if [ -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;

                        'removed')
                        if [ ! -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                esac

                echo -n .
                try=`expr $try + 1`
                sleep 1

        done

}

case "$1" in
        start)
                echo -n "Starting php-fpm "

                $php_fpm_BIN --daemonize $php_opts

                if [ "$?" != 0 ] ; then
                        echo " failed"
                        exit 1
                fi

                wait_for_pid created $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        stop)
                echo -n "Gracefully shutting down php-fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi

                kill -QUIT `cat $php_fpm_PID`

                wait_for_pid removed $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed. Use force-quit"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        status)
                if [ ! -r $php_fpm_PID ] ; then
                        echo "php-fpm is stopped"
                        exit 0
                fi

                PID=`cat $php_fpm_PID`
                if ps -p $PID | grep -q $PID; then
                        echo "php-fpm (pid $PID) is running..."
                else
                        echo "php-fpm dead but pid file exists"
                fi
        ;;

        force-quit)
                echo -n "Terminating php-fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi

                kill -TERM `cat $php_fpm_PID`

                wait_for_pid removed $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        restart)
                $0 stop
                $0 start
        ;;

        reload)

                echo -n "Reload service php-fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi

                kill -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'

进行测试:文章来源地址https://www.toymoban.com/news/detail-696732.html

[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

到了这里,关于企业架构LNMP学习笔记8的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 企业架构LNMP学习笔记21

    URL重写: ngx_http_rewrite_module 模块用于使用 PCRE正则表达式更改请求URI ,返回重定向,以及有条件地选择配置。 return 该指令用于结束结束规则的执行并返回状态码给客户端。 403 Forbidden.服务器已经理解请求,但是拒绝执行它 404 Not Found.请求失败, 请求所希望得到的资源未在服务

    2024年02月09日
    浏览(37)
  • 企业架构LNMP学习笔记52

    Redis安全限制: IP限制登录: 打开配置IP限制: 注意,如果有防火墙,先关闭防火墙,或者开启端口限制。 重启服务,检测是否启动成功。 远程连接测试: 密码验证: 修改配置文件: 修改配置文件中requirepass的配置的地方。 然后本地登录的时候,使用auth 和密码的方法来进

    2024年02月07日
    浏览(35)
  • 企业架构LNMP学习笔记25

    高可用服务搭建: HA高可用:是一个解决方案。 高可用HA(High Availability) 是 分布式系统架构中必须考虑的因素 之一。 它通常是指通过设计,减少系统服务不可用的时间 ,假设系统一直能够提供服务,我们说系统的可用性是100%,如果系统每运行一个100个时间单位,会有一

    2024年02月09日
    浏览(37)
  • 企业架构LNMP学习笔记17

    反向代理: 反向代理服务器和真实访问的服务器是在一起的,有关联的。 根据实际业务需求,分发代理页面到不同的解释器。常见于代理后端服务器。 安装apache服务器: 修改配置文件:   由nginx反向代理给后端的apache服务器处理,apache处理完成后再交给nginx返回给客户端。

    2024年02月09日
    浏览(35)
  • 企业架构LNMP学习笔记29

    Nginx负载均衡配置: 架构分析: 1)用户访问请求Nginx负载均衡服务器; 2)Nginx负载均衡服务器再分发请求到Web服务器。 实际配置负载均衡, 只需修改作为负载均衡服务器的Nginx即可,当前架构中的server04。 在客户端解析域名到负载均衡服务器:  在负载均衡的Nginx配置: 我

    2024年02月09日
    浏览(41)
  • 企业架构LNMP学习笔记5

    Nginx: 常见用法: 1) web服务器软件   httpd http协议 同类的web服务器软件:apache Nginx(俄罗斯)IIS(微软)lighttpd(德国) 2)代理服务器 反向代理: 3)邮箱代理服务器 IMAP、POP3、SMTP 4)负载均衡功能:LB、loadbalance Nginx的特点: 1)高可靠:稳定性 master进程 管理调度请求分

    2024年02月10日
    浏览(37)
  • 企业架构LNMP学习笔记9

    nginx配置文件定义php-fpm服务: 编写测试文件: 内容: 在nginx的配置文件中配置: 修改配置文件,告知nginx如果收到.php结尾的请求,交由给php-fpm进行处理。 把root变量提升到上一层。  默认使用上层的root变量。 把script修改$document_root。$document_root就是上层root。 然后先进行下

    2024年02月10日
    浏览(39)
  • 企业架构LNMP学习笔记28

    企业架构LNMP高可用负载均衡服务器之Nginx: 1)能够描述负载均衡的作用;loadbalance LB。 2)能够了解负载均衡常见的实现方式; 3)能够使用nginx实现负载均衡; 4)能够描述nginx的常见的负载均衡调度算法; 业务背景描述: 时间:2011.6 ~ 2013.9 发布产品类型:互联网动态站点

    2024年02月09日
    浏览(32)
  • 企业架构LNMP学习笔记31

    负载均衡服务器的高可用备用服务器配置: 负载均衡服务器的配置比单台服务器的配置要高很多。硬件上要上一个台阶。 所有的请求流量都要经过负载均衡服务器,负载均衡服务器压力很大,防止她宕机,导致后端web服务器都不可用,需要对负载均衡服务器做高可用。 给负

    2024年02月09日
    浏览(36)
  • 企业架构LNMP学习笔记1

    项目开发流程: 公司老板或者产品经理,根据市场调查,决定开发一整套互联网产品。 互动社交+电商+用户论坛(BBS) 产品决策 (老板+产品+UI设计) 业务实施、代码开发 程序开发人员 前端开发(客户端页面或者app开发)html页面、java。 后端开发( java(重)、php(创业公

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包