KSWEB 上跑 Yii2 Laravel 等 PHP 框架 需要 Composer 和入口文件
和 CMS 有什么不同
WordPress / Joomla 这类 CMS 解压即跑,因为所有依赖都打包好了。Yii2、Laravel、Symfony 这些框架用 Composer 管理依赖,所以多一步 composer install。另外框架有独立的入口目录(Yii2 的 web/、Laravel 的 public/),Web 服务器要把站点根目录指向这个入口,不是项目根。
前提
- PHP 8.1+ — Yii2 2.1 和 Laravel 9+ 都需要 PHP 8.0+,建议直接切 8.2
- Composer — KSWEB PRO 版内置,Standard 版没有
- MySQL — 默认 3306 即可
Yii2 部署
方式一:Composer 创建项目(推荐)
在终端里进入 htdocs 后跑:
cd /storage/emulated/0/htdocs
composer create-project yiisoft/yii2-app-basic myapp
方式二:下载 Advanced Template 模板
从 GitHub 下载 yii2-app-advanced,解压到 htdocs,然后:
cd myapp
composer install
# 按提示运行 init 脚本初始化开发环境
php init --env=Development --overwrite=All
配置 Web 服务器入口
Yii2 的入口文件在 web/index.php,需要把 KSWEB 的站点根目录指向这个 web 目录,而不是项目根。在 KSWEB 服务器标签页里:
- 点击 HOSTS 或主配置里的 Document Root / Server Root
- 改成
/storage/emulated/0/htdocs/myapp/web - 保存,重启服务器
浏览器访问 http://localhost:8080 就能看到 Yii2 的欢迎页。
数据库配置
Yii2 的数据库连接配置在 config/db.php,默认指向 MySQL 本地:
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=myapp',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
];
在 phpMyAdmin 里先建好数据库 myapp,然后跑 ./yii migrate 初始化表结构。
Laravel 部署
Composer 创建
composer create-project laravel/laravel mylaravel
Web 服务器入口
Laravel 入口是 public/index.php,站点根目录指向 /storage/emulated/0/htdocs/mylaravel/public。
环境配置
Laravel 有个 .env 文件存数据库密码等环境变量,首次部署需要:
php artisan key:generate
# 然后编辑 .env 里的 DB_CONNECTION / DB_HOST / DB_DATABASE / DB_USERNAME / DB_PASSWORD
Laravel 还有 storage 和 bootstrap/cache 目录需要可写,Android 上一般没问题。
Symfony
Symfony 5+ 入口是 public/index.php,Composer 项目,PHP 7.2+。composer create-project symfony/website-skeleton 创建。
常见坑
- Composer 太慢 — 移动网络不稳定时 Composer 装依赖会超时,建议用 Wi-Fi 或先在电脑上装完依赖再上传到手机
- PHP 扩展缺失 — Yii2/Laravel 都需要
mbstring、pdo_mysql、fileinfo等扩展,KSWEB 的 PHP 包里默认都有,但要注意对应版本(比如 PHP 8.1 的扩展只能在 8.1 下用) - 路由 rewrite — Apache 的
.htaccess或 Nginx 的location /里加try_files $uri $uri/ /index.php?$query_string;,不然除了首页之外的路由全 404 - 端口冲突 — 框架项目建议占一个独立端口(比如 Yii2 用 8080、Laravel 用 8081),同时挂多个时互相不干扰