第一章节:介绍

在本教程中,我们将学习如何在CentOS 7操作系统上使用编译方式安装PHP环境。编译安装PHP的好处在于我们可以自定义编译选项,使其与我们的需求和环境完全匹配。

优势和适用性

通过编译安装PHP,我们可以获得以下优势:

  1. 自定义编译选项:我们可以根据需求启用或禁用特定功能,定制化PHP的安装。这样可以确保只安装所需的功能模块,减少不必要的资源消耗。
  2. 最新版本控制:编译安装允许我们使用最新的PHP版本,而不必等待Linux发行版的软件仓库更新。
  3. 性能优化:我们可以针对特定硬件和软件环境进行优化编译,以提高PHP的性能和效率。

尽管编译安装提供了更多灵活性和控制力,但也需要更多的操作和管理工作。这适用于需要高度定制的环境,或者对PHP有特殊要求的开发人员和系统管理员。

环境和PHP版本信息

在本教程中,我们将使用CentOS 7操作系统,并安装PHP 8.2.6版本。请确保您已具备以下条件:

  1. 已安装CentOS 7操作系统。
  2. 具有sudo或root权限的用户账户。
  3. 确保系统联网,以便安装依赖项和下载PHP源代码。

接下来,我们将详细讲解每个步骤,并提供所需的命令和说明。在继续之前,请确保您已备份您的数据,并准备好进行操作。

请继续,让我们开始第二章节,准备工作。

第二章节:准备工作

在安装PHP之前,我们需要进行一些准备工作。这包括更新系统和安装编译所需的依赖项。

1. 更新系统

首先,我们应该确保系统是最新的,以便获得最新的软件包和安全补丁。在终端中执行以下命令来更新系统:

sudo yum update

这将检查可用的更新并安装它们。根据系统的状态和可用更新的数量,这可能需要一些时间来完成。

2. 安装编译所需的依赖项

编译PHP需要一些额外的软件包和库来满足编译和运行时的要求。以下是在CentOS 7上安装所需依赖项的命令:

sudo yum install gcc make autoconf glibc-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel libmcrypt-devel libxslt-devel

上述命令将安装常见的编译依赖项,如C编译器(gcc)、构建工具(make)、自动配置工具(autoconf)以及其他一些库和头文件。

运行命令后,系统将提示您输入密码以进行安装。确认安装并等待依赖项安装完成。

完成上述步骤后,您的系统将是最新的,并且已安装了编译PHP所需的依赖项。

在下一章节中,我们将学习如何下载和解压PHP源代码。

第三章节:下载和解压PHP源代码

在本章节中,我们将学习如何下载并解压PHP的源代码。我们将使用PHP 8.2.6版本作为示例。

1. 创建目录并进入

首先,让我们创建一个用于下载和解压源代码的目录,并进入该目录。打开终端并执行以下命令:

mkdir ~/php && cd ~/php

上述命令将在当前用户的主目录下创建一个名为 "php" 的目录,并将终端切换到该目录中。

2. 下载PHP源代码包

接下来,我们需要下载PHP的源代码包。在终端中执行以下命令来下载PHP 8.2.6的源代码:

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

上述命令将使用wget工具下载PHP源代码包,并保存为名为 "php-8.2.6.tar.gz" 的文件。

3. 解压源代码包

下载完成后,我们需要解压源代码包。在终端中执行以下命令来解压PHP源代码:

tar xzf php-8.2.6.tar.gz

上述命令将解压缩源代码包,并在当前目录下创建一个名为 "php-8.2.6" 的目录。该目录包含了PHP的源代码文件和目录结构。

完成以上步骤后,您已成功下载并解压了PHP的源代码。在下一章节中,我们将学习如何配置和编译PHP。敬请期待。

第四章节:配置和编译

在本章节中,我们将学习如何配置和编译PHP。配置过程将确定编译选项,而编译过程将生成可执行的PHP二进制文件。

1. 配置编译选项

进入解压后的PHP源代码目录,执行以下命令来配置编译选项:

cd php-8.2.6
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-mbstring --with-curl --with-openssl --with-zlib --enable-fpm --with-mysqli --enable-opcache --enable-intl --with-xsl

上述命令中的 --prefix 参数指定了安装目录,这里我们选择了 /usr/local/php--with-config-file-path 参数指定了PHP配置文件的路径,这里我们选择了 /usr/local/php/etc

其他的选项根据您的需求进行配置。上述命令中包含了一些常见的选项,如启用多字节字符串支持(--enable-mbstring)、CURL扩展支持(--with-curl)、OpenSSL支持(--with-openssl)、压缩支持(--with-zlib)、FastCGI进程管理器(--enable-fpm)、MySQLi扩展支持(--with-mysqli)、OPcache支持(--enable-opcache)、国际化支持(--enable-intl)和XSL扩展支持(--with-xsl)。

根据您的需求,您可以添加或删除其他选项。确保在配置之前,已满足所需的依赖项。

2. 编译和安装

配置完成后,执行以下命令来编译并安装PHP:

make
sudo make install

上述命令将开始编译PHP源代码并安装生成的可执行文件和相关的库文件到指定的安装目录。

请注意,编译过程可能需要一些时间,具体取决于您的系统性能和源代码的大小。

完成以上步骤后,您已成功配置和编译了PHP。在下一章节中,我们将学习如何配置和启动PHP。

第五章节:配置和启动PHP

在本章节中,我们将学习如何配置和启动PHP。配置过程将涉及复制配置文件,而启动过程将启动PHP-FPM进程。

1. 复制配置文件

首先,我们需要复制PHP的配置文件到相应的位置。执行以下命令复制默认的配置文件:

sudo cp php.ini-development /usr/local/php/etc/php.ini

上述命令将复制名为 php.ini-development 的文件到 /usr/local/php/etc 目录,并将其重命名为 php.ini。您可以根据需要编辑此配置文件来进行自定义配置。

2. 配置PHP-FPM

如果您计划使用PHP-FPM作为PHP的进程管理器,执行以下命令复制默认的PHP-FPM配置文件:

sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

上述命令将复制名为 php-fpm.conf.default 的文件到 /usr/local/php/etc 目录,并将其重命名为 php-fpm.conf。您可以根据需要编辑此配置文件来进行自定义配置,如调整进程池大小、用户和组设置等。

3. 启动PHP-FPM

现在,让我们启动PHP-FPM进程。执行以下命令启动PHP-FPM:

sudo /usr/local/php/sbin/php-fpm

上述命令将启动PHP-FPM进程,并开始监听来自Web服务器的请求。

PHP-FPM启动后,您可以根据您的Web服务器配置将其集成。具体的集成步骤取决于您使用的Web服务器,如Apache或Nginx。在下一章节中,我们将提供与Apache和Nginx的集成示例配置文件和说明。

恭喜!您已成功配置和启动了PHP。在下一章节中,我们将提供关于Web服务器的集成配置。

第六章节:配置Web服务器

在本章节中,我们将提供关于如何配置常见的Web服务器(Apache或Nginx)与已安装的PHP集成的说明。

1. Apache配置

a. 安装Apache

如果您尚未安装Apache,请执行以下命令进行安装:

sudo yum install httpd
b. 配置Apache与PHP的集成

打开Apache的配置文件以进行编辑:

sudo nano /etc/httpd/conf/httpd.conf

找到以下行(可能在文件中的不同位置):

#LoadModule php7_module modules/libphp7.so

取消注释该行,将其修改为:

LoadModule php_module modules/libphp.so

找到以下行:

#AddHandler php7-script .php

取消注释该行,将其修改为:

AddHandler php-script .php

找到以下行:

#DirectoryIndex index.html

将其修改为:

DirectoryIndex index.php index.html

保存并关闭文件。

c. 启动Apache

执行以下命令启动Apache:

sudo systemctl start httpd

现在,您可以在Web浏览器中访问服务器的IP地址或域名,应该能够看到PHP信息页面。该页面会显示PHP的详细信息,表明PHP与Apache的集成成功。

2. Nginx配置

a. 安装Nginx

如果您尚未安装Nginx,请执行以下命令进行安装:

sudo yum install nginx
b. 配置Nginx与PHP的集成

打开Nginx的默认站点配置文件以进行编辑:

sudo nano /etc/nginx/conf.d/default.conf

server 块中,找到以下行:

index  index.html index.htm;

将其修改为:

index  index.php index.html index.htm;

在同一个 server 块中,找到以下行:

#location ~ \.php$ {
#    root           /usr/share/nginx/html;
#    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
#    include        fastcgi_params;
#}

取消注释这些行,并将其修改为:

location ~ \.php$ {
    root           /usr/share/nginx/html;
    fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

保存并关闭文件。

c. 启动Nginx

执行以下命令启动Nginx:

sudo systemctl start nginx

现在,您可以在Web浏览器中访问服务器的IP地址或域名,应该能够看到PHP信息页面。该页面会显示PHP的详细信息,表明PHP与Nginx的集成成功。

恭喜!您已成功配置和启动了Web服务器与PHP的集成。在下一章节中,我们将提供一个完整的shell脚本,以便您方便地安装和配置PHP环境。

第七章节:安装和配置脚本

在本章节中,我们将提供一个完整的shell脚本,用于自动化安装和配置PHP环境。下面提供两个脚本,分别用于Apache和Nginx服务器。

Apache脚本

#!/bin/bash

# 1. 准备工作

# 安装编译依赖
sudo yum install -y epel-release
sudo yum install -y gcc gcc-c++ make autoconf automake libtool re2c flex bison libxml2-devel libcurl-devel openssl-devel libpng-devel libjpeg-devel libzip-devel libxslt-devel libicu-devel

# 2. 下载和解压PHP源代码

# 创建目录并进入
mkdir ~/php && cd ~/php

# 下载PHP源代码包
wget https://www.php.net/distributions/php-8.2.6.tar.gz

# 解压源代码包
tar xzf php-8.2.6.tar.gz

# 3. 配置和编译

# 进入解压后的PHP源代码目录
cd php-8.2.6

# 配置编译选项
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-mbstring --with-curl --with-openssl --with-zlib --enable-fpm --with-mysqli --enable-opcache --enable-intl --with-xsl

# 编译和安装
make
sudo make install

# 4. 复制配置文件

# 复制PHP配置文件
sudo cp php.ini-development /usr/local/php/etc/php.ini

# 复制PHP-FPM配置文件
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# 5. 启动PHP-FPM

# 启动PHP-FPM
sudo /usr/local/php/sbin/php-fpm

# 6. 配置Apache

# 安装Apache
sudo yum install -y httpd

# 配置Apache与PHP的集成
sudo sed -i 's/#LoadModule php_module/LoadModule php_module/' /etc/httpd/conf/httpd.conf
sudo sed -i 's/#AddHandler php-script/AddHandler php-script/' /etc/httpd/conf/httpd.conf
sudo sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/' /etc/httpd/conf/httpd.conf

# 启动Apache
sudo systemctl start httpd

Nginx脚本

#!/bin/bash

# 1. 准备工作

# 安装编译依赖
sudo yum install -y epel-release
sudo yum install -y gcc gcc-c++ make autoconf automake libtool re2c flex bison libxml2-devel libcurl-devel openssl-devel libpng-devel libjpeg-devel libzip-devel libxslt-devel libicu-devel

# 2. 下载和解压PHP源代码

# 创建目录并进入
mkdir ~/php && cd ~/php

# 下载PHP源代码包
wget https://www.php.net/distributions/php-8.2.6.tar.gz

# 解压源代码包
tar xzf php-8.2.6.tar.gz

# 3. 配置和编译

# 进入解压后的PHP源代码目录
cd php-8.2.6

# 配置编译选项
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-mbstring --with-curl --with-openssl --with-zlib --enable-fpm --with-mysqli --enable-opcache --enable-intl --with-xsl

# 编译和安装
make
sudo make install

# 4. 复制配置文件

# 复制PHP配置文件
sudo cp php.ini-development /usr/local/php/etc/php.ini

# 复制PHP-FPM配置文件
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# 5. 启动PHP-FPM

# 启动PHP-FPM
sudo /usr/local/php/sbin/php-fpm

# 6. 配置Nginx

# 安装Nginx
sudo yum install -y nginx

# 配置Nginx与PHP的集成
sudo sed -i 's/index  index.html index.htm/index  index.php index.html index.htm/' /etc/nginx/conf.d/default.conf
sudo sed -i 's/#location ~ \.php/location ~ \.php/' /etc/nginx/conf.d/default.conf
sudo sed -i 's/#    fastcgi_pass   unix:/fastcgi_pass   unix:/' /etc/nginx/conf.d/default.conf
sudo sed -i 's/$fastcgi_script_name;/\$document_root\$fastcgi_script_name;/' /etc/nginx/conf.d/default.conf

# 启动Nginx
sudo systemctl start nginx

保存以上内容为脚本文件,例如 install_php_nginx.sh,然后通过以下命令运行脚本:

bash install_php_nginx.sh

该脚本将自动执行以下操作:

  1. 安装编译依赖。
  2. 下载和解压PHP源代码。
  3. 配置和编译PHP。
  4. 复制配置文件。
  5. 启动PHP-FPM。
  6. 安装和配置Nginx。
  7. 启动Nginx。

请注意,这些脚本假定您已经完成了第一章节和第二章节中的准备工作。执行脚本后,您应该能够在Web浏览器中访问服务器的IP地址或域名,以验证PHP和Nginx的集成是否成功。

现在,打开您的Web浏览器,并输入服务器的IP地址或域名。如果一切配置正确,您应该能够看到默认的Nginx欢迎页面。此外,您还可以创建一个简单的PHP文件进行测试。

在您的服务器上创建一个名为 info.php 的文件,并将以下内容添加到该文件中:

<?php
phpinfo();
?>

保存并将该文件放置在Nginx的默认文档根目录下(通常为 /usr/share/nginx/html/)。

然后,在您的Web浏览器中访问 http://服务器IP地址/info.phphttp://您的域名/info.php。如果您能看到PHP信息页面,说明PHP与Nginx的集成已经成功。

恭喜!您已成功配置和启动了Web服务器(Nginx)与PHP的集成。您现在可以开始在您的服务器上开发和托管PHP应用程序。

如果您遇到任何问题,请可以随时向我提问,我将尽力帮助你们。

最后修改:2023 年 05 月 12 日
喜欢就用赞赏来鞭打我吧~