apache_nginx_conf / apache_conf
这是一组用于处理Apache2 Web服务器配置文件的类。
1.0.3
2021-06-03 09:53 UTC
Requires
- php: >=7.0
Requires (Dev)
- apach_nginx_conf/apache_conf: >=1.0.0
Suggests
- Composer: 2.+
- version: latest
This package is not auto-updated.
Last update: 2024-09-20 16:47:19 UTC
README
Apache_Conf

这是一组用于处理Apache2 Web服务器配置文件的类。
代码许可协议为Apache License Version 2.0。
需求
- PHP >= 7.0.0, <= 8.1.6;
- Apache2 >= 2.4;
注意: 此软件包最初由[Aleksey_Nemiro](https://packagist.org.cn/packages/aleksey.nemiro/apacheconf.php)编写。我只是克隆并修复了composer自动加载问题和php8兼容性问题,然后发布,没有修改原始项目。我不拥有此项目及其任何属性。
如何使用?
包含autoload.php
文件并导入类`Apache\Conf`
。
# include autoload.php from composer vendor
require_once 'vendor/autoload.php';
# import class
use Apache\Conf as ApacheConf;
从文件加载配置
# create instance and load config from file
$conf = new ApacheConf('/etc/apache2/sites-available/example.org.conf');
# or
# $conf = ApacheConf::CreateFromFile('/etc/apache2/sites-available/example.org.conf');
# get values
var_dump($conf['VirtualHost']);
var_dump($conf['VirtualHost']->ParametersAsString());
var_dump($conf['VirtualHost']['DocumentRoot']->ParametersAsString());
var_dump($conf['VirtualHost']['ServerName']->ParametersAsString());
var_dump($conf['VirtualHost']['Alias']);
从字符串加载配置
# config data
$str = '<VirtualHost 127.0.0.1:80>
DocumentRoot /home/example.org/www
ServerName example.org
<Location />
AuthType Basic
AuthUserFile users.pwd
Require valid-user
</Location>
</VirtualHost>';
# parse string
$conf = ApacheConf::CreateFromString($str);
# get values
var_dump($conf['VirtualHost']);
var_dump($conf['VirtualHost']->ParametersAsString());
var_dump($conf['VirtualHost']['ServerName']->ParametersAsString());
# get location
$location = $conf['VirtualHost']['Location'][0];
var_dump($location);
保存到文件
# load from file
$conf = ApacheConf::CreateFromFile('/etc/apache2/sites-available/example.org.conf');
# set values
$conf['VirtualHost']['ServerName']->Parameters = array('example.org', 'www.example.org');
$conf['VirtualHost']['DocumentRoot']->Parameters = array('/home/example.org/www');
# create a new directive
$new_directory = ApacheConf::CreateDirective('Directory');
$new_directory->AddDirective('AllowOverride', 'All');
$new_directory->AddDirective('Allow', array('from', 'all'));
$new_directory->AddDirective('Require', array('all', 'granted'));
# add the new Directory section to the VirtualHost section
$new_directory->AddTo($conf['VirtualHost']);
# save
$conf->Save();
# or save as...
# $conf->Save('newFileName.conf');
从当前实例获取字符串
# load from file
$conf = new ApacheConf::CreateFromFile('/etc/apache2/sites-available/example.org.conf');
# set values
$conf['VirtualHost']['ServerName']->Parameters = array('example.org', 'www.example.org');
$conf['VirtualHost']['DocumentRoot']->Parameters = array('/home/example.org/www');
# create a new directive
$new_directory = ApacheConf::CreateDirective('Directory');
$new_directory->AddDirective('AllowOverride', 'All');
$new_directory->AddDirective('Allow', array('from', 'all'));
$new_directory->AddDirective('Require', array('all', 'granted'));
# add the new Directory section to the VirtualHost section
$new_directory->AddTo($conf['VirtualHost']);
# get as string
$string = $conf->GetAsString();
# show string
var_dump($string);
创建新的配置
# create an instance
$conf = new ApacheConf();
# create VirtualHost
$virtualHost = ApacheConf::CreateDirective('VirtualHost', '192.168.100.39:8080');
$virtualHost->AddDirective('DocumentRoot', '/home/example.org/www');
$virtualHost->AddDirective('ServerName', 'example.org');
# add to conf
$conf->Add($virtualHost);
# create directory
$directory = ApacheConf::CreateDirective('Directory');
$directory->AddDirective('AllowOverride', 'All');
$directory->AddDirective('Allow', array('from', 'all'));
$directory->AddDirective('Require', array('all', 'granted'));
# add the new Directory section to the VirtualHost section
$directory->AddTo($virtualHost);
# get as string
$string = $conf->GetAsString();
# show string
var_dump($string);
# or save
# $conf->Save('newFileName.conf');