美文网首页
记一次为不同目录下的站点配置不同版本php的经历(未完

记一次为不同目录下的站点配置不同版本php的经历(未完

作者: EVANIMARIA | 来源:发表于2018-12-18 04:47 被阅读0次

    概念

    弄清楚cgi、fastcgi、mod_fcgid、mod_php、php-fpm的异同


    过程

    1. 安装不同版本的php,可以编译安装也可以apt源安装,但是要记得安装cgi模块
    2. 查看cgi模块所在地址,find ./ -name php-cgi
    3. 编译安装mod_fcgid模块,在这里下载或者
      wget https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
      
    4. 解压缩。文件夹目录里并没有makefile,而是需要自己加入apxs参数生成。在这之前先找到apxs的位置find ./ -name apxs,找到后在刚刚解压出来的目录里执行
      APXS=/usr/bin/apxs ./configure.apxs
      
      其中usr/bin/apxs替换为刚刚我们找到的apxs地址
    5. 成功生成makefile后,在当前目录下面执行makemake install,不出意外的话你就能在服务器里找到mod_fcgid.so了
    6. 为了灵活配置,我们采取.htaccess文件配置的方法。在想要配置不同版本的站点目录里面,新建一个.htaccess文件
      vim /var/www/html/mysite/.htacess
      
      注意不要漏了.,路径是自己的站点目录
    7. 在.htaccess文件里添加如下内容
      <IfModule mod_fcgid.c>
          <FilesMatch "\.ph(p3?|tml)$">
                  SetHandler fcgid-script
                  Options +ExecCGI
                  FcgidWrapper /usr/local/bin/php-wrapper
          #       SetHandler application/x-httpd-php
          </FilesMatch>
      </IfModule>
      <IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine On
      
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
      </IfModule>
      
      大部分都不用改,FcgidWrapper后面的路径可以自己定
    8. 找到自己想设置的版本的php.ini的位置,同理用find即可
    9. 在上面定义的php-wrapper的路径下面新建一个php-wrapper文件
      vim php-wrapper
      
      并添加以下内容
      #!/bin/sh
      # Set desired PHP_FCGI_* environment variables.
      # Example:
      # PHP FastCGI processes exit after 500 requests by default.
      PHP_FCGI_MAX_REQUESTS=10000
      export PHP_FCGI_MAX_REQUESTS
      PHPINIDir="/usr/local/php5/php.ini"
      # Replace with the path to your FastCGI-enabled PHP executable
      exec /usr/local/php5/bin/php-cgi -c "/usr/local/php5/php.ini"
      
      其中,PHPINIDir后面的内容和最后一行双引号里的内容替换为第8步里找到的php.ini的位置,最后一行的exec后面的php-cgi的路径改成我们在第2步里找到的路径
    10. 虽然大部分网上的文章都说不需要重启apache2,但是个人实测是要重启的。重启之后在对应页面写个phpinfo就能知道有没有配置成功啦

    参考文章

    http://www.tech1024.com/original/2986.html
    https://blog.csdn.net/im_kk/article/details/42554855
    https://www.leixuesong.cn/2841

    相关文章

      网友评论

          本文标题:记一次为不同目录下的站点配置不同版本php的经历(未完

          本文链接:https://www.haomeiwen.com/subject/uftkkqtx.html