Ref: https://www.yiiframework.com/
https://www.yiiframework.com/doc/guide/2.0/en/start-installation
How to install Yii PHP Framework on Debian 9 and Ubuntu 18.04?
Create a Yii2 project ‘yii2-kickstart’ via composer:
|
1 |
composer create-project --prefer-dist --no-dev yiisoft/yii2-app-basic yii2-kickstart |
Go to the project dir then modify composer.json to add ‘replace’ like this:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "name": "yiisoft/yii2-app-basic", ... "replace": { "bower-asset/jquery": ">=1.11.0", "bower-asset/inputmask": ">=3.2.0", "bower-asset/punycode": ">=1.3.0", "bower-asset/yii2-pjax": ">=2.0.0" }, "repositories": [ ... ] } |
If I don’t do this, i’ll get this error:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Exception 'yii\base\InvalidConfigException' with message 'Failed to instantiate component or class "yii\gii\Module".' in /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/di/Container.php:433 Stack trace: #0 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/di/Container.php(365): yii\di\Container->getDependencies('yii\\gii\\Module') #1 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/di/Container.php(156): yii\di\Container->build('yii\\gii\\Module', Array, Array) #2 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/BaseYii.php(349): yii\di\Container->get('yii\\gii\\Module', Array, Array) #3 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/base/Module.php(427): yii\BaseYii::createObject(Array, Array) #4 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/base/Application.php(315): yii\base\Module->getModule('gii') #5 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/base/Application.php(273): yii\base\Application->bootstrap() #6 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/console/Application.php(124): yii\base\Application->init() #7 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/base/BaseObject.php(109): yii\console\Application->init() #8 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/base/Application.php(206): yii\base\BaseObject->__construct(Array) #9 /home/teddy/Documents/works/yii2-kickstart/vendor/yiisoft/yii2/console/Application.php(89): yii\base\Application->__construct(Array) #10 /home/teddy/Documents/works/yii2-kickstart/yii(19): yii\console\Application->__construct(Array) #11 {main} |
Then run ‘composer update’
Then run ‘php yii serve’. it’ll use port 8080
If the port 8080 is already used, you can use another port like 888:
|
1 |
php yii serve --port=8888 |
Then open it on your browser: http://localhost:8888/
BUT I GOT THIS ERROR ON THE PAGE
|
1 2 |
Invalid Argument – yii\base\InvalidArgumentException The file or directory to be published does not exist: {ROOT}/vendor/bower-asset/jquery/dist |
SO I REMOVE ‘replace’ AND THE VALUES IN {} IN composer.json
Then run ‘composer update’ again.
Start the server again: php yii serve –port=8888
Open it on the browser: http://localhost:8888/
NOW IT’S WORKING FINE!