zoukankan      html  css  js  c++  java
  • Ubuntu 安装yii2 advanced版 遇到的坑

    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: commonmodelsUser::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/
    关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

  • 相关阅读:
    macos linux 命令行显示当前全路径方法
    mac 下面使用apidoc 使用
    du 统计文件夹大小
    mac 共享文件和mount挂载数据
    linux与linux、windows之间文件共享的几种方式
    Yaf安装和配置
    设计模式之 里氏替换原则
    设计模式之单一职责原则
    微信支付 遇到问题总结
    bash shell 快捷键
  • 原文地址:https://www.cnblogs.com/jackson0714/p/install_yii2.html
Copyright © 2011-2022 走看看