HCRM博客

如何在CentOS上安装PHP和Nginx?

在CentOS上安装PHP和Nginx是一个常见的任务,特别是在构建Web服务器时,以下是一个详细的步骤指南,包括安装、配置和测试PHP与Nginx的整合环境。

一、PHP + Nginx介绍

PHP是一种广泛使用的服务器端脚本语言,常用于开发动态网页和Web应用程序,Nginx是一款高性能的Web服务器和反向代理服务器,以其高并发处理能力、低内存消耗以及强大的负载均衡功能而闻名,将PHP与Nginx结合使用,可以充分发挥两者的优势,提升Web应用的性能和安全性。

如何在CentOS上安装PHP和Nginx?-图1
(图片来源网络,侵权删除)

二、安装步骤

1. 安装和启动Nginx

我们需要安装Nginx,在CentOS系统上,可以通过YUM包管理器来安装:

sudo yum install nginx y
sudo systemctl start nginx
sudo systemctl enable nginx.service

上述命令会安装Nginx并启动服务,同时设置开机自启动。

2. 安装EPEL和Remi仓库

为了安装最新版本的PHP,我们需要添加EPEL和Remi仓库:

sudo yum install epelrelease y
sudo yum install http://rpms.remirepo.net/enterprise/remirelease7.rpm y
sudo yum install yumutils y
sudo yumconfigmanager enable remiphp74

3. 安装PHP及其扩展

如何在CentOS上安装PHP和Nginx?-图2
(图片来源网络,侵权删除)

我们安装PHP及其常用的扩展模块:

sudo yum update y
sudo yum install php phpfpm phpmysqlnd phpzip phpgd phpmbstring phpmcrypt phpxml phpjson y

4. 配置PHPFPM

编辑/etc/phpfpm.d/www.conf文件,修改以下参数以匹配我们的配置需求:

user = nginx
group = nginx
listen = /run/phpfpm/www.sock
; 确保以下两行代码没有被注释
pid = /run/phpfpm/phpfpm.pid
error_log = /var/log/phpfpm/error.log

重启phpfpm服务使配置生效:

sudo systemctl restart phpfpm

5. 配置Nginx

创建一个新的配置文件/etc/nginx/conf.d/default.conf,并将以下内容复制进去:

server {
    listen       80;
    server_name  example.com;  # 替换为你的域名或IP地址
    # 静态文件缓存默认过期时间
    expires 7d;
    # 静态文件缓存目录配置
    location ~* \.(?:css|js|png|gif|jpe?g|svg|woff|woff2|ttf|eot|ico)$ {
        access_log    off;  # 禁用日志
        add_header    CacheControl "public, maxage=604800, immutable";  # 缓存配置
        add_header    XFrameOptions "SAMEORIGIN";
        expires       7d;
        try_files     $uri =404;
    }
    # PHP 配置
    location ~ \.php$ {
        fastcgi_pass unix:/run/phpfpm/phpfpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    # 静态文件代理
    location / {
        proxy_pass http://127.0.0.1:8080;  # 替换为你的端口号
        proxy_set_header Host $http_host;
        proxy_set_header XRealIP $remote_addr;
        proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
    }
}

修改server_namefastcgi_param参数,确保它们匹配您的域名或IP地址和PHP安装位置,然后重启Nginx:

sudo systemctl restart nginx

6. 测试配置

/usr/share/nginx/html目录下创建一个PHP文件index.php,并将以下代码粘贴到文件中:

<?php
phpinfo();
?>

在浏览器中访问您的域名或IP地址,应出现PHP信息页面,表示已成功设置PHP7 + Nginx环境。

三、补充说明:为什么选择PHP搭配Nginx?

1、高性能:Nginx以其高并发能力和低内存消耗而著名,能够处理更多的并发请求,并且在负载较高的情况下表现良好,这使得它成为PHP的理想选择,尤其是在处理大量访问量的网站时。

2、轻量级:Nginx的代码设计简洁,占用资源少,启动速度快,与相对来说较重的Apache相比,Nginx能够更有效地利用服务器的硬件资源,提供更好的性能和响应时间。

3、可扩展性:Nginx提供了强大的扩展性和可定制性,它支持模块化的架构,可以方便地添加或删除模块,从而满足不同的需求,这样,你可以根据PHP应用程序的具体要求,灵活地配置Nginx,以提供最佳的性能和功能。

4、反向代理和负载均衡:Nginx提供了反向代理和负载均衡的功能,可以将请求转发给PHPFPM(FastCGI进程管理器),从而分摊PHP的负载和提高应用程序的性能,这对于处理大量并发请求以及应对突发流量非常有用。

5、安全性:Nginx以其强大的安全性而闻名,它具有许多内置的安全功能,如防止DoS攻击、DDoS攻击和恶意BOT爬虫等,通过与Nginx搭配使用,可以增强PHP应用程序的安全性,并提供一定程度的保护。

四、FAQs常见问题解答

问题1:如何在CentOS上更改Nginx的默认监听端口?

答案:可以通过修改Nginx的主配置文件/etc/nginx/nginx.conf中的listen指令来更改默认监听端口,找到如下行:

listen       80 default_server;
listen       [::]:80 default_server;

将其修改为所需的端口号,例如8080:

listen       8080 default_server;
listen       [::]:8080 default_server;

保存后重启Nginx服务使配置生效:

sudo systemctl restart nginx

注意防火墙也需要开放新的端口号。

问题2:如何更改PHP上传文件的大小限制?

答案:要更改PHP上传文件的大小限制,需要编辑/etc/php.ini文件,找到以下参数并进行修改:

upload_max_filesize = 10M ; 单个文件的最大上传大小
post_max_size = 10M ; POST请求的最大数据量大小

修改完成后重启PHPFPM服务使配置生效:

sudo systemctl restart phpfpm

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/18773.html

分享:
扫描分享到社交APP
上一篇
下一篇