用过宝塔面板(https://www.bt.cn)的谁用谁知道;  以下来自官网的介绍:

“宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能”。

一个多平台开发集成工具, 宝塔安装Apache+php 默认Server API 是FPM/FastCGI模式,且不支持自动切换,要修改为Apache 2.0 Handler模式只能手动修改。https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=33550&highlight=handler

为什么要改为Apache 2.0 Handler模式

目前项目中server用的是Apache,服务器配置的是Server API= Apache 2.0 Handler,本地使用宝塔的集成环境,自然Server API=FPM/FastCGI模式,某天git pull代码后本地无法启动,查看error log 提示:

Invalid command 'php_value', perhaps mis-spelled or defined by a module not included

发现在根目录下的.htaccess 文件中多了一行

php_value max_input_vars 

这个是php提交post设置最大值提交参数,那么问题来了,为什么服务器支持而我本地提示不支持呢,找到了这篇文章;

https://stackoverflow.com/questions/31270385/php-value-in-htaccess-show-internal-server-error

You need to determine if PHP is setup in CGI mode. If it is you cannot add those lines to your .htaccess file. You will need to make your changes via php.ini

so you cannot use the following directives in .htaccess files: php_flag, php_admin_flag, php_value, php_admin_value.

直接注释掉,但每次git push都要忽略该文件。麻烦。。。。。

设置 Server API为Apache 2.0 Handler模式

在stackoverflow 中看到了类似的问题

How to change Server API from CGI/FastCGI to apache2handler

copy answer comment:

To change Server Api FPM to apache2handler, As far you know yo need to compile PHP. Apache compile does not necessary. In fact if you are using Apache Passanger mod or else, compiling Apache might bring problems. So that is why you do not want to compile Apache to change Server Api for PHP.

所以,是不是宝塔中配置的Apache不需要用重新编译,只要我重新编译下php即可。OK, Let's  go!

下载 & 编译 php源码

宝塔提供了N多个PHP版本,为了区分他们提供的版本,我下载了宝塔没有提供的一个php版本做为测试用,php5.6.23

wget https://www.php.net/distributions/php-5.6.23.tar.gz

从目前配置 Configure Command复制信息

修改信息为如下:

'./configure' '--prefix=/www/server/php/56' '--with-config-file-path=/www/server/php/56/etc' '--with-apxs2=/www/server/apache/bin/apxs' '--disable-cgi'  '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl=/usr/local/curl' '--enable-mbregex' '--enable-mbstring' '--with-mcrypt' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl=/usr/local/openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo'  '--enable-intl'

其中 --prefix指php要安装的位置,--with-config-file-path指配置文件的路径,--with-apxs2指Apache sapi 的目录文件。取消了'--enable-opcache'因为opcache一直编译报错。

sudo make && make install 

安装好之后复制php.ini-production文件到/www/server/php/56/etc/php.ini

此时会发现在/www/server/apache/modules中生成了libphp5.so模块。

修改Apache配置

修改Apache配置文件: /www/server/apache/conf/httpd.conf

查找  libphp5.so,理论上可以找的如下一行

LoadModule php5_module        modules/libphp5.so

将查找到那行移动到LoadModule 配置块的最上面,OK! Apache配置httpd.conf 就这么一行代码挪动,仅此而已!

修改vhost配置

宝塔默认vhost位于/www/server/panel/vhost/apache/***.conf文件,也可以登陆宝塔后台-站点修改-配置文件,将#php FilesMatch配置块去掉。

ok,保存并重启服务。

*注: 只要修改希望vhost提供Server API= Apache 2.0 Handler的vhost,不修改其他vhost依然可以提供FastCGI模式。so,Apache可以提供不同php版本的不同Server API。

phpinfo查看:

Ubuntu宝塔面板设置网站 Apache Server API为Apache 2.0 Handler模式的更多相关文章

  1. 宝塔面板设置腾迅COS自动备份网站

    之前写了如何配置腾迅云COS并挂载到服务器中,今天看到宝塔面板中有腾迅云COS的插件,不过研究了下,只是将COS绑定在宝塔面板中,不能自动备份,需要用到宝塔的计划任务功能 1.下载腾迅云COS插件 2 ...

  2. 【服务器】CentOs7系统使用宝塔面板搭建网站,有FTP配置(保姆式教程)

    内容繁多,请耐心跟着流程走,在过程中遇到问题请在下面留言(我只是小白,请专业人士喷轻点). 这次用thinkphp5.1做演示,单纯的做演示,我打算下一篇文章用typecho(博客框架)演示. 前言 ...

  3. IdentityServer4:IdentityServer4+API+Client实践OAuth2.0客户端模式(1)

    一.OAuth2.0 1.OAuth2.0概念 OAuth2.0(Open Authorization)是一个开放授权协议:第三方应用不需要接触到用户的账户信息(如用户名密码),通过用户的授权访问用户 ...

  4. How to install Apache Server on Windows

    Note Those of you interested in the Apache 2.0.X tutorial, it has been abandon and I will no longer ...

  5. APache PDFbox API使用(1)----简单介绍

    因为项目的须要.近期在学习APache  PDFbox API,Apache PDFbox API是Apache Java 开源社区中个一个项目,其受Apache 版权 V2的保护,其提供了以下的功能 ...

  6. 宝塔面板+djiango+mod wsgi +apache 配置多项目站点

    在一台服务器上同时有多个djiango项目,那么就需要配置多站点,利用不同的域名不同的端口  同时存在多个项目. 环境,centos + 宝塔面板+apache+django 1.在centos环境下 ...

  7. 腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站系统

    我们在选择购买腾讯云服务器之后,有部分用户肯定是用来建站用途的.毕竟云服务器的性能和功能比虚拟主机优秀很多.腾讯云服务器拥有香港.北京.广州.上海.美国等多个机房,可以安装Linux和Windows系 ...

  8. Server 主机屋云服务器 宝塔面板 部署nginx反向代理的vue项目

    图文记录云服务器上部署需要nginx反向代理的vue项目: 一.先登录并购买云服务器,根据自己需求购买,此处不详细介绍: 二.登录后如下图,点击进入云服务器界面: 三.在云服务器界面点击管理,进入管理 ...

  9. Ubuntu 16.04 LAMP server tutorial with Apache 2.4, PHP 7 and MariaDB (instead of MySQL)

    https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/ This tut ...

随机推荐

  1. 【Netty】初识Netty

    一.为什么会出现Netty 之前我们使用通用的应用程序或库来相互通信.例如,我们经常使用HTTP客户机库从web服务器检索信息,并通过web服务调用远程过程调用.然而,通用协议或其实现有时伸缩性不是很 ...

  2. centos7.5 安装java11

    jdk的下载地址如下: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html 第一 ...

  3. Win10如何设置插入鼠标后自动禁用触摸板

    首先按“Windows+R”键,调出运行窗口.  然后输入“control”然后点击“确定”!  打开Win10控制面板  在“控制面板”中,选择“硬件和声音”!  选择“AUSU Amart Ges ...

  4. VMware虚拟化kvm安装部署总结

    虚拟化 1.环境 Centos7.3 关闭selinux,关闭防火墙 2.虚拟化环境配置 2.1 kvm部署安装 1. VMware 配置桥接模式 2.bios开启虚拟机,以本地台式机为例, 重启动电 ...

  5. Codeforces H. Prime Gift(折半枚举二分)

    题目描述: Prime Gift time limit per test 3.5 seconds memory limit per test 256 megabytes input standard ...

  6. BST二叉树的二分查找

    900. 二叉搜索树中最接近的值 中文 English 给一棵非空二叉搜索树以及一个target值,找到在BST中最接近给定值的节点值 样例 样例1 输入: root = {5,4,9,2,#,8,1 ...

  7. springboot ResponseEntity<byte[]> 下载文件 byte 都变成base64

    因为spring boot消息转换器 ,全部将数据转换为json格式,包括文件的byte数据 关于spring boot 的消息转换器见:https://www.jianshu.com/p/ffe56 ...

  8. GhostScript命令参数详解(转)

    http://blog.csdn.net/catoop/article/details/42737441 本文列出几个常用参数,然后下面附上官方的参数详解: 一.常用参数解释 这是一个测试的命令:gs ...

  9. javascript学习3、数据类型、数据类型转换、运算符

    数据类型包括:基本数据类型和引用数据类型 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值 ...

  10. destoon6.0 手机版添加下载模块

    common.inc.php  里面加入 下载板块的down 名称 在include 文件里 加入 down.inc.php 文件 在 mobile模版里 加入 down.htm 模版文件 在 电脑版 ...