企业架构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学习笔记25

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

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

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

    2024年02月10日
    浏览(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日
    浏览(39)
  • 企业架构LNMP学习笔记7

    PHP介绍: HTML:超文本标记语言 http: 超文本传输协议  端口80 浏览器将html代码解析成web页面。 PHP:超文本预处理器。 后端语言开发, 页面上需要动态改变修改的,需要连接数据库查询数据,转为html。 主要适用于web开发领域。 PHP是将程序嵌入到HTML文档中去执行,执行效率

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

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

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

    企业架构分布式集群最终解决方案 集群:多台服务器在一起做同样的事情。 分布式:多台服务器在一起做不同的事情。 最终架构:实现负载均衡LB,高可用HA,数据库主从复制M-S,读写分离R-W,缓存中间件,memcached、redis;nosql[mongoDB]。 微服务概念。 如果所有的服务都在一起

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

    1、 运维人员需要考虑安全性、稳定性。  安装: 解压进入到目录: 安装依赖软件: 编译参数配置: 编译并安装到目录: 查看PHP的安装目录:  跟mysql相关的模块: man文档: 配置: 复制配置文件: 启动php-fpm服务: 添加启动服务:   说明:Default-start和Default-stop:这个跟

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

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

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

    1、upstream 中server的:语法: upstream中的分发之后的几个: 1)backup 备 其他的没有backup标识的都不可用了,才分发到backup; 2)down 此条配置,不会被分发到。 systemctl restart nginx 可以看到,server03能一直能正常使用,所以就不会再转发给server01。所以web页面一直显

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

    上线商城项目: 1)上传项目文件到数据库:   入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非web访问目录下面。 nginx 默认访问index.html。没有index.html,就会列出目录结构,没有权限列出,所以就显示403。   需要配置数据库

    2024年02月09日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包