zoukankan      html  css  js  c++  java
  • linux下nginx安装php

    把php安装包上传到linux的/usr/local/src

    1.解压

    cd /usr/local/src
    
    tar zxvf php-5.6.9.tar.gz
    
    cd php-5.6.9
    

      

    新增php7.2.0安装手记

    下载地址

    链接:https://pan.baidu.com/s/1JpDpVEylcup3ZYB32aEoGQ
    提取码:1edc 

    先安装如下依赖

    $ yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

    解压php-7.2.0.tar.gz  然后进入目录,编译。命令如下:

    $ tar -zxvf php-7.2.0.tar.gz
    
    $ cd php-7.2.0
    

      

    $ ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --with-openssl --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl

    【配置PHP】

    在之前编译的源码包中,找到 php.ini-production,复制到/usr/local/php下,并改名为php.ini:

    $ cp php.ini-production /usr/local/php/php.ini
    

      

    [可选项] 设置让PHP错误信息打印在页面上 

    $ vim /usr/local/php/php.ini 
    

      

    复制启动脚本:

    $ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    
    $ chmod +x /etc/init.d/php-fpm
    

      

    修改php-fpm配置文件:

    $ cd /usr/local/php/etc
    
    $ cp php-fpm.conf.default php-fpm.conf
    
    $ vim php-fpm.conf
    

      

    ① 去掉 pid = run/php-fpm.pid 前面的分号
    $ cd php-fpm.d
    
    $ cp www.conf.default www.conf
    
    $ vim www.conf
    

      

    ② 修改user和group的用户为当前用户(也可以不改,默认会添加nobody这个用户和用户组)

    【启动PHP】

    $ /etc/init.d/php-fpm start        #php-fpm启动命令
    
    $ /etc/init.d/php-fpm stop         #php-fpm停止命令
    
    $ /etc/init.d/php-fpm restart        #php-fpm重启命令
    
    $ ps -ef | grep php 或者 ps -A | grep -i php  #查看是否已经成功启动PHP
    

      

    参考:https://www.cnblogs.com/rxbook/p/9106513.html

    2.编译安装

    ./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt 
    
    --enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath 
    
    --enable-inline-optimization --with-bz2  --with-zlib --enable-sockets 
    
    --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex 
    
    --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli 
    
    --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar
    

      

    错误

    checking for cc... no
    checking for gcc... no
    
    源码编译,提示缺少gcc cc cl.exe
    
    解决方案:
          yum install -y gcc glibc
    

      

    错误1

    configure: error: xml2-config not found. Please check your libxml2 installation. 
    配置:错误:xml2-config不见了。请检查你的libxml2安装。
    解决:
    yum install libxml2 libxml2-devel -y
    

      

    错误2

    configure: error: Cannot find OpenSSL’s <evp.h>
    配置:错误:找不到OpenSSL的< evp.h >
    解决:
    yum install openssl openssl-devel -y
    

      

    错误

    error: cURL version 7.10.5 or later is required to compile php with cURL support
    原因:php7.0.27以上 curl需要单独安装
    解决:yum -y install curl-devel
    

      

    错误3

    Configure: error: Please reinstall the BZip2 distribution
    配置:错误:请重新安装BZip2分布
    解决:
    yum install bzip2 bzip2-devel -y
    

      

    错误4

    configure: error: jpeglib.h not found.
    配置:错误:jpeglib。没有找到。
    解决:
    yum install libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel -y
    

      

    错误5

    Configure: error: mcrypt.h not found. Please reinstall libmcrypt.
    配置:错误:mcrypt。没有找到。请重新安装libmcrypt。
    解决:
    安装epel-release源
    yum install epel-release -y
    yum install libmcrypt-devel –y
    

      

    最后最重要

    make
    make install
    

      

    3.拷贝PHP主配置文件

     cp php.ini-production /usr/local/etc/php.ini
     

    2、为php-fpm提供配置文件

    cd /usr/local/php
    
    cp etc/php-fpm.conf.default etc/php-fpm.conf
    
    vim etc/php-fpm.conf
    

      

    修改 /usr/local/php/etc/php-fpm.d/www.conf 文件

    user = www-data
    group = www-data
    

      

    如果www-data用户不存在,那么先添加www-data用户,命令行:

    groupadd www-data
    
    useradd -g www-data www-data

    配置文件修改

    pm.max_children = 150
    
    pm.start_servers = 8
    
    pm.min_spare_servers = 5
    
    pm.max_spare_servers = 10
    
    pid = /usr/local/php/var/run/php-fpm.pid 
    

      

    当nginx、php-fpm、Permission denied:https://blog.csdn.net/dfq737211338/article/details/89176104

    配置php可执行

    方法一:

    打开用户根目录下的:

    vi ~/.bash_profile
    

      

    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    PATH=$PATH:$HOME/bin
    
    export PATH
    
    alias php=/usr/local/php/bin/php

    修改后保存

    然后执行

    source ~/.bash_profile 

    测试一下 php -v

    方法二:

    设置环境变量 :修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码

    PATH=$PATH:/usr/local/php/bin
    export PATH

    然后执行生效命令

    source /etc/profile

    查看PHP版本信息

    php -v

    3、启动php-fpm

    执行

    /usr/local/php/sbin/php-fpm

    停止

    pkill php-fpm

    使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):

    ps aux | grep php-fpm

    3、nginx和php-fpm整合

    编辑/usr/local/nginx/nginx.conf

    vim /usr/local/nginx/nginx.conf

    修改如下:

    红框中“#”号去掉

     

    红框中“#”号去掉

     

    添加红框中内容

     

    改成如下

    location ~ .php$ {
    
                root         html;
    
                fastcgi_pass 127.0.0.1:9000;
    
                fastcgi_index index.php;
    
                include        fastcgi.conf;
    
    }

     

    重新载入nginx的配置文件:

     /usr/loca/nginx/sbin/nginx -s reload
    

      

    4、测试php文件

     在/usr/local/nginx/html下创建index.php文件,输入如下内容

    <?php
    
        phpinfo();
    
    ?>
    

      

    5、浏览器访问

    访问http://你的服务器ip/index.php,皆可以见到php信息了。

     

    参考:http://www.cnblogs.com/flywind/p/6019631.html (php-fpm)

    附: 

    如果Loaded Configuration File为none,把php.ini复制一份到Configuration File (php.ini) Path的目录下,重启fpm

    cp /usr/local/etc/php.ini /usr/local/php/lib

    pkill -9 php-fpm

    /usr/local/php/sbin/php-fpm

     

    设置时区,php.ini

    ;date.timezone =

    改为

    date.timezone = Asia/Shanghai

  • 相关阅读:
    当你发现前端传过来的空格是 xa0
    反转义——使从文件读取的失效的转义字符串生效
    openpyxl 读取前端传输的文件,并处理
    django实现下载excel
    IO模块的使用
    pandas 执行sql语句
    近期工作生活小总结
    入职一个月++近期学习++生活总结
    github访问不了
    实现Spring框架(二) SpringMVC框架
  • 原文地址:https://www.cnblogs.com/cxscode/p/7350906.html
Copyright © 2011-2022 走看看