centos 7 nginx php
根据提供的文件信息,本文将详细介绍如何在 CentOS 7 上安装 Nginx 和 PHP,并配置它们以便于处理动态页面。此过程涉及多个步骤,包括安装必要的依赖库、编译配置 Nginx 及 PHP,以及最终的环境搭建。 ### 1. 安装必要的依赖库 在开始安装 Nginx 和 PHP 之前,需要先安装一些基础的依赖库。这些库为后续的编译安装提供支持。 #### 1.1 安装 EPEL 仓库 安装 EPEL (Extra Packages for Enterprise Linux) 仓库,这是一个为 RHEL 及其衍生版本(如 CentOS)提供的高质量附加软件包仓库。 ```bash wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm sudo yum install epel-release-7-5.noarch.rpm -y ``` #### 1.2 安装优先级插件 接下来安装 `yum-plugin-priorities` 插件,用于处理不同仓库间的优先级问题。 ```bash sudo yum install yum-plugin-priorities -y ``` #### 1.3 更新系统 确保系统是最新的状态。 ```bash sudo yum update -y ``` #### 1.4 安装 zlib 库 zlib 是一个开源的文件压缩库,用于提供压缩功能支持。 ```bash tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure --prefix=/usr/local/zlib make && make install ``` #### 1.5 安装 PCRE 库 PCRE (Perl Compatible Regular Expressions) 提供了 Perl 风格的正则表达式匹配功能,这对于 Nginx 的 rewrite 模块来说非常重要。 ```bash tar -zxvf pcre-8.35.tar.gz cd pcre-8.35 ./configure --prefix=/usr/local/pcre --enable-utf8 --enable-unicode-properties make && make install ``` #### 1.6 安装其他所需库 除了上面提到的库外,还需要安装以下库: ```bash yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* libxml2-devel libXpm-devel.x86_64 ``` #### 1.7 安装 OpenSSL OpenSSL 是一个强大的安全套接字层密码库,提供了 SSL/TLS 协议支持,对于 HTTPS 支持至关重要。 ```bash tar -zxvf openssl-1.0.1h.tar.gz cd openssl-1.0.1h ./config --prefix=/usr/local/openssl make && make install ``` ### 2. 安装 Google TCMalloc Google TCMalloc 是一种高效的内存分配器,可以显著提高程序性能。 #### 2.1 安装 libunwind 作为 TCMalloc 的一部分,需要先安装 libunwind。 ```bash tar -zxvf libunwind-1.1.tar.gz cd libunwind-1.1 CFLAGS=-fPIC ./configure --prefix=/usr/local/libunwind make CFLAGS=-fPIC && make CFLAGS=-fPIC install ``` #### 2.2 安装 gperftools gperftools 包含了 TCMalloc 和其它性能工具。 ```bash tar -zxvf gperftools-2.2.1.tar.gz cd gperftools-2.2.1 LDFLAGS="-L/usr/local/libunwind/lib/" CPPFLAGS="-I/usr/local/libunwind/include/" ./configure --prefix=/usr/local/perftools make && make install ``` 更新 ld.so 配置文件以包含新安装的库路径。 ```bash echo "/usr/local/libunwind/lib/" >> /etc/ld.so.conf echo "/usr/local/zlib/lib/" >> /etc/ld.so.conf ldconfig ``` ### 3. 安装 Nginx 接下来,安装 Nginx 本身。 #### 3.1 创建用户组和用户 创建 nginx 用户组和用户。 ```bash groupadd -g 1500 nginx useradd -M -u 1500 -g nginx -s /sbin/nologin nginx mkdir /var/tmp/nginx ``` #### 3.2 编译安装 Nginx 解压 Nginx 源码包并编译安装。 ```bash tar -zxvf nginx-*.tar.gz cd nginx-* ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre --with-zlib=/usr/local/zlib --with-http_gzip_static_module --with-stream --with-stream_ssl_module --with-openssl=/usr/local/openssl make && make install ``` ### 4. 安装 PHP 安装 PHP 并配置与 Nginx 的集成。 #### 4.1 安装 PHP ```bash wget https://www.php.net/distributions/php-7.4.15.tar.gz tar -zxvf php-7.4.15.tar.gz cd php-7.4.15 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/etc/php.d --with-fpm-user=nginx --with-fpm-group=nginx --enable-fpm --with-mysqli --with-pdo-mysql --with-curl --with-iconv-dir --with-gd --with-jpeg-dir --with-png-dir --with-zlib --with-bz2 --with-xmlrpc --with-gettext --with-mhash --enable-inline-optimization --with-pcre-dir=/usr/local/pcre --with-xsl --with-libxml-dir=/usr --enable-session --enable-dom --enable-simplexml --enable-xml --enable-zip --enable-soap --enable-opcache --with-openssl=/usr/local/openssl make && make install ``` #### 4.2 配置 PHP-FPM 编辑 `/usr/local/php/etc/php-fpm.conf` 文件,设置监听端口和用户组等。 ```bash vi /usr/local/php/etc/php-fpm.conf ``` #### 4.3 启动 PHP-FPM 启动 PHP-FPM 服务。 ```bash /usr/local/php/sbin/php-fpm ``` ### 5. 配置 Nginx 以支持 PHP 编辑 Nginx 的配置文件,使它能够识别 PHP 请求并将它们转发给 PHP-FPM 处理。 ```bash vi /usr/local/nginx/conf/nginx.conf ``` ### 6. 测试安装 重启 Nginx 服务,测试 PHP 是否正确安装并运行。 ```bash /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload ``` 至此,我们已经完成了在 CentOS 7 上安装 Nginx 和 PHP 的整个过程。通过以上步骤,可以确保 Nginx 能够正确地处理 PHP 请求,并且 PHP 能够被顺利执行。这为开发基于 PHP 的 Web 应用程序打下了坚实的基础。