Linux云服务器编译安装PHP环境

本文介绍了如何在全新的腾讯云CentOS 7.6服务器上编译安装PHP环境,包括下载PHP安装包,编译安装过程,解决启动测试中遇到的问题,以及设置php-fpm开机自启动。

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

Linux云服务器编译安装PHP环境

这里使用的是腾讯云的CentOS系统,版本为 CentOS 7.6 64位,服务器是全新的,需要重新配置lnmp环境,首先是PHP环境(如果感觉麻烦的话可以考虑装一下宝塔面板等工具,可以快速搭建环境)

一、PHP安装包下载

在php官网 http://www.php.net/downloads.php 下载 php-7.2.30.tar.gz至 /usr/local/src 目录下
解压并移动至 /usr/local/下,重命名为php7

tar -zxf php-7.2.30.tar.gz
mv php-7.3.0 /usr/local/php7
cd /usr/local/php7

二、PHP编译安装

1.安装依赖
首先要安装一些必要的依赖,如果之前没有安装,在PHP编译过程中可能会报错

yum install gd zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel

2.配置参数

./configure --prefix=/usr/local/php7 --with-gd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-mbstring --enable-fpm

运行成功结果:

Thank you for using PHP.

config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/phpdbg/phpdbg.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: main/php_config.h is unchanged
config.status: executing default commands

3.编译PHP

[root@VM_0_3_centos php7]# make && make install
[root@VM_0_3_centos php7]# cp php.ini-development /usr/local/php7/lib/php.ini

三、PHP启动测试

启动php进程

[root@VM_0_3_centos php7]# ./sbin/php-fpm
[09-May-2020 10:38:22] WARNING: Nothing matches the include pattern '/usr/local/php7/etc/php-fpm.d/*.conf' from /usr/local/php7/etc/php-fpm.conf at line 125.
[09-May-2020 10:38:22] ERROR: No pool defined. at least one pool section must be specified in config file
[09-May-2020 10:38:22] ERROR: failed to post process the configuration
[09-May-2020 10:38:22] ERROR: FPM initialization failed

这个错误是在 /usr/local/php7/etc/ 目录下找不到 php-fpm.conf,在当前目录下只有php-fpm.conf.default文件,将其复制一份更名为 php-fpm.conf

[root@VM_0_3_centos php7]# cp etc/php-fpm.conf.default etc/php-fpm.conf

再次启动

[root@VM_0_3_centos php7]# ./sbin/php-fpm 
[09-May-2020 10:39:22] WARNING: Nothing matches the include pattern '/usr/local/php7/etc/php-fpm.d/*.conf' from /usr/local/php7/etc/php-fpm.conf at line 143.
[09-May-2020 10:39:22] ERROR: No pool defined. at least one pool section must be specified in config file
[09-May-2020 10:39:22] ERROR: failed to post process the configuration
[09-May-2020 10:39:22] ERROR: FPM initialization failed

这个错误只需要将/usr/local/php7/etc/php-fpm.d 目录下的www.conf.default文件复制一份重命名为www.conf

[root@VM_0_3_centos php7]# cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf

再次启动

[root@VM_0_3_centos php7]# ./sbin/php-fpm 
[root@VM_0_3_centos php7]# ps aux | grep php
root      2007  0.0  0.0 112712   960 pts/0    R+   16:59   0:00 grep --color=auto php
root     29460  0.0  0.2 180924  5528 ?        Ss   10:46   0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nobody   29461  0.0  0.2 183008  5452 ?        S    10:46   0:00 php-fpm: pool www
nobody   29462  0.0  0.2 183008  5452 ?        S    10:46   0:00 php-fpm: pool www

进程启动成功,当然这属于手动启动,下面是将php-fpm添加到开机自启动服务。

四、php-fpm开机自启动

1.配置 php-fpm.conf
vim /usr/local/php7/etc/php-fpm.conf
开启pid分号注释,并且修改指向路径到 /usr/local/php7/var/run/php-fpm.pid
2.将php-fpm脚本拷贝至/etc/init.d目录
cp /usr/local/src/php-7.2.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
编辑脚本文件,将路径替换成我们自己的路径

#! /bin/sh

### BEGIN INIT INFO
# Provides:          php-fpm
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO

prefix=/usr/local/php7
exec_prefix=${prefix}

php_fpm_BIN=${prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"

3.设置权限并启动php-fpm
chmod 755 /etc/init.d/php-fpm

/etc/init.d/php-fpm start
ps:如果启动报错说接口已被占用,因为之前调试中已经将服务手动启动了,所以才会显示端口被占用,先将之前启动的进程关掉

chkconfig –add php-fpm
最后,给出php-fpm以服务的方式启动、停止和重启:

service php-fpm start

service php-fpm stop

service php-fpm reload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值