zoukankan      html  css  js  c++  java
  • homestead注意事项

    1.如何修改php.ini

    Here is how you grant read/write access to php.ini, modify it, save changes & reload nginx:

    1. Navigate to folder containing php.ini: $ cd /etc/php5/fpm

    2. Grant read/write access: $ sudo chmod -R ugo+rw php.ini

    3. Open php.ini: $ vim php.ini

    4. Enter edit mode: $ i

    5. Edit stuff

    6. Exit edit mode: Press ESC

    7. Save & close php.ini: $ :x!

    7.1 OPTIONAL: Exit without saving: $ :q

    8. Navigate to home (not sure if this is actually necessary): $ cd ~

    9. Reload/Restart nginx: $ sudo nginx -s reload

    10. Reload/Restart php: $ sudo service php5-fpm restart

    2. PDO 连接出问题

    YII2进行MYSQL数据库操作时出现Database Exception – yiidbException  SQLSTATE[HY000] [2002] No such file or directory错误的解决方法

    在进行数据库操作时出现如下类似错误,实际则是PHP配置文件php.ini中未指定mysql.sock(或mysqld.sock)文件路径导致的PDO无法链接数据库

     Database Exception – yiidbException

    SQLSTATE[HY000] [2002] No such file or directory

    这个是由于 通常我们在参考 教程在 MAC OS LINUX下安装 MYSQL 时,
    默认将PHP.ini 中的以下三项留空导致的YII2所需的PDO组建无法找到mysql.sock(或mysqld.sock)文件地址导致的
    mysql.default_socket = 
    pdo_mysql.default_socket=
    mysqli.default_socket =

    而没有把另外两个YII 框架需要调用到的模块的default_socket也修改一下

    解决方法 就是
    vim usr/local/php/etc/php.ini


    把以下三个原来空白的值都设置为 /tmp/mysql.sock(或/tmp/mysqld.sock)具体位置请替换成你实际安装mysql数据库时的实际mysql.sock(或mysqld.sock)文件地址
    mysql.default_socket = /tmp/mysql.sock
    pdo_mysql.default_socket= /tmp/mysql.sock
    mysqli.default_socket =/tmp/mysql.sock

    使用mysqld引擎的数据库应修改为如下设置

    mysql.default_socket = /tmp/mysqld.sock
    pdo_mysql.default_socket= /tmp/mysqld.sock
    mysqli.default_socket =/tmp/mysqld.sock

    如果你不知道自己使用的是mysql.sock还是mysqld.sock文件,或者不知道mysql_socket文件的位置,打开phpinfo() 函数信息页面找到如下PHP扩展中MYSQL扩展所在位置,找到里面的MYSQL_SOCKET对应的路径值复制出来即可

    mysql

    MySQL Supportenabled
    Active Persistent Links 0
    Active Links 0
    Client API version 5.6.17
    MYSQL_MODULE_TYPE external
    MYSQL_SOCKET /tmp/mysqld.sock
    MYSQL_INCLUDE -I/usr/local/mysql/include
    MYSQL_LIBS -L/usr/local/mysql/lib -lmysqlclient



    可以看出我使用的是mysqld.sock 文件,因此我php.ini中关于数据库的配置修改如下:
    mysql.default_socket = /tmp/mysqld.sock
    pdo_mysql.default_socket= /tmp/mysqld.sock
    mysqli.default_socket =/tmp/mysqld.sock

    修改完成后 重启apache 或者NGINX下重启php-fpm 即可解决问题(摘取天上星 与您一起探讨互联网乐趣)……

    注:实际上Yii2所使用的PDO链接数据库,之修改设定pdo_mysql.default_socket 一项的配置文件路径即可,但考虑到后续使用和其他一些应用场合,就索性连同mysql,mysqli的socket路径一同设置修改了(修改设置路径地址 必须为mysql_socket所在实际文件路径地址,否则将导致PHP无法正常链接使用MYSQL数据库)……

    注:如果上述问题还有,查看db连接时是否用了127.0.0.1 如果用了记得改为localhost(f you're using Homestead, your DB_HOST should be set to localhost. The reason why in such case artisan (migrate) cannot connect to database is because you are not executing the commands inside your virtual machine.)

  • 相关阅读:
    最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离等问题
    暑假总结20160907
    数组指针和指针数组的区别
    Matlab GUI界面
    稀疏表示(sparse representation)和字典学习
    C++设计模式——策略模式
    volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域
    MultiByteToWideChar和WideCharToMultiByte用法详解
    MFC中Listbox控件的简单使用
    window.open("url?param="+paramvalue) 服务端 乱码问题解决
  • 原文地址:https://www.cnblogs.com/direction/p/5575825.html
Copyright © 2011-2022 走看看