Centos7安装PHP及Nginx的教程详解

  • Post category:Linux

下面是“Centos7安装PHP及Nginx的教程详解”的攻略。

准备工作

在开始安装前,需要确保系统已经安装了CentOS 7,并且具有管理员权限。另外,需要安装epel源、remi源和yum utils工具。可以使用以下命令来安装:

sudo yum install epel-release -y
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install yum-utils -y

安装Nginx

接下来,安装最新版的Nginx。可以使用以下命令来安装:

sudo yum install nginx -y

安装完成后,启动Nginx服务并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

此时,可以在浏览器中输入服务器的IP地址,如果能够看到”Welcome to Nginx!”的欢迎页面,说明Nginx已经正常安装并启动了。

安装PHP

在安装PHP之前,需要先安装PHP-FPM。PHP-FPM是一个PHP FastCGI管理器,用于处理PHP脚本。

可以使用以下命令来安装:

sudo yum install php-fpm -y

安装完成后,启动PHP-FPM并设置开机自启:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

接下来,安装需要的PHP扩展模块。例如,如果需要安装PHP的MySQL扩展模块和gd扩展模块,可以使用以下命令:

sudo yum install php-mysql php-gd -y

配置Nginx

现在,需要进行一些Nginx的配置,以便正确处理PHP脚本。

首先,备份默认的Nginx配置文件:

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

然后,创建一个新的Nginx配置文件并打开它:

sudo nano /etc/nginx/nginx.conf

将以下内容添加到配置文件中:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    # PHP-FPM Configuration
    upstream php {
        server 127.0.0.1:9000;
    }

    # Nginx Proxy Configuration for PHP
    server {
        listen 80;
        server_name localhost;
        root /var/www/html;

        # PHP Scripts
        location ~ \.php$ {
            proxy_pass http://php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
}

保存并关闭文件后,检查Nginx配置文件是否有误:

sudo nginx -t

如果没有错误提示,重新启动Nginx服务:

sudo systemctl restart nginx

测试PHP

现在,可以在/var/www/html目录下创建一个名为phpinfo.php的文件,文件中包含以下代码:

<?php
phpinfo();
?>

保存并关闭文件后,在浏览器中输入服务器的IP地址,加上phpinfo.php的文件名,如http://192.168.1.100/phpinfo.php,如果看到PHP的信息页,说明PHP已经可以正常工作了。

示例说明

  1. 示例一:安装PHP的zip扩展模块。

使用以下命令来安装:

sudo yum install php-zip -y

然后重启PHP-FPM服务:

sudo systemctl restart php-fpm
  1. 示例二:将Nginx的访问日志保存到自定义目录。

在Nginx的配置文件中,可以修改access_log的路径来指定日志文件的保存位置。例如,将日志保存到/var/log/nginx/custom.log文件中,可以这样修改Nginx配置文件:

access_log /var/log/nginx/custom.log main;

然后重启Nginx服务:

sudo systemctl restart nginx

这样Nginx的访问日志就会被保存到指定的custom.log文件中。