第一章节:介绍
在本教程中,我们将学习如何在CentOS 7操作系统上使用编译方式安装PHP环境。编译安装PHP的好处在于我们可以自定义编译选项,使其与我们的需求和环境完全匹配。
优势和适用性
通过编译安装PHP,我们可以获得以下优势:
- 自定义编译选项:我们可以根据需求启用或禁用特定功能,定制化PHP的安装。这样可以确保只安装所需的功能模块,减少不必要的资源消耗。
- 最新版本控制:编译安装允许我们使用最新的PHP版本,而不必等待Linux发行版的软件仓库更新。
- 性能优化:我们可以针对特定硬件和软件环境进行优化编译,以提高PHP的性能和效率。
尽管编译安装提供了更多灵活性和控制力,但也需要更多的操作和管理工作。这适用于需要高度定制的环境,或者对PHP有特殊要求的开发人员和系统管理员。
环境和PHP版本信息
在本教程中,我们将使用CentOS 7操作系统,并安装PHP 8.2.6版本。请确保您已具备以下条件:
- 已安装CentOS 7操作系统。
- 具有sudo或root权限的用户账户。
- 确保系统联网,以便安装依赖项和下载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
该脚本将自动执行以下操作:
- 安装编译依赖。
- 下载和解压PHP源代码。
- 配置和编译PHP。
- 复制配置文件。
- 启动PHP-FPM。
- 安装和配置Nginx。
- 启动Nginx。
请注意,这些脚本假定您已经完成了第一章节和第二章节中的准备工作。执行脚本后,您应该能够在Web浏览器中访问服务器的IP地址或域名,以验证PHP和Nginx的集成是否成功。
现在,打开您的Web浏览器,并输入服务器的IP地址或域名。如果一切配置正确,您应该能够看到默认的Nginx欢迎页面。此外,您还可以创建一个简单的PHP文件进行测试。
在您的服务器上创建一个名为 info.php
的文件,并将以下内容添加到该文件中:
<?php
phpinfo();
?>
保存并将该文件放置在Nginx的默认文档根目录下(通常为 /usr/share/nginx/html/
)。
然后,在您的Web浏览器中访问 http://服务器IP地址/info.php
或 http://您的域名/info.php
。如果您能看到PHP信息页面,说明PHP与Nginx的集成已经成功。
恭喜!您已成功配置和启动了Web服务器(Nginx)与PHP的集成。您现在可以开始在您的服务器上开发和托管PHP应用程序。
如果您遇到任何问题,请可以随时向我提问,我将尽力帮助你们。
版权属于:周晨
本文链接:https://wenziju.com/index.php/archives/861/
本博客所有文章除特别声明外,均采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议。转载请注明出处!