日期: 2021 年 4 月 25 日

  • 使用https://www.github.com/yeszao/dnmp搭建php8.0.3环境

    基本的安装步骤请看官方文档,这里仅就php8说一下。之前7及以下版本直接按指示操作即可,没有遇到问题,如果遇到github等网络不通的情况,等一等再试,或者想办法出个国。

    需要php8的,打开.env将php7下的版本号直接改为8.0.3,或者复制php7的配置新建一个php8。

    #
    # PHP7
    #
    # Available PHP_EXTENSIONS:
    #
    # pdo_mysql,zip,pcntl,mysqli,mbstring,exif,bcmath,calendar,
    # sockets,gettext,shmop,sysvmsg,sysvsem,sysvshm,pdo_rebird,
    # pdo_dblib,pdo_oci,pdo_odbc,pdo_pgsql,pgsql,oci8,odbc,dba,
    # gd,intl,bz2,soap,xsl,xmlrpc,wddx,curl,readline,snmp,pspell,
    # recode,tidy,gmp,imap,ldap,imagick,sqlsrv,mcrypt,opcache,
    # redis,memcached,xdebug,swoole,pdo_sqlsrv,sodium,yaf,mysql,
    # amqp,mongodb,event,rar,ast,yac,yaconf,msgpack,igbinary,
    # seaslog,varnish,xhprof,xlswriter
    #
    # You can let it empty to avoid installing any extensions,
    # or install multi plugins as:
    # PHP_EXTENSIONS=pdo_mysql,mysqli,gd,curl,opcache
    #
    #PHP_VERSION=7.4.7
    PHP_VERSION=8.0.3
    PHP_PHP_CONF_FILE=./services/php/php.ini
    PHP_FPM_CONF_FILE=./services/php/php-fpm.conf
    PHP_LOG_DIR=./logs/php
    PHP_EXTENSIONS=mysql,pdo_mysql,mysqli,mbstring,gd,curl,opcache,redis,xdebug,imap,mcrypt,zip

    如上,用docker-compose build php然后docker-compose up php。

    这个时候打开php项目,有可能会报could not find driver的错误。那就是mysql的扩展没装好。

    可以用下面的办法来安装:

    docker exec -it php /bin/sh
    
    install-php-extensions pdo_mysql
    同理,也可以安装redis扩展install-php-extensions redis
    这时候打开phpinfo看看有没有pdo_mysql和redis。
    
    如果需要在本地打开xdebug,还是用上面的办法install-php-extensions xdebug
    这时候,还需要修改一下php.ini,因为xdebug最新是3的版本了,配置项改了。
    
    把原来的xdebug配置改成下面的即可。
    [XDebug]
    xdebug.remote_enable = 1
    xdebug.remote_handler = "dbgp"
    ; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip
    xdebug.remote_host = 192.168.100.100
    ; xdebug.remote_port = 9000
    xdebug.remote_autostart=1
    xdebug.remote_log = /var/log/php/xdebug.log
    
    
    xdebug.mode=debug
    xdebug.client_host=192.168.100.100
    xdebug.start_with_request=yes
    xdebug.log=/var/log/php/xdebug.log
    如果用vscode调试的话,在.vscode下面创建launch.json并填入:
    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Listen for XDebug",
                "type": "php",
                "request": "launch",
                "port": 9003,
                "pathMappings": {
                    "/www/shang/openexhibitions/api": "${workspaceRoot}"
                }
            },
            {
                "name": "Launch currently open script",
                "type": "php",
                "request": "launch",
                "program": "${file}",
                "cwd": "${fileDirname}",
                "port": 9003
            }
        ]
    }
    

    注意,端口号是9003,之前xdebug是9000

  • 谴责阿里云屏蔽https://github.com/yeszao/dnmp

    这是一个非常棒的php环境搭建方案,可是我在阿里云的ecs主机上尝试更新这个代码库的时候,连不上了。

  • 如何识别垃圾链接

    微信群或者朋友圈经常遇到一些转发的内容,一般不能轻易打开,上当的机率太高,简单的可以从链接中的域名分析一下,但这往往不奏效,因为很多大平台的链接也越来越垃圾了。

    比如,你打开腾讯家的新闻链接,还不只是不会直接显示完整的新闻,更是直接跳出他们家app的下载请求,一不小心就装上了。

    从邮件时代就反垃圾这件事,到了移动时代,依然是一个大命题。

    其实在电报等应用中,这似乎不是个难题,完全可以通过引入机器人来检验和标识这些链接,chrome浏览器通过插件也可以实现这样的功能,但像微信这种垃圾应用,打开个链接都是通过内建浏览器,确实就没多少好办法避免。

    而像财新这样的付费新闻app,分享出来的新闻也是半截,为了推广app付费无可厚非,但假装成无付费的链接就不算厚道了,标题上打上个会员标志不挺好的嘛。

  • ID4试驾体验

    这确实是一套完整的数字化的体验,大众接着新能源车的机会改变了整套的销售和运营体系,这对大众来说,比一辆车的改变意义更大。

    当然,ID4试驾完之后,第一个感觉就是降低了我对ID6的预期。ID4车内没有什么值得称道的地方,屏幕太简约,过于保守了,至少应该给到长安CS55那样的屏幕吧。

    试驾一圈会完的时候,突然想起销售提到的要加价5000才有的擡头显一直没有看到。于是让试驾员打开,结果他尝试了好几次都不行,停车以后尝试重启车机也不行,估计要给小电瓶断电才行了。我把这个建议给了他,他不好意思当面实施。

    以ID4的核心配置,比如电池容量和电机功率来说,跟长安CS55相比贵了将近10万,也许这就是品牌溢价吧,这次是真的体会到了。