编译安装PHP5.6并解决PHP出现下载页面问题

本文提供了一步一步的指南,教你如何从源码编译安装PHP5.6,包括解决依赖、配置编译参数、复制配置文件、设置FPM配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码编译安装PHP5.6

1、  现在源码包:地址:http://php.net

2、  解决依赖

mhash mhash-devel libmcrypt-devel libmcrypt  libxml2-devel bzip2-devel

3、  编译安装

tar –zxvfphp.5.6***.tar.gz

cd php.5.6

./configuer  --prefix=/usr/local/php–with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config  --with-openssl   --enable-mbstring  --with-freetype-dir   --with-jpeg-dir   --with-png-dir   --with-zlib  --with-libxml-dir/usr     --enable-sockets     --enable-fpm  --with-mcrypt  --with-conifg-file-path=/etc    --with-config-file-scan-dir=/etc/php.d   --with-bz2

         note:在编译安装PHP之前,一定要保证MySQL已经编译完成,因为在PHP的编译参数中需要指明MySQL的路径以及PHP和MySQL交互的接口  --with-mysqli=/usr/local/mysql/bin/mysql_config这个选项说明了MySQL和PHP交互的接口。--enable-fpm说明启动fcgi,如果想要把PHP编译为httpd模块的话,只需要加上—with-apxs2=/usr/local/apache/bin/apxs即可。

4、  在解压后的文件中进行配置文件的复制,在上面的编译过程中,我利用的是FastCGI的模式进行编译的,所以配置的配置文件为php**/sapi/fpm/init.d.php-fpm,将这个文件复制到/etc的目录下面。

cp php/sapi/fpm/init.d.php-fpm /etc

chkconfig –addphp-fpm

chkconfig  2345 php-fpm on

5、  更改fpm的配置文件

6、  [global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

[www]

listen = 192.168.5.1:9000

user = php-fpm

group = php-fpm

pm = dynamic        //生成进程的方式为动态的

pm.max_children = 50      //最后创建多少个进程

pm.start_servers = 20      //一开始创建多少个进程

pm.min_spare_servers = 5   //最少空闲进程的数量如果不够的话则生成进程

pm.max_spare_servers = 35   //最大的空闲的进程的数量,如果空闲进程多的话则杀死

pm.max_requests = 500     //每个进程最多相应多少个请求

rlimit_files = 1024          //设置文件打开描述符的rlimit限制

需要注意的是,我们在lamp的环境中,如果将PHP编译为模块的话,那么直接启动Apache然后修改配置文件如下

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

 

 

<IfModuledir_module>

    DirectoryIndex index.html index.phpindex.htm

</IfModule>

然后重启Apache,相应的PHP页面就可以解析了。然是如果利用了php-fpm的话,没有PHP模块被加载,所以我们要设置PHP的解析模式。

打开Apache的配置文件,在每一个virtualhost中添加

<IfModule mpm_event_module>

    ProxyPassMatch^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/webroot/$1

</IfModule>

然后重启Apache就可以了,否者会出现的是访问的PHP页面出现的是下载页,说明我们的PHP和Apache没有结合好。

至于更多的php-fpm解析PHP的方式参照:

https://cnzhx.net/blog/apache-httpd-mod_proxy_fcgi-php-fpm/

tar zxvf php-5.6.37.tar.gz cd php-5.6.37 #添加组 groupadd www #添加php-fpm用户 useradd -c php-fpm-user -g www -M www # c和c++编译器 yum -y install -y gcc gcc-c++ # PHP扩展依赖 yum install -y libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel openldap-devel ./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm\ --with-fpm-user=www\ --with-fpm-group=www\ --enable-mysqlnd\ --with-mysql=mysqlnd\ --with-mysqli=mysqlnd\ --with-pdo-mysql=mysqlnd\ --enable-opcache\ --enable-pcntl\ --enable-mbstring\ --enable-soap\ --enable-zip\ --enable-calendar\ --enable-bcmath\ --enable-exif\ --enable-ftp\ --enable-intl\ --with-openssl\ --with-zlib\ --with-curl\ --with-gd\ --with-zlib-dir=/usr/lib\ --with-png-dir=/usr/lib\ --with-jpeg-dir=/usr/lib\ --with-gettext\ --with-mhash\ --with-ldap make && make install cp php.ini-production /usr/local/php/etc/php.ini cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # 设置php-fpm开机自动启动 chmod +x /etc/init.d/php-fpm chkconfig php-fpm on cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf service php-fpm start 设置php为全局命令: 修改/etc/profile文件使其永久性生效,对所有系统用户生效, 在文件末尾加上如下两行代码: PATH=$PATH:/usr/local/php/bin //php命令路径 如果还要同时加入mysql 则第一句: PATH=$PATH:/usr/local/php/bin:/usr/local/mysql/bin //路径一定要正确 执行 命令source /etc/profile 使用php -V确认 【查看php-fpm端口】 vim /usr/local/php/etc/php-fpm.conf listen = 127.0.0.1:9000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值