1.安装 Composer

https://www.yiichina.com/doc/guide/2.0/start-installation
通过 Composer 安装

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer


解决方案

sudo vim /etc/php/7.2/cli/php.ini
zlib.output_compression = ON


安装成功

2.安装yii2 高级版

安装yii2

composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application

报错:

更换源:

composer config repo.packagist composer https://packagist.phpcomposer.com

报错:

加参数-g global

composer config -g  repo.packagist composer https://packagist.phpcomposer.com

再次安装yii2

composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application

更改网络连接方式,桥接方式

安装php-mbstring

sudo apt-get install php-mbstring

报网络连接超时

在浏览器打开安装包地址
http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php7.2/php7.2-mbstring_7.2.9-1+ubuntu16.04.1+deb.sury.org+1_amd64.deb
不能访问,
发现另外一个复制的虚拟机也打开了,怀疑是IP地址冲突,关掉另外一台虚拟机后,可以打开这个地址


再次安装,报错:

composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application

执行:sudo apt-get install phpunitsudo apt-get install php7.2-xml

再次安装,安装成功

composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application



3.配置nginx

sudo vim /etc/nginx/sites-available/default
server {
charset utf-8;
client_max_body_size 128M; listen 80; ## listen for ipv4
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6 server_name frontend.test;
root /home/jay/yii-application/frontend/web/;
index index.php; access_log /home/jay/yii-application/log/frontend-access.log;
error_log /home/jay/yii-application/log/frontend-error.log; location / {
# Redirect everything that isn't a real file to index.php
try_files $uri $uri/ /index.php$is_args$args;
} # uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
# try_files $uri =404;
#}
#error_page 404 /404.html; # deny accessing php files for the /assets directory
location ~ ^/assets/.*\.php$ {
deny all;
} location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $uri =404;
} location ~* /\. {
deny all;
}
} server {
charset utf-8;
client_max_body_size 128M; listen 80; ## listen for ipv4
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6 server_name backend.test;
root /home/jay/yii-application/backend/web/;
index index.php; access_log /home/jay/yii-application/log/backend-access.log;
error_log /home/jay/yii-application/log/backend-error.log; location / {
# Redirect everything that isn't a real file to index.php
try_files $uri $uri/ /index.php$is_args$args;
} # uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
# try_files $uri =404;
#}
#error_page 404 /404.html; # deny accessing php files for the /assets directory
location ~ ^/assets/.*\.php$ {
deny all;
} location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $uri =404;
} location ~* /\. {
deny all;
}
}

重启nginx

sudo service nginx reload
sudo service nginx restart

查看错误日志

journalctl -xe

文件不存在
"/home/jay/yii-application/log/frontend-access.log" failed (2: No such file or directory)

解决方案:创建一个log文件夹

nignx 403

解决方案:初始化yii-application

~/yii-application$ php init

配置hosts

打开http://backend.test
报错502

安装php-fpm
sudo apt-get install php7.2-fpm

php-fpm监听地址有问题,需要与nginx监听地址一致 127.0.0.1:9000
sudo vim /etc/php/7.2/fpm/pool.d/www.conf

重启php7.2-fpm

sudo service php7.2-fpm restart

打开http://backend.test 跳转到login页面

http://frontend.test/ 跳转到欢迎页面

check php info
在/home/jay/yii-application/frontend/web 目录创建一个test.php文件

运行http://frontend.test/test.php

4.配置mysql

check mysql 服务是否打开,有localhost:mysql则表示服务已打开

sudo netstat -tap | grep mysql

start service

/etc/init.d/mysql start

stop service

/etc/init.d/mysql stop

连接mysql

mysql -u root -p

报错

切换到root用户

sudo su root

连接mysql,连接成功

mysql -u root -p

查看有哪些数据库

mysql> show databases

查看yii2 配置的数据库:

创建 yii2advanced数据库

mysql> create database yii2advanced

登陆报错,php mysql driver没有安装

安装php mysql 扩展

sudo apt-get install php7.2-mysql

再次登陆,报错:

SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'

修改用户名密码

mysql -u root -p yii2advanced
mysql> select plugin from mysql.user where user = 'root';
mysql> update mysql.user set plugin='mysql_native_password';
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('abc123_') WHERE user='root';
mysql> flush privileges;
mysql> exit



再次连接mysql

 mysql -u root -p yii2advanced

输入abc123_
登陆成功

#5. 访问数据库
login
报 The table does not exist: {{%user}} 未找到
创建user表

CREATE TABLE IF NOT EXISTS `user`(
`id` INT UNSIGNED AUTO_INCREMENT,
`status` varchar (100),
`username` varchar (100),
`password` varchar (50),
`email` varchar (50),
`password_hash` varchar (200),
`password_reset_token` varchar (200),
`auth_key` varchar (50),
`created_at` varchar (50),
`updated_at` varchar (50),
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

注册报错:

Setting unknown property: common\models\User::password_hash

gii生成代码
http://127.0.0.1/index.php?r=gii

报错:

Unable to write the file /yii-application/backend/models/Test.php'.

设置权限

sudo chmod -R 0777 backend

CURD



生成成功

查看文件目录

访问http://backend.test/index.php?r=test/index

phpMyAdmin 查询user表报错

$ sudo vim /usr/share/phpmyadmin/libraries/sql.lib.php
找到

(count($analyzed_sql_results['select_expr'] == 1)
1
改成和下面这句话一样就可以了~

(count($analyzed_sql_results['select_expr']) == 1

注册,登陆成功

数据插入到数据库里面了

作  者:
Jackson0714

出  处:http://www.cnblogs.com/jackson0714/

关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

Ubuntu 安装yii2 advanced版 遇到的坑的更多相关文章

  1. yii2 advanced版基础部分

    yii2 advanced版 一.目录结构 1.backend 和 frontend : 前后台入口,相当于是一个单独的Basic应用,有自己的 mvc 目录.配置文件目录.入口文件目录 2.cons ...

  2. linux mint & ubuntu 安装QQ国际版

    ubuntu安装QQ相对简单 下载qq国际版deb文件,直接安装即可. 下载地址: http://pan.baidu.com/s/1hqmYzlU 下面就重点说一下linux mint 安装qq. 1 ...

  3. 【Caffe】Ubuntu 安装 Caffe gpu版

    安装环境:Ubuntu 16.04lts 64位, gcc5.4 gpu1050ti,cuda8.0,cudnn5.1.10 1. 安装依赖库 sudo apt-get install libprot ...

  4. Ubuntu安装deepin wine版QQ

    1.安装deepin wine环境 https://github.com/wszqkzqk/deepin-wine-ubuntu 直接下载zip包(或者用git方式克隆) 使用unzip解压到指定文件 ...

  5. Ubuntu安装Windows官方版QQ和微信(使用deepin wine)

  6. Yii2 advanced版API接口开发 基于RESTful架构的 配置、实现、测试

    参考地址: http://www.xiaoxiangzi.com/Programme/PHP/3348.html http://www.cnblogs.com/ganiks/p/yii2-restfu ...

  7. Windows下使用Composer安装yii2

    Composer简介 Composer 是PHP中用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的 ...

  8. Win10 下安装Ubuntu 21.04桌面版 双系统 并设置win10为默认启动系统 详细教程

    @ 目录 〇.写在前面 〇 - Plus:如何进入BIOS 〇 - Plus - Plus:U盘启动快捷键 一.磁盘分区:Win10划分未分配空间 二.下载Ubuntu 21.04镜像 三.安装U盘启 ...

  9. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

随机推荐

  1. JS奇淫巧技:防抖函数与节流函数

    应用场景 实际工作中,我们经常性的会通过监听某些事件完成对应的需求,比如: 通过监听 scroll 事件,检测滚动位置,根据滚动位置显示返回顶部按钮 通过监听 resize 事件,对某些自适应页面调整 ...

  2. 关于PHP处理Json数据的例子

    最近工作需要在原来静态看板(大屏)页面的基础上,实现数据的动态展示,而且需要定时刷新. 接到任务后就马不停蹄的开始修改页面: 显然这个需求最好的解决方法就是用Ajax对后台数据进行定时请求,在前端页面 ...

  3. IntelliJ IDEA(十) :常用操作

    IDEA功能详细,快捷键繁多,但是实际开发时不是所有都能用上,如果我们熟悉一些常用的也足够满足我们日常开发了,多的也只是提高我们的B格. 1.自定义主题 IDEA默认的主题有三款,分别是Intelli ...

  4. bzoj 2186 [Sdoi2008]沙拉公主的困惑 欧拉函数

    n>=m,所以就变成了求 ϕ(m!)∗n!/m! 而 ϕ(m!)=m!∗(p−1)/p...... p为m!的素因子,即为m内的所有素数,问题就转化为了求 n!∗(p−1)/p...... 只需 ...

  5. laravel5.5解决小程序登陆态的问题

    修改一个文件 : vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php 找到getSession()方 ...

  6. SSH通过SSH代理连接到内网机器

    要解决的问题? 需要解决的问题:https://q.cnblogs.com/q/105319/ 简单来说就是本地机器通过一台公网机器SSH到公网机器后面的私网机器. 网络环境如下图:本地机器可访问代理 ...

  7. 命令提示符编译java

    先新建一个文件夹kun,kun就是类所在的package.新建一个java文件. HelloWorld.java的代码如下: package kun; public class HelloWorld{ ...

  8. 树莓派3b+_32位linux系统arm架构安装JDK

    如图我的Raspbian系统如下图版本信息: 可以看到是armv7l,我查了一下是32位的arm架构,即下载第一个就好了 然后用SSH Secure Shell远程上去把压缩包或者解压后的文件传过去 ...

  9. EF Core in Action 中文翻译 第一部分导航

    Entityframework Core in action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core ...

  10. 阿里云重磅发布DMS数据库实验室 免费体验数据库引擎

    2月27日,阿里云数据管理DMS发布年度巨献——数据库实验室,用户可在该实验室环境下免费体验数据库引擎.以及DMS各项产品功能.数据库实验室是DMS所提供的体验空间,免费赠送数据库引擎资源. 用户只需 ...