zoukankan      html  css  js  c++  java
  • PHP CentOS下安装PHP及部署ThinkPHP

    本文操作环境:CentOS 7 64位

    下载PHP源码

    百度搜索PHP,进入官网下载页面。

     如我下载的是 php-7.2.33.tar.gz ,将之上传到CentOS的 /home/local/ 目录下。

    yum安装依赖包

    yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libzip gcc-c++

    解压PHP并安装

    cd /home/local
    tar -zxvf php-7.2.33.tar.gz

    进入PHP的解压目录中,

    cd php-7.2.33

    关联安装配置,

    ./configure 
    --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --enable-fpm 
    --with-fpm-user=wong 
    --with-fpm-group=wong 
    --disable-rpath 
    --enable-soap 
    --with-libxml-dir 
    --with-xmlrpc 
    --with-openssl 
    --with-mhash 
    --with-pcre-regex 
    --with-zlib 
    --enable-bcmath 
    --with-bz2 
    --enable-calendar 
    --with-curl 
    --enable-exif 
    --with-pcre-dir 
    --enable-ftp 
    --with-gd 
    --with-openssl-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib-dir 
    --with-freetype-dir 
    --enable-gd-jis-conv 
    --with-gettext 
    --with-gmp 
    --with-mhash 
    --enable-mbstring 
    --with-onig 
    --enable-mysqlnd 
    --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd 
    --enable-mysqlnd-compression-support 
    --with-zlib-dir 
    --with-readline 
    --enable-shmop 
    --enable-sockets 
    --enable-sysvmsg 
    --enable-sysvsem 
    --enable-sysvshm 
    --enable-wddx 
    --with-libxml-dir 
    --with-xsl 
    --enable-zip 
    --with-pear

    其中,"--prefix=" 和 "--with-config-file-path="指PHP安装路径及其配置文件路径(最好是本文所示路径,可省去修改下文中的php-fpm.service)。  "--with-fpm-user=" 和 "--with-fpm-group="指当前Linux系统登录的用户名和组。

    开始执行编译和安装,

    make && make install

    静静等待若干分钟......

    如果要重新编译安装,需要先清除编译(make clean)!

    配置PHP环境变量

    vim /etc/profile
    export PATH=$PATH:/usr/local/php/bin:/usr/local/php/sbin    # 添加 php 及 php-fpm 环境变量,用冒号拼接
    source /etc/profile    # 刷新环境变量

    复制新的配置文件并修改

    当前还是解压目录:/home/local/php-7.2.33,复制一份 php.ini 到安装目录下:
    cp php.ini-development /usr/local/php/etc/php.ini

    进入安装目录的etc下:cd /usr/local/php/etc,分别复制一份 php-fpm.conf 和 php-fpm.d/www.conf cp
    php-fpm.conf.default php-fpm.conf cp php-fpm.d/www.conf.default php-fpm.d/www.conf

    php-fpm 是Linux系统下 PHP 和 fastCGI 的进程管理器,服务端口默认是9000.

    修改配置:

    1)进入 /usr/local/php/etc ,修改 php-fpm.conf 文件,将 "pid = run/php-fpm.pid" 注释去掉。

     2)进入 /usr/local/php/etc/php-fpm.d,修改php的服务文件 www.conf

    记得重启php服务:php-fpm

    将 php-fpm.service 服务文件复制到 systemctl 中

    cp /home/local/php-7.2.33/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
    systemctl start php-fpm    # 启动php-fpm服务
    systemctl enable php-fpm   # php-fpm服务设为开机启动

    让Nginx支持PHP 

    打开Nginx配置文件 nginx.conf,在 server 中添加如下内容。

    location ~ .*.php$ {
        fastcgi_pass  localhost:9000;
        fastcgi_index  index.php;
        include  fastcgi.conf;
    }

    在nginx的html目录中编写一个包含 phpinfo() 方法的index.php文件,测试效果如下。

    让Nginx支持ThinkPHP5框架

    修改nginx配置文件。

    server {
        listen       80;
        server_name  192.168.1.22;
        root  /usr/src/ECommerce;
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        #location / {
            #配置PHP的path_info访问模式(Apache支持path_info,而低版本的Nginx并不支持path_info,需要手动转换。高版本的Nginx已支持)
            #if (!-e $request_filename){
            #     rewrite ^(.*)$  /index.php?s=/$1  last;     #官网推荐的兼容模式
            #}
            #index  index.php index.html index.htm;
        #}
    
        #配置以下内容,访问网页时就不会变成下载了!
        location ~* .+.php(.*)$ {
            set  $script  $uri;
            set  $path_info  "/";
            if ($uri ~ "^(.+.php)(/.+)"){
                set  $script  $1;
                set  $path_info  $2;
            }
    
            fastcgi_pass   192.168.1.22:9000;      #与php-fpm.d/www.conf文件中一致
            fastcgi_index  index.php?IF_REWRITE=1;
            include  fastcgi.conf;
    
            #支持 ?s=/module/controller/action 的url访问模式
            fastcgi_param  SCRIPT_FILENAME  $document_root$script;
            fastcgi_param  SCRIPT_NAME  $script;
    
            #支持 index.php/index/index/index 的pathinfo模式
            fastcgi_param  PATH_INFO  $path_info;
        }
    }

    扫一个部署ThinkPHP5遇到的坑

    报错提示,如图。

    解决办法:数据库配置文件 database.php 中的 hostname 不能是 localhost,改为IP即可。

    部署成功!

    至此。转载请注明出处,记得扫码打赏支持哦,谢谢!

  • 相关阅读:
    如何在Mac OS X上安装 Ruby运行环境
    CocoaPods安装和使用教程
    【Objective-C】07-自定义构造方法和description方法
    window cmd 命令大全 (order)
    vue methods 方法中 方法 调用 另一个方法。
    js ---- 函数防抖
    three.js 运行3D模型
    点击保存网页 (及页面的数据)
    js -- canvas img 封装
    js -- 分页功能
  • 原文地址:https://www.cnblogs.com/wcwnina/p/14672309.html
Copyright © 2011-2022 走看看