2019年9月

monicahq - 修复图片链接路径 - php artisan storage:link

现象:在monica里,可以上传图片,但不会显示。从浏览器里直接访问图片URL,提示404未找到。如:/storage/photos/h4DBeuTT03p35n8z5tRcYUatnWIstfp1bZNA6MPH.jpeg

过程:

1.查看路径/storage/app/public/photos/里有新上传的图片,但/public/storage/photos里没有

2.删除或改名/public/storage/

3.php artisan storage:link #运行管理命令,重新创建软链接 /public/storage/ 到 /storage/app/public/

monica-storeage-linkpng.png

参考:https://github.com/monicahq/monica/issues/702

用telnet测试远程smtp发信

问题:如想简单测试远程smtp账户信息是否正确,能否发信,用telnet可以吗?

尝试:

telnet 148.163.x.x 25
Trying 148.163.x.x...
Connected to 148.163.x.x.
Escape character is '^]'.
220 mail.xxx.com ESMTP Postfix
EHLO mail.xxx.com # 打招呼
250-mail.xxx.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN # 请求验证
334 VXNlcm5hbWU6
bGl1b2ZvQHVwdXN0cm333333bQ== # base64加密后的用户名
334 UGFzc3dvcmQ6 
MXEydz44444Tg3 # base64加密后的密码
535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6 #验证错误
AUTH LOGIN
334 VXNlcm5hbWU6
bGl3333v
334 UGFzc3dvcmQ6
MXEydz44443
235 2.7.0 Authentication successful #验证成功
MAIL FROM:liuo@xxx.com # 发件人
250 2.1.0 Ok
RCPT TO:liu@anqun.net #收件人
250 2.1.5 Ok
DATA #开始写信
354 End data with <CR><LF>.<CR><LF>
Subject:Sending email using Telnet #标题

This is just a simple test.
. # 写信结束
250 2.0.0 Ok: queued as 4831E40AFD2B
QUIT #退出
221 2.0.0 Bye
Connection closed by foreign host.

telnet-smtp-auth-test.png

如想在Linux的Shell里一句话发信测试,可:echo "Subject: hello" | sendmail liu@anqun.net

参考:https://www.kongtechnology.com/2008/01/27/smtp-authentication-and-send-emails-using-telnet/

magento - php bin/magento setup:di:compile - 出错 - 删除 vendor/temando 目录后补回

现象:magento2一键包的文件,在执行 php bin/magento setup:di:compile 命令时出错,提示:PHP Fatal error: Declaration of Temando\Shipping\Model\ResourceModel\Carrier\Collection::fetchData() must be compatible with Temando\Shipping\Model\ResourceModel\Webservice\Collection...

尝试:

1.php bin/magento module:disable Temando_Shipping # 禁用该模块,重新执行setup:di:compile,还是一样错误

2.删除 vendor/temando 目录,然后用官方相同版本的文件复制回原路径

3.重新执行setup:di:compile,正常了

4.php bin/magento module:enable Temando_Shipping # 如需要,可重新启用该模块

参考:

magento - 在URL网址中不显示store view code - Url Options

问题:如果magento为不同的语言创建了不同的Store View,那么默认在浏览器访问的地址栏中,会显示该Store View的标识,如en4等。

magento-hide-store-code-2.png

方法:在管理后台,浏览 Stores -> Configuration --> General --> Web ---> URL options ----> Add Store Code to Urls 设置为 No
magento-hide-store-code-1.png

清除缓存后,再次测试。
magento-hide-store-code-3.png

参考:https://magento.stackexchange.com/questions/186083/magento-2-remove-store-code-in-url-only-for-default-store

magento - 搬站 - Symbolic link not allowed or link target not accessible - 403拒绝访问

问题:将magento2的web目录,从A服务器打包到B服务器。访问B服务器的magento2站点,部分图片不能显示,apache日志记录有403错误,如 AH00037: Symbolic link not allowed or link target not accessible: /var/www/magento2/pub/static/adminhtml/Magento/backend/en_US/images/magento-logo.svg

解决:删除magento的pub/static目录,然后重新生成静态目录里的文件。

1.php bin/magento setup:static-content:deploy -f
2.php bin/magento cache:flush

debian9-apache-magento-1.png

参考:https://magento.stackexchange.com/questions/64802/magento-2-404-error-for-scripts-and-css