手动阀

Good Luck To You!

Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式

在Ubuntu下配置Nginx以支持ThinkPHP的Pathinfo和URL Rewrite模式,可以按照以下步骤进行:

Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式

安装Nginx

如果还没有安装Nginx,可以使用以下命令进行安装:

sudo apt update
sudo apt install nginx

安装PHP和必要的扩展

确保你已经安装了PHP和必要的扩展,使用php-fpm

sudo apt install php-fpm php-mysql

配置Nginx虚拟主机

创建或编辑你的Nginx虚拟主机配置文件,通常这些文件位于/etc/nginx/sites-available/ 目录下,你可以创建一个新的配置文件,比如thinkphp

sudo nano /etc/nginx/sites-available/thinkphp

在文件中添加以下内容:

server {
    listen 80;
    server_name your_domain_or_ip;
    root /var/www/html/your_thinkphp_project;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 确保路径与实际PHP版本匹配
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}

请根据你的实际情况修改server_nameroot 路径。

启用虚拟主机并重启Nginx

将新创建的虚拟主机链接到sites-enabled 目录,并重启Nginx服务:

sudo ln -s /etc/nginx/sites-available/thinkphp /etc/nginx/sites-enabled/
sudo systemctl restart nginx

配置ThinkPHP的URL模式

ThinkPHP默认使用Pathinfo模式,但你也可以配置为URL Rewrite模式,以下是两种模式的配置方法:

Pathinfo模式(推荐)

Pathinfo模式不需要额外的URL重写规则,只需要确保Nginx配置中的try_files 指令正确即可,上面的Nginx配置已经包含了Pathinfo模式所需的设置。

URL Rewrite模式

如果你需要使用URL Rewrite模式,可以在ThinkPHP的配置文件中进行设置,打开application/config.php 文件,找到'url_model' 配置项,并将其设置为2

return [
    // 其他配置项...
    'url_model' => 2, // 设置为2表示使用URL Rewrite模式
];

你需要在Nginx配置中添加一个重写规则来处理URL重写:

server {
    listen 80;
    server_name your_domain_or_ip;
    root /var/www/html/your_thinkphp_project;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 确保路径与实际PHP版本匹配
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}

注意这里的try_files $uri $uri/ /index.php$is_args$args; 行,它确保了所有请求都通过index.php 进行处理,并且保留了查询字符串。

测试配置

完成以上配置后,重新加载Nginx配置并测试你的ThinkPHP应用是否正常工作:

sudo systemctl reload nginx

访问你的域名或IP地址,确认ThinkPHP应用能够正常加载。

这样,你就成功在Ubuntu下配置了Nginx以支持ThinkPHP的Pathinfo和URL Rewrite模式。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.