PHP笔记网

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2022-08-24 11:19:22  修改时间:2024-11-24 19:15:49  分类:12.PHP库/系统/微信  编辑

系统环境

  1. 系统:Linux CentOS 7.9
  2. 安装宝塔面板并安装 Nginx1.18、MySql5.7、PHP7.4
  3. 必要 PHP 扩展:imap、intl、zip、xml、mcrypt、mailparse
  4. 必要 PHP 函数:putenvimap_open

注意:数据库一定要 MySQL >= 5.7版本

1、安装宝塔

参考官网安装教程:https://www.bt.cn/new/download.html

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

2、宝塔安装PHP7.4 (【宝塔Linux】php7.4 安装 zip 扩展

PHP7.4的安装路径为:/www/server/php/74

新建快捷方式:

ln -sf /www/server/php/74/bin/php /usr/local/bin/php
ln -sf /www/server/php/74/bin/phpize /usr/local/bin/phpize
ln -sf /www/server/php/74/bin/php-config /usr/local/bin/php-config
ln -sf /www/server/php/74/bin/composer /usr/local/bin/composer

3、配置PHP7.4

  1. 必要 PHP 扩展:imap、intl、zip、xml、mcrypt、mailparse、fileinfo
  2. 必要 PHP 函数:putenvimap_open

4、安装PHP扩展:zip

(1) 安装libzip

先删除旧版本
yum remove zip
#下载编译安装
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install

安装完成后,查看是否存在/usr/local/lib/pkgconfig目录,如果存在,执行如下命令来设置PKG_CONFIG_PATH:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

(2) 安装ZipArchive

cd /www/server/php/74/src/ext/zip
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config
make && make install
echo "extension = zip.so" >> /www/server/php/74/etc/php.ini
echo "extension = zip.so" >> /www/server/php/74/etc/php-cli.ini  # 注意:现在的PHP命令行模式,有自己单独的配置文件

(3) 重启php

5、配置PHP参数

upload_max_filesize     300M
post_max_size           350M
memory_limit            400M
max_execution_time      600
max_input_time          600

6、安装依赖包

chown -R www:www /www/wwwroot/mautic.xxx.com
cd /www/wwwroot/mautic.xxx.com
su www
composer install

7、在宝塔后台,提交新建“空”数据库

 

安装步骤

1、配置站点

在宝塔后台添加站点、数据库、域名,然后添加 Nginx伪静态规则:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

2、然后下载 Mautic 安装包,上传到网站根目录解压。

下载地址:https://github.com/mautic/mautic/tags

3、添加计划任务

/usr/bin/php /www/wwwroot/mautic.xxx.com/bin/console mautic:segments:update
/usr/bin/php /www/wwwroot/mautic.xxx.com/bin/console mautic:campaigns:update
/usr/bin/php /www/wwwroot/mautic.xxx.com/bin/console mautic:campaigns:trigger
/usr/bin/php /www/wwwroot/mautic.xxx.com/bin/console mautic:emails:send
/usr/bin/php /www/wwwroot/mautic.xxx.com/bin/console mautic:email:fetch
/usr/bin/php /www/wwwroot/mautic.xxx.com/bin/console mautic:social:monitoring
/usr/bin/php /www/wwwroot/mautic.xxx.com/bin/console mautic:webhooks:process

# 下载IP地址
/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:iplookup:download

根据上面官方给出的 N 条计划任务,我们可以手动在宝塔面板后台手动添加计划任务 Shell 脚本(* * * * 表示每分钟执行 1 次)可以看下面我给出的宝塔计划任务截图。

4、Mautic 安装完成以后,需要登录 Mautic 后台更新 GeoIP 数据库,下面给出一个官方的教程地址,自行根据官方教程去注册获取 IP 数据库的授权秘钥。

官方教程地址:https://docs.mautic.org/en/setup/maxmind-license

下面给出一个 Mautic 后台更新 GeoIP 数据库成功的截图:

注意:把账号和密码用“:”分隔 填入即可,如:官方给的账号信息

Account ID
518888
License key
X5N0BHuYSsW6DPa1

5、跟踪代码不能使用

在布署了Mautic的跟踪代码的时候,加载404报错,或不能发送数据,这些也都是因为伪静态没设置好。

添加如下代码:

location ~ /mtc.js {
	default_type "application/javascript";
	try_files $uri /index.php$is_args$args;
}

location ~ /mtracking.gif {
	default_type "application/javascript";
	try_files $uri /index.php$is_args$args;
}

location ~ /mtc/event {
	default_type "application/javascript";
	try_files $uri /index.php$is_args$args;
}

 

 

参考:

  1. 如何安装Mautic? 搭建一套免费的自动营销系统-Mautic开源自动营销系统实践(1)
  2. Mautic使用手册1: centos7 http部署 + 编译php 整合+ mautic 部署
  3. 使用Mautic的几个坑
  4. 宝塔面板 LNMP 环境下 Mautic 3.X 最新版开源 EDM 邮件行销系统安装教程
  5. 宝塔面板php7.3&7.4版本不支持ZipArchive手工安装扩展方法

 


另外一份Nginx配置

location / {
	# try to serve file directly, fallback to app.php
	try_files $uri /index.php$is_args$args;
}

# redirect some entire folders
rewrite ^/(vendor|translations|build)/.* /index.php break;


# Deny everything else in /app folder except Assets folder in bundles
location ~ /app/bundles/.*/Assets/ {
	allow all;
	access_log off;
}

location ~ /app/ { deny all; }

# Deny everything else in /addons or /plugins folder except Assets folder in bundles
location ~ /(addons|plugins)/.*/Assets/ {
	allow all;
	access_log off;
}

# location ~ /(addons|plugins)/ { deny all; }

# Deny all php files in themes folder
location ~* ^/themes/(.*)\.php {
	deny all;
}

# Don't log favicon
location = /favicon.ico {
	log_not_found off;
	access_log off;
}

# Don't log robots
location = /robots.txt  {
	access_log off;
	log_not_found off;
}

# Deny yml, twig, markdown, init file access
location ~* /(.*)\.(?:markdown|md|twig|yaml|yml|ht|htaccess|ini)$ {
	deny all;
	access_log off;
	log_not_found off;
}

# Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
location ~ /\. {
	deny all;
	access_log off;
	log_not_found off;
}

# Deny all grunt, composer files
location ~* (Gruntfile|package|composer)\.(js|json)$ {
	deny all;
	access_log off;
	log_not_found off;
}

# Deny access to any files with a .php extension in the uploads directory
location ~* /(?:uploads|files)/.*\.php$ {
	deny all;
}

# A long browser cache lifetime can speed up repeat visits to your page ,有些统计功能是.gif后置,需求去掉这个拦截
 #location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml|js)$ {
 location ~* \.(webp|svg|woff|woff2|ttf|css|ico|xml)$ {
	access_log        off;
	log_not_found     off;
	expires           360d;
}

 

摘自:在Ubuntu 18.04服务器上安装Mautic的方法

 


Win10下,安装Composer报错

运行:

composer install

时,报错:

SymfonyComponentDebugExceptionFatalThrowableError : Return value of SymfonyComponentProcessProcess::close() must be of the type integer, null returned

解决方案:

1、修改PHP配置文件php.ini,找到 disable_functions 字段,删除 proc_get_statusproc_openreallink 函数。

2、设置 sys_temp_dir 选项,如:

sys_temp_dir = "d:\software\BtSoft\temp_sys\"

 

 

参考:

  1. laravel 任务调度,运行命令报错
  2. 安装Composer for PHP时出现fopen错误(Windows 7)

 




工作中的备份

1. Nginx配置

server
{
    listen 80;
	listen 443 ssl http2;
    server_name mautic.xxx.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/mautic.xxx.com;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/mautic.xxx.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/mautic.xxx.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
		#SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-74.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/mautic.xxx.com.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    #location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    #{
    #    return 404;
    #}

    #一键申请SSL证书验证目录相关设置
    #location ~ ^/.well-known/{
    #    allow all;
    #}

    #禁止在证书验证目录放入敏感文件
    #if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        #return 403;
    #}

    access_log  /dev/null;
    error_log  /www/wwwlogs/test-mautic.xxx.com.error.log;
    
    location / {
    	# try to serve file directly, fallback to app.php
    	try_files $uri /index.php$is_args$args;
    }
    
    # redirect some entire folders
    rewrite ^/(vendor|translations|build)/.* /index.php break;
    
    
    # Deny everything else in /app folder except Assets folder in bundles
    location ~ /app/bundles/.*/Assets/ {
    	allow all;
    	access_log off;
    }
    
    location ~ /app/ { deny all; }
    
    # Deny everything else in /addons or /plugins folder except Assets folder in bundles
    location ~ /(addons|plugins)/.*/Assets/ {
    	allow all;
    	access_log off;
    }
    
    location ~ /(addons|plugins)/ { deny all; }
    
    # Deny all php files in themes folder
    location ~* ^/themes/(.*)\.php {
    	deny all;
    }
    
    # Don't log favicon
    location = /favicon.ico {
    	log_not_found off;
    	access_log off;
    }
    
    # Don't log robots
    location = /robots.txt  {
    	access_log off;
    	log_not_found off;
    }
    
    # Deny yml, twig, markdown, init file access
    location ~* /(.*)\.(?:markdown|md|twig|yaml|yml|ht|htaccess|ini)$ {
    	deny all;
    	access_log off;
    	log_not_found off;
    }
    
    # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
    location ~ /\. {
    	deny all;
    	access_log off;
    	log_not_found off;
    }
    
    # Deny all grunt, composer files
    location ~* (Gruntfile|package|composer)\.(js|json)$ {
    	deny all;
    	access_log off;
    	log_not_found off;
    }
    
    # Deny access to any files with a .php extension in the uploads directory
    location ~* /(?:uploads|files)/.*\.php$ {
    	deny all;
    }

    # A long browser cache lifetime can speed up repeat visits to your page
    #location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml|js)$ {
    location ~* \.(webp|svg|woff|woff2|ttf|css|ico|xml)$ {
    	access_log        off;
    	log_not_found     off;
    	expires           360d;
    }

}

2.定时任务

任务名称:【Mautic自动营销系统】计划任务

执行周期:N分钟/5分钟

脚本内容:

/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:segments:update
/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:campaigns:update
/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:campaigns:trigger
/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:emails:send
/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:email:fetch
/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:social:monitoring
/www/server/php/74/bin/php /www/wwwroot/mautic.woyoalliance.com/bin/console mautic:webhooks:process