• Nginx下编译PHP+Mysql


    先说一下PHP在Apache和Nginx下所扮演的角色

    apache一般是把php当做自己的一个模块来启动的.

    而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通信. 称为 fastcgi运行方式,可以说.nginx和php是平级关系

    因此,为apache所编译的php,是不能用于nginx的.

    yum安装mysql

    yum install mysql mysql-devel mysql-server

    安装它们所以来的一些库,可以yum安装,依赖库在  http://www.90book.cn/416.html   下有说明 ,如 gd ,ttf,libxml,png,freetype 等,可根据在编译过程中提示的错误来逐步完善安装所需要的依赖库,以fpm(fastcgi)方式运行

    yum install db         //yum 安装gd
    yum install ttf        //yum 安装ttr
    yum install freetype   //yum安装字体库
    yum install libxml2
    yum install libxml2-devel -y

    其次还有png  ......

    准备去下载php

    //几乎包括所有的PHP版本

    cd /usr/local/src/   然后以      5.4.22 版本测试  
    wget  http://mirror.cogentco.com/pub/php/php-5.4.22.tar.gz 
    tar zxvf php-5.4.22.tar.gz                
    ./configure --help|grep php-fpm   //执行返回下块代码

    --with-fpm-user=USER  Set the user for php-fpm to run as. (default: nobody)

    --with-fpm-group=GRP  Set the group for php-fpm to run as. For a system user, this

    ./configure --help|grep fpm      //执行返回下块代码

    --enable-fpm              Enable building of the fpm SAPI executable

    --with-fpm-user=USER  Set the user for php-fpm to run as. (default: nobody)

    --with-fpm-group=GRP  Set the group for php-fpm to run as. For a system user, this

                   should usually be set to match the fpm username (default: nobody)

    --with-fpm-systemd      Activate systemd integration

    注意: 我们编译的PHP 要有如下功能:

    连接mysql, gd, ttf, 以fpm(fascgi)方式运行

    ./configure  --prefix=/usr/local/php 
    --with-mysql=mysqlnd 
    --enable-mysqlnd 
    --with-gd 
    --enable-gd-native-ttf 
    --enable-gd-jis-conv 
    --enable-fpm
    make && make install

    解析编译完毕后进入编译安装后的 /usr/local/php 目录

    cp /usr/local/src/php-5.4.22/php.ini-development ./lib/php.ini
    cp etc/php-fpm.conf.default etc/php-fpm.conf
    ./sbin/php-fpm 
    ps aux| grep php   //查看进程返回以下代码
    root    50336  0.3  0.2 139956  2988 ?     Ss 09:11 0:00 php-fpm: master process (/usr/local/fastphp/etc/php-fpm.conf)
    nobody   50337  0.0  0.2 139956  2624 ?    S  09:11   0:00 php-fpm: pool www
    nobody   50338  0.0  0.2 139956  2624 ?     S  09:11   0:00 php-fpm: pool www
    root     50343  0.0  0.0 103248   836 pts/4 S+ 09:12   0:00 grep php

    配置nginx

    vim /usr/local/nginx/conf/nginx.conf
    location ~ .php$ {
             root html;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
              #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include        fastcgi_params;
    }

    1:碰到php文件,

    2: 把根目录定位到 html,

    3: 把请求上下文转交给9000端口PHP进程,

    4: 并告诉PHP进程,当前的脚本是 $document_root$fastcgi_scriptname

    ./sbin/nginx -s reload

    然后启动mysql服务,或者在nginx的html目录下来一个index.php文件查看phpinfo等,最后访问ip 

  • 相关阅读:
    测试用例设计方法
    MySQL备份还原、存储过程、事务及周边
    MySQL基础中级进阶
    MySQL基础初级入门
    Linux命令之三剑客awk、sed、grep
    Docker下部署influxdb、Grafana及运行jmeter结果展示
    Node双版本共存及切换使用
    Mac部署Docker
    Docker完美部署MySQL
    VulnHub::DC-2
  • 原文地址:https://www.cnblogs.com/wt645631686/p/6868472.html
Copyright © 2020-2023  润新知