phplist/base-distribution

phpList 的一个发行版,phpList 是世界上最受欢迎的开源新闻邮件管理器

v4.0.0-alpha2 2018-03-09 15:06 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

关于 phpList

phpList 是一个开源的新闻邮件管理器。该项目是对原始 phpList 的重写。[原始 phpList](https://github.com/phpList/phplist3)。

关于此包

此模块是 phpList 4 安装的基石。它将拉取 phplist/core 模块(phpList 4 的核心)和默认情况下也会拉取 phplist/rest-api 模块(新的 REST API 包)。rest-api 依赖项是可选的。

此包旨在克隆后修改。它不打算在初始安装后通过 Composer 更新(尽管通过 composer update 更新依赖关系是可以的)。

此(即下载的包)也是配置文件存储(或符号链接到)的地方。

安装

  1. 下载并安装 composer
  2. 运行 composer create-project -s dev --no-dev phplist/base-distribution your-project(为 your-project 目录使用任何您喜欢的名称)。
  3. 切换到 your-project 目录。
  4. 如果您不想使用 REST API,请编辑 composer.json,删除相应的 phplist/rest-api 要求,然后运行 composer update

在 Web 服务器上配置和运行 phpList

phpList 应用程序配置为内置 PHP 服务器可以以开发和测试模式运行,而 Apache 可以以生产模式运行。

Apache 上的生产环境

  1. 在 Apache 虚拟主机配置中,将目录 public/ 设置为文档根。
  2. 在 Apache 虚拟主机配置中设置一个随机的 40 位十六进制密钥和 phpList 数据库凭据。您的 Apache 2.4 配置可能如下所示
<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    <Directory /var/www/project/public>
        AllowOverride All
        Require all granted
    </Directory>

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # <Directory /var/www/project>
    #     Options FollowSymlinks
    # </Directory>

    SetEnv PHPLIST_SECRET f75365ecb07c725ba05d5361e415a328880360e5
    SetEnv PHPLIST_DATABASE_NAME phplist
    SetEnv PHPLIST_DATABASE_USER phplist
    SetEnv PHPLIST_DATABASE_PASSWORD correctHorseBatteryStaple

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>

然后重新加载或重启 Apache 以激活配置更改。

如果您无法在 Apache 配置中设置任何环境变量,您还可以在 config/parameters.yml 中设置数据库凭据。但是,这应仅作为最后手段使用,因为这会降低安全性(因为攻击者如果能够读取 Web 服务器上的文件,则可以读取该文件,而他们仍然无法访问环境变量)。

使用以下优化配置禁用 .htaccess 支持并提高 Web 服务器性能

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    <Directory /var/www/project/public>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        </IfModule>
    </Directory>

    SetEnv PHPLIST_SECRET f75365ecb07c725ba05d5361e415a328880360e5
    SetEnv PHPLIST_DATABASE_NAME phplist
    SetEnv PHPLIST_DATABASE_USER phplist
    SetEnv PHPLIST_DATABASE_PASSWORD correctHorseBatteryStaple

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>

开发

要使用内置 PHP 服务器以开发模式运行应用程序,请使用此命令

bin/console server:run -d public/

服务器将在 http://127.0.0.1:8000 上监听(如果端口 8000 已被占用,则监听在 8000 之后的下一个可用端口)。

您可以使用 CTRL + C 停止服务器。

测试

要运行测试模式的服务器(通常只需要用于自动测试,提供 --env 选项

bin/console server:run -d public/ --env=test

有用的 Composer 脚本

您可以使用此命令获取所有已安装的 phpList 模块的列表

composer run-script list-modules

创建此发行版的 .tar.gz 包

创建版本 4.0.x-dev 的包的步骤,文件名为 phplist-base-distribution-4.0.x-dev.tar.gz

composer create-project phplist/base-distribution phplist 4.0.x-dev --prefer-dist --no-dev -s dev
tar -cvzf phplist-base-distribution-4.0.x-dev.tar.gz phplist

以下步骤假设您的机器已安装tarcomposer,并且composer已添加到您的系统路径中(并且它的名称是composer,而不是composer.phar)。

为此包贡献力量

请阅读贡献指南,了解如何贡献力量以及如何在本地运行单元测试和风格检查。

行为准则

本项目遵守贡献者行为准则。通过参与此项目和其社区,您被期望遵守此准则。