在FreeBSD 11里安装apache24 - wordpress5 - varnish5 - hitch

过程:

1.安装好apache24,站点szt.anqun.org安装好wordpress程序,运行在8080端口

2.pkg install varnish5 # 安装 varnish

3.sysrc varnishd_enable=YES # 启用 varnishd 服务

4.sysrc varnishd_config="/usr/local/etc/varnish" # 添加 varnishd 服务的配置文件,举例文件在这里:https://github.com/pranksinatra/gc-varnish-config/blob/master/default.vcl,视需求添加 set beresp.ttl = 1h; 及是否保留 unset resp.http.X-Varnish;
freebsd-wordpress-varnish-hitch-1.png

4.pkg install hitch # 安装 hitch ,让它提供https

5.vi /usr/local/etc/hitch # 编辑hitch配置文件,根据需求更改端口,本例是监听443端口,后端是varnishd的80端口
freebsd-wordpress-varnish-hitch-2.png

6.如wordpress后台https访问出现跳转循环,请在wp-config.php里添加:

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
   $_SERVER['HTTPS'] = 'on';
}

if ( !isset( $_SERVER['HTTPS'] ) ) {
    $_SERVER['HTTPS'] = 'on';
}

freebsd-wordpress-varnish-hitch-3.png
7.可以安装wordpress插件,如Proxy Cache来管理缓存
freebsd-wordpress-varnish-hitch-4.png

参考:

在Windows 2019里安装tightvnc,远程连接

过程:

1.下载TightVNC for Windows 2.8版本,安装时选择“典型”,会自动配置Windows防火墙,让vnc程序可以从外连接
windows-tightvnc-1.png

2.设置vnc的连接密码
windows-tightvnc-2.png

3.安装成功后,右下角系统托盘里会有tightvnc服务图标
windows-tightvnc-3.png

4.使用vncviewer连接,如本例默认的连接端口是5900
windows-tightvnc-4.png

5.可按Shift + Ctrl + Alt + Delete 键在vncviewer里发送三键组合,解锁Windows屏保,输入密码登录
windows-tightvnc-5.png

参考:

apache2.4 配置 php-fpm 的 pathinfo 问题

问题:在配置apache2.4的php-fpm里,是用如 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/www/szt_anqun_org/public_html/$1 来设置,如typecho可以正常安装,但安装后,无法登录到后,也无法浏览到文章页,如 https://szt.anqun.org/index.php/archives/1/ 页面,会提示404。

原因:如果使用 ProxyPass 或 ProxyPassMatch,php 的 pathinfo 会丢失。换成如下,可支持 pathinfo,

<FilesMatch "\.php$">
        SetHandler  "fcgi://127.0.0.1:9000"
</FilesMatch>
<Proxy "fcgi://127.0.0.1:9000/" enablereuse=on max=10>
</Proxy>

apache-mod-proxy-fcgi-pathinfo-1.png

apache-mod-proxy-fcgi-pathinfo-2.png

参考:

在 FreeBSD 11.2 里安装 Magento2.3

环境:FreeBSD 11.1-RELEASE

过程:

1.pkg install apache24 # 安装 apache2.4
2.pkg install mysql57-server # 安装 mysql server 5.7
3.pkg install php72 php72-curl php72-gd php72-mbstring php72-mysqli php72-openssl php72-pdo_mysql php72-xml php72-dom php72-json php72-xsl php72-ctype php72-intl php72-hash php72-soap php72-filter php72-phar php72-zip php72-iconv php72-bcmath php72-simplexml php72-xmlwriter php72-tokenizer php72-opcache xmlreader php72-xmlreader php72-session php72-wddx php72-sockets php72-readline php72-pcntl php72-gettext php72-exif php72-fileinfo php72-zlib php72-calendar php72-ftp # 安装 php7.2 和相关扩展
4./usr/local/etc/apache24/httpd.conf # 编辑 httpd 的配置文件,本例,启用了好些模块 rewrite_module, mpm_event_module, http2_module, ssl_module, mod_proxy_fcgi, mod_proxy,引用了 httpd-vhosts.conf 文件,禁用了 mpm_worker_module 模块
5./usr/local/etc/apache24/extra/httpd-vhosts.conf # 编辑虚拟主机配置文件,如下例,是添加了https站点 szt.anqun.org的配置内容

Listen 443
<VirtualHost *:443>
        Protocols h2 http/1.1
        ServerName szt.anqun.org

        SSLEngine on
        SSLCertificateFile "/root/.acme.sh/szt.anqun.org/fullchain.cer"
        SSLCertificateKeyFile "/root/.acme.sh/szt.anqun.org/szt.anqun.org.key"

        DocumentRoot "/usr/local/www/szt_anqun_org/public_html"
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/www/szt_anqun_org/public_html/$1
        ErrorLog "/usr/local/www/szt_anqun_org/logs/error.log"

    <Directory "/usr/local/www/szt_anqun_org/public_html">
        AllowOverride All
        DirectoryIndex /index.php index.php index.html
        Require all granted
        Allow from all
    </Directory>

</VirtualHost>

6.sysrc apache24_enable=yes # 允许 apache24 服务
7.sysrc mysql_enable=yes # 允许 mysql-server 服务
8.sysrc php_fpm_enable=yes # 允许 php-fpm 服务
9.service apache24 start # 启动 apache24 服务
10.service mysql-server start # 启动 mysql-server 服务
11.service php-fpm start # 启动 php-fpm 服务
freebsd-magento2-3.png
12.ALTER USER 'root'@'localhost' IDENTIFIED BY 'niDEpASSWORD' ; # 首次启动mysql5.7后,root的密码会写在/root/.mysql_secret 文件里,需要用 ALTER USER 命令更改密码后使用
13.下载不带演示数据的magento2安装文件,解压到 /usr/local/www/szt_anqun_org/public_html,且将目录权限设置为www用户所有
14.切换到magento的目录,执行以下命令安装:

sudo -u www php bin/magento setup:install --base-url=https://szt.anqun.org/ \
--db-host=localhost --db-name=mage --db-user=mage --db-password=wpmima888 \
--admin-firstname=Magento --admin-lastname=User --admin-email=liujia@anqun.org \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=America/Chicago --use-rewrites=1

freebsd-magento2-1.png
15.在浏览器访问前台和后台,正常
freebsd-magento2-2.png

参考:https://devdocs.magento.com/guides/v2.3/install-gde/install/cli/install-cli-subcommands.html

magento - 不能登录后台 - Mage registry key _singleton/massemail/observer

magento网站程序,可更改 local.xml 配置后,网站前台正常,但访问后台提示错误。

1.在浏览器里尝试登录到magento站点后,提示错误
mage-error-registry-key-1.jpg

2.在var/report里找到相应的事件记录,有如下语句:

a:5:{i:0;s:64:"Mage registry key "_singleton/massemail/observer" already exists";i:1;s:2330:"#0 /www/users/domain.name/app/Mage.php(222): Mage::throwException('Mage registry k...')
#1 /www/users/domain.name/app/Mage.php(476): Mage::register('_singleton/mass...', false)

3.网上查得,可以尝试通过magento的管理脚本compiler.php来关闭comiler功能来解决

php compiler.php state
php compiler.php disable
php compiler.php clear

参考:https://community.magento.com/t5/Magento-1-x-Technical-Issues/Mage-registry-key-quot-singleton-massemail-observer-quot-already/td-p/60351