• 在Centos7服务器上部署PHP项目


    前言

    第一次动笔写博,虽然前辈们都写了不少,但我还是希望写一遍加深印象,有错误请指正(交流即进步)。

    作为一个毕业两年多的java程序员,下决定记录一些做过的事情,免得几年后回顾过去,整个人浑浑噩噩,都不知自己做了什么,此次部署是因为前几天公司给了我一个PHP项目让我部署在线上,我一听很懵,我一个做java的,PHP我没搞过啊,但是,上头命令下来了,还是要撸起袖子,撸一撸。

    言归正传。

    服务器上已经有nginx和mysql,所以就决定采用 PHP+Nginx+mysql这个组合,在网上翻了很多资料,由于对linux和PHP不不了解,不知道PHP和nginx和mysql是怎么关联的,遇到各种原因(不是php装错了,就是包没装,),花了很多时间,后来部署完后发现,这三个都是单独安装(额~~难道还能一起安装),只需要php安装后配置下,nginx的配置下(和php的关联)就直接可以跑了。至于mysql,只要开启,php项目里面的连接数据库配置好了,可以直接连上去。所以本文主要针对php的安装。

    本文主要参考了此链接博主(mingzhiyu):http://www.cnblogs.com/kyuang/p/6801942.html

    关于nginx和mysql的安装,开始安装前需要在linux的一些开发库安装在此也不复述,参考链接里面都有。

    php版本:5.6.30

    nginx版本:1.7.3

    mysql版本:5.7.3-m13

    PHP安装配置

    nginx本身不能处理PHP,它只是个WEB服务器,当接收到请求后,如果是php请求,则发送给php解释器处理,并把结果返回给客户端。

    nginx一般把请求发送给fastcgi管理进程处理,fastcgi管理进程选择cgi子进程处理结果并返回nginx。

    什么是PHP-FPM?PHP-FPM是一个属于PHP的FASTCGI管理器,只用于PHP,新版本已集成php-fpm了,php-fpm提供更好的php进程管理,可以有效控制内存和进程,可以平滑重载php配置。在configure时,带-enable-fpm参数即可开启php-fpm,其他参数可见这里,至于什么是fastcgi,和php-fpm什么关系,可参考链接https://segmentfault.com/q/1010000000256516

    安装前准备

     

    添加 epel 源

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

    安装依赖

    yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel
    
    yum -y install gcc gcc-c++ glibc
    
    yum -y install libmcrypt-devel mhash-devel libxslt-devel 
    libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel 
    zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel 
    ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel 
    krb5 krb5-devel libidn libidn-devel openssl openssl-devel
    cd /usr/local/src
    wget http://php.net/get/php-5.6.30.tar.gz/from/this/mirror
    tar -zvxf php-5.6.30.tar.gz
    cd php-5.6.30
    
    ./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
    
    
    make && make install

    如果php-5.6.30.tar.gz没下载下来,可直接复制链接:http://php.net/get/php-5.6.30.tar.gz/from/this/mirror到浏览器,手动下载。

    以上就完成了php-fpm的安装,安装过程会花一些时间。

    关于php配置

    1、为php提供配置文件

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

    注意:php.ini-production 还是在刚才/usr/local/src/php-5.6.30 目录下

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

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

    修改php-fpm.conf

    user = www
    group = www

    如果www用户不存在,那么先添加www用户(默认运行用户nobody)

    groupadd www
    useradd -g www www
    修改
    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

    3、启动php-fpm

    执行

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

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

    ps aux | grep php-fpm

    结果如下图:

    3、nginx和php-fpm整合

     编辑nginx配置文件

    vim /usr/local/nginx/conf/nginx.conf

    修改如下:

    重新载入nginx的配置文件:

    /usr/local/nginx/sbin/nginx -s reload

    4、测试php文件

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

    <?php
         phpinfo();
    ?>

    5、浏览器访问

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

    也可直接访问你项目的地址,如:http://我的服务器地址/admin.php

    成功。

    6、安装过程出错原因

    我按流程安装时,出现了几个错误,一个是:make: *** 没有规则可以创建“default”需要的目标“build”,这是因为是pcre没安装的问题,安装一下就OK。另一个是:mcrypt.h not found. Please reinstall libmcrypt

    是因为php-mcrypt  libmcrypt  libmcrypt-devel这些包没安装,出现的错误一般都是缺少库或者包,安装即可。

     

     

  • 相关阅读:
    Hadoop与分布式开发
    Hadoop体系结构
    MapReduce基本流程与设计思想初步
    hadoop集群启动时DataNode节点启动失败
    初识Hadoop
    国家标准免费下载网站大全
    Effective C++ 之 Item 3:尽可能使用 const
    Effective C++ 之 Item 2:尽量以 const, enum, inline 替换 #define
    Effective C++ 之 Item 1: 视C++为一个语言联邦
    Effective C++ 之 0 导读(Introduction)
  • 原文地址:https://www.cnblogs.com/flower-tree/p/7562101.html
Copyright © 2020-2023  润新知