在CentOS上编译安装PHP是一个相对复杂但非常灵活的过程,通过编译安装,您可以完全控制PHP的安装路径、功能模块以及性能优化选项,以下是详细步骤和注意事项:
环境准备
1、更新系统:确保您的系统是最新的,以避免潜在的依赖问题。
```bash
sudo yum update y
```
2、安装基础依赖:编译PHP需要一些基础的开发工具和库。
```bash
sudo yum groupinstall 'Development Tools' y
sudo yum install libxml2 libxml2devel openssl openssldevel bzip2 bzip2devel \
libcurl libcurldevel libjpeg libjpegdevel libpng libpngdevel freetype \
freetypedevel gmp gmpdevel libmcrypt libmcryptdevel ReadLine readlinedevel \
libxslt libxsltdevel zlib zlibdevel glibc glibcdevel glib2 glib2devel \
ncurses ncursesdevel curl gdbmdevel db4devel libXpmdevel libX11devel gddevel \
gmpdevel expatdevel xmlrpcc xmlrpccdevel libicudevel libmcryptdevel \
libmemcacheddevel y
```
3、安装其他必要依赖:根据您选择的PHP版本,可能需要额外的依赖,为了支持MySQL和其他数据库扩展,您可能需要安装以下软件包:
```bash
sudo yum install mysqldevel y
sudo yum install phppear phpdevel phppdo y
```
下载并解压PHP源码
1、进入存放软件包的目录:这是/usr/local/src
或您指定的其他目录。
```bash
cd /usr/local/src
```
2、下载PHP源码:从PHP官方网站下载最新版本的源码压缩包。
```bash
wget https://www.php.net/distributions/php8.1.9.tar.gz
```
3、解压源码包:使用tar
命令解压下载的源码包。
```bash
tar zxvf php8.1.9.tar.gz
```
4、进入解压后的目录:切换到解压后的PHP源码目录。
```bash
cd php8.1.9
```
配置和编译PHP
1、配置编译选项:运行./configure
脚本来配置PHP编译选项,这里是一个示例配置,您可以根据需要进行修改:
```bash
./configure prefix=/usr/local/php8 \
withconfigfilepath=/usr/local/php8/etc \
enablefpm \
withfpmuser=nginx \
withfpmgroup=nginx \
withmysqli \
withpdomysql \
withopenssl \
withzlib \
enablembstring \
withcurl \
enableftp \
withgd \
withjpegdir \
withfreetypedir \
enablesockets \
enablezip \
withpear
```
2、编译和安装:使用make
命令进行编译,然后使用make install
命令进行安装。
```bash
make
sudo make install
```
配置PHPFPM
1、创建配置文件软链接:将默认的PHPFPM配置文件复制到/usr/local/php8/etc
目录下。
```bash
sudo cp sapi/fpm/phpfpm.conf.default /usr/local/php8/etc/phpfpm.conf
sudo cp sapi/fpm/phpfpm.d/www.conf.default /usr/local/php8/etc/phpfpm.d/www.conf
```
2、编辑配置文件:根据您的需求编辑phpfpm.conf
和www.conf
文件,设置合适的监听端口、用户组等参数。
3、启动PHPFPM服务:使用以下命令启动PHPFPM服务,并设置为开机自启。
```bash
sudo /usr/local/php8/sbin/phpfpm daemonize
sudo chkconfig add phpfpm
sudo chkconfig phpfpm on
```
配置Nginx以支持PHP
1、编辑Nginx配置文件:打开/etc/nginx/conf.d/default.conf
文件,添加或修改以下内容以支持PHP:
```nginx
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
```
2、检查配置并重启Nginx:运行以下命令检查Nginx配置是否正确,并重启Nginx服务。
```bash
sudo nginx t
sudo systemctl restart nginx
```
验证安装结果
1、创建测试PHP文件:在Nginx的根目录(通常是/usr/share/nginx/html
)下创建一个名为info.php
的文件,内容如下:
```php
<?php phpinfo(); ?>
```
2、访问测试文件:在浏览器中访问http://your_server_ip/info.php
,如果看到PHP信息页面,说明PHP已成功安装并配置。
FAQs
1、问题:编译PHP时遇到“off_t undefined”错误怎么办?
答案:这个错误通常是由于缺少某些开发库导致的,您可以尝试安装缺失的库,如libxsltdevel
、libjpegdevel
、libpngdevel
等,或者检查您的系统是否缺少64位支持,如果问题仍然存在,请检查您的编译器和开发工具链是否完整。
2、问题:如何为已安装的PHP添加新的扩展?
答案:为已安装的PHP添加新扩展,您需要首先找到相应的扩展源码或预编译包,然后按照类似的编译步骤进行编译和安装,要添加Redis扩展,您可以先下载Redis扩展的源码包,解压后进入源码目录,运行phpize
命令生成配置脚本,然后配置、编译和安装该扩展,记得在php.ini
文件中启用新安装的扩展。