在 Homestead 中搭建 ThinkPHP 项目记录

添加serve配置

Homesteadscript文件夹中添加一个serve-tp.sh文件。内容如下:

  #!/usr/bin/env bash
    declare -A params=$6     # Create an associative array
    paramsTXT=""
    if [ -n "$6" ]; then
       for element in "${!params[@]}"
       do
          paramsTXT="${paramsTXT}
          fastcgi_param ${element} ${params[$element]};"
       done
    fi

    block="server {
        listen ${3:-80};
        listen ${4:-443} ssl http2;
        server_name .$1;
        root \"$2\";

        index index.html index.htm index.php;

        charset utf-8;

        location / {
            #try_files \$uri \$uri/ /index.php?\$query_string;
            if (!-e \$request_filename) {
               rewrite  ^(.*)$  /index.php?s=/\$1  last;
               #break;
            }
        }

        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }

        access_log off;
        error_log  /var/log/nginx/$1-error.log error;

        sendfile off;

        client_max_body_size 100m;


        location ~* ^(/images|/Static).+.(jpg|jpeg|css|gif|png|ico) {
            access_log              off;
        }

        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;
            fastcgi_intercept_errors off;
            fastcgi_buffer_size 16k;
            fastcgi_buffers 4 16k;
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
            include fastcgi_params;
        }

        location ~ /\.ht {
            deny all;
        }

        ssl_certificate     /etc/nginx/ssl/$1.crt;
        ssl_certificate_key /etc/nginx/ssl/$1.key;
    }
    "

    echo "$block" > "/etc/nginx/sites-available/$1"
    ln -fs "/etc/nginx/sites-available/$1" "/etc/nginx/sites-enabled/$1"

Homestead.yaml中,

  - map: 你的域名
      to: /home/vagrant/code/你的项目/public
      type: tp

修改之后需要重启vagrant才能生效

转载:https://www.cnblogs.com/xkfeng/p/10734982.html

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

There are errors in the configuration of this machine. Please fix the following errors and try again:

shell provisioner:

  • path for shell provisioner does not exist on the host system: /Users/xxxx/Homestead/scripts/site-types/tp.sh

请问这是啥意思,我没有改啥东西呀

3年前 评论

@Undefined_fish 没找到 /Users/xxxx/Homestead/scripts/site-types/tp.sh这个文件

3年前 评论

现在注册的用户都上漂亮的妹子照片了吗 ? 这肯定是个扣脚大汉!

3年前 评论

有一个问题,我配置之后访问后台就显示模块不存在了

3年前 评论

@YangMd 你看下你的访问地址对不对,安装完了之后路由里面的admin.php文件名会变

3年前 评论
YangMd 3年前
拼凑出整个银河 (作者) (楼主) 3年前

Homestead 官方支持 ThinkPHP , 在配置中添加 type: thinkphp 就可以

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!