前阵子看到个不错的导航模板 WebStack ,于是想把之前收集的一些有关游戏开发尤其是 GameMaker 相关的教学资源整理一个导航页出来,看了一下似乎 WebStack-Laravel 带个后台管理起来似乎会稍微方便一些,于是弄了两天,照搬网上的一些教程操作,发现过程中有一些小坑,记录一下,也许会对后来者有所帮助吧,我会尽量使用面板进行操作而非命令行。
Oracle 的羊毛免费主机
宝塔面板 7.9
CentOS 7
PHP 7.3
Mysql 5.7
Nginx 1.18
先在面板里新建一个网站,可以同时把数据库一起创建了
然后把 WebStack-Laravel 的资源整个放到上面新创建的网站目录中,会的朋友可以用 git clone
,不会的话自己去仓库下个 zip 包然后通过宝塔面板的文件管理器传上去解压缩也可以。
在上面的文件准备工作完成以后,打开刚刚新建的网站设置页面选择左侧的 Composer
此处首先记得按照图中的提示删除 composer.lock 文件,其次尽量确保 Composer 版本最新吧(我也没试过别的版本),然后这里的执行用户推荐用 www 但务必使用 root ,用 www 后面会报错提示缺少 Fileinfo
扩展,但我明明是装了的,各种修改配制反复重装扩展都不行,最后发现是执行用户权限的问题导致的,吐血。
如果是第一次用 Composer 也许还会遇到一些函数报错,记得去 PHP 的管理设置里删除被禁用的
proc_open
和passthru
函数,Fileinfo
的扩展也可以在 PHP 管理设置里直接安装
当执行完 Composer install
后就是修改网站数据库配置了,在面板的文件管理器中回到网站目录文件夹,在里面找到一个 .env.example
的文件复制一份改名为.env
然后打开编辑其中的内容即可
APP_NAME=WebStack #站名,自己看着改
APP_ENV=local #正式上线改为 production
APP_KEY= #不填后续会自动生成填入
APP_DEBUG=true #上线后可设为 false
APP_LOG_LEVEL=debug
APP_URL=http://localhost #填域名(不改也不影响)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead #刚才建站时生成的数据库
DB_USERNAME=homestead #刚才建站时生成的数据库用户
DB_PASSWORD=secret #刚才建站时生成的数据库密码
#以下可不改,根据自己实际情况看着办吧
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
改好配置以后启动终端输入生成 key
的命令行
#生成KEY
php artisan key:generate
#初始化网站数据,对于有提示的,输入yes即可
php artisan migrate:refresh --seed
然后回网站设置里把运行目录改为/public
至此,理论上如果你设置的域名已经在 DNS 服务商那里配置过 A 记录,此时已经可以访问了,不过打开以后会看到一大堆报错和 debug 信息,大概是这个样子
需要回文件管理器把网站目录加上写入权限设为 777 再次访问就没有问题了,实测成功访问后这里可以改回 755 也不影响。
最后是访问管理后台,后台地址就是在域名后加上/admin
访问即可,不过直接打开会提示重定向次数过多
,需要去修改一下 admin.php
,在大概 110 行左右auth
下增加以下内容即可
'excepts'=>[
'auth/login',
],
进入后台修改管理员帐号密码,然后把.env
配置文件中的配置改为上线版即可。
如果在网上搜索教程基本也都大同小异,有一些还有修改systemd
和反代操作的,但在我实际操作过程中似乎并务必要,至少目前没发现有什么使用上的差异,后续观察如果发现问题再来更新吧
这么低的配置能跑动吗
居然还有免费的羊毛主机
你好,我在最后更改为Public之前提示403,然后更改为Public之后,就成了该网页无法正常运作了,所有步骤都是按照文中的教程来的