学习内容:
https://www.kancloud.cn/tpshop/thinkphp5/274464

教程中用lnmp.org中的lnmp.

安装过程中, 注意设置,注意目录权限

设置权限命令: chmod -Rf 777 文件夹名 (递归目录及子目录权限).
可能会提示要设置sql_mode

  1. 查找mysql配置文件my.cnf配置文件路径: find / -name my.cnf

安装成功之后, 进入商品详情或后台管理报404错误, 此时需要设置nginx配置

在tpshop目录下找到nginx.conf2配置文件替换

替换成功之后, 测试nginx是否成功:

lnmp nginx configtest 如果显示的是successful说明配置成功

重启nginx
重启命令: lnmp nginx restart

启用scandir

进入/usr/local/php/etc 然后编辑php.ini 开启scandir

然后重启php-fpm

/etc/init.d/php-fpm restart

这一段,配置 重写模式:

 location / {
           index  index.htm index.html index.php;  
           if (!-e $request_filename){
               #地址作为将参数rewrite到index.php上。tp框架接收s参数为controller和action,不少框架都利用这种方式来实现伪pathinfo模式(pathinfo为php功能,nginx并不支持)
               rewrite ^/(.*)$ /index.php?s=$1 last;
               break;
           }
       }

上面的正则能解决不带xx.php的,这条正则是为了rewrite url中带index.php/admin/admin/login这种,思路是一样的,将index.php后的字符串当成参数

location ~ /.*\.php/ {
               rewrite ^(.*?/?)(.*\.php)(.*)$ /$2?s=$3 last;
   break;
}

这两段取一个,配置不能访问的目录。

location ~*^/(public|install|application|thinkphp|template|plugins|backup|extend|rumtime|topthink|vendor)/.*.\.(php|php5)$
{
deny all;
}
set $file $document_root$fastcgi_script_name;
if($file != $realpath_root/index.php){
return 403;
}

==
如果用www.oneinstack.com中的lnmpa安装的环境。
apache的,就不用以上的配置了。
根目录下写:.htaccess

个人推荐用oneinstack.

学习改变命运,技术成就梦想!

Logo

更多推荐