protected override void DoProcessing() { using (ServerManager serverManager = new ServerManager()) { ServerManagerWrapper serverManagerWrapper = new ServerManagerWrapper(serverManager, this.SiteName, this.VirtualPath); PHPConfigHelper configHelper = new PHPConfigHelper(serverManagerWrapper); PHPIniFile phpIniFile = configHelper.GetPHPIniFile(); PHPIniSetting setting = Helper.FindSetting(phpIniFile.Settings, Name); if (setting != null) { if (ShouldProcess(Name)) { string warningMessage = String.Format(Resources.DeleteSettingWarningMessage, setting.Name, setting.Value); if (Force || ShouldContinue(warningMessage, Resources.DeleteSettingWarningCaption)) { configHelper.RemovePHPIniSetting(setting); } } } else { ArgumentException ex = new ArgumentException(String.Format(Resources.SettingDoesNotExistError, Name)); ReportNonTerminatingError(ex, "InvalidArgument", ErrorCategory.ObjectNotFound); } } }
public string AddExtension(string extensionPath) { EnsureServerConnection(); string result = null; try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); result = configHelper.AddExtension(extensionPath); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (IOException) { RaiseException("ErrorExtensionFileAlreadyExists"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } catch (Exception) { RaiseException("ErrorCannotAddExtension"); } return(result); }
protected override void DoProcessing() { using (var serverManager = new ServerManager()) { var serverManagerWrapper = new ServerManagerWrapper(serverManager, SiteName, VirtualPath); var configHelper = new PHPConfigHelper(serverManagerWrapper); var phpIniFile = configHelper.GetPHPIniFile(); var nameWildcard = PrepareWildcardPattern(Name); var sectionWildcard = PrepareWildcardPattern(Section); foreach (var setting in phpIniFile.Settings) { if (!nameWildcard.IsMatch(setting.Name)) { continue; } if (!sectionWildcard.IsMatch(setting.Section)) { continue; } var settingItem = new PHPSettingItem(setting); WriteObject(settingItem); } } }
protected override void DoProcessing() { using (ServerManager serverManager = new ServerManager()) { ServerManagerWrapper serverManagerWrapper = new ServerManagerWrapper(serverManager, this.SiteName, this.VirtualPath); PHPConfigHelper configHelper = new PHPConfigHelper(serverManagerWrapper); PHPIniFile phpIniFile = configHelper.GetPHPIniFile(); PHPIniSetting setting = Helper.FindSetting(phpIniFile.Settings, Name); if (setting == null) { if (ShouldProcess(Name)) { RemoteObjectCollection <PHPIniSetting> settings = new RemoteObjectCollection <PHPIniSetting>(); settings.Add(new PHPIniSetting(Name, Value, Section)); configHelper.AddOrUpdatePHPIniSettings(settings); } } else { ArgumentException ex = new ArgumentException(String.Format(Resources.SettingAlreadyExistsError, Name)); ReportNonTerminatingError(ex, "InvalidArgument", ErrorCategory.InvalidArgument); } } }
public bool CheckForLocalPHPHandler(string siteName, string virtualPath) { EnsureServerOrSiteConnection(); if (String.IsNullOrEmpty(siteName)) { throw new InvalidOperationException(); } var site = ManagementUnit.ReadOnlyServerManager.Sites[siteName]; if (site == null) { throw new InvalidOperationException(); } var serverManagerWrapper = new ServerManagerWrapper(ManagementUnit.ReadOnlyServerManager, siteName, virtualPath); var configHelper = new PHPConfigHelper(serverManagerWrapper); var configInfo = configHelper.GetPHPConfigInfo(); if (configInfo.RegistrationType != PHPRegistrationType.FastCgi) { throw new InvalidOperationException("PHP is not registered via FastCGI, hence there is no FastCGI handler defined"); } return(configInfo.HandlerIsLocal); }
protected override void DoProcessing() { using (var serverManager = new ServerManager()) { var serverManagerWrapper = new ServerManagerWrapper(serverManager, SiteName, VirtualPath); var configHelper = new PHPConfigHelper(serverManagerWrapper); var phpIniFile = configHelper.GetPHPIniFile(); var setting = Helper.FindSetting(phpIniFile.Settings, Name); if (setting != null) { if (ShouldProcess(Name)) { var settings = new RemoteObjectCollection <PHPIniSetting> { new PHPIniSetting(Name, Value, setting.Section) }; configHelper.AddOrUpdatePHPIniSettings(settings); } } else { var ex = new ArgumentException(String.Format(Resources.SettingDoesNotExistError, Name)); ReportNonTerminatingError(ex, "InvalidArgument", ErrorCategory.ObjectNotFound); } } }
protected override void DoProcessing() { using (var serverManager = new ServerManager()) { var serverManagerWrapper = new ServerManagerWrapper(serverManager, SiteName, VirtualPath); var configHelper = new PHPConfigHelper(serverManagerWrapper); var phpVersions = configHelper.GetAllPHPVersions(); var nameWildcard = PrepareWildcardPattern(HandlerName); var versionWildcard = PrepareWildcardPattern(Version); var isActive = true; foreach (var phpVersion in phpVersions) { if (!nameWildcard.IsMatch(phpVersion.HandlerName)) { isActive = false; continue; } if (!versionWildcard.IsMatch(phpVersion.Version)) { isActive = false; continue; } var versionItem = new PHPVersionItem(phpVersion, isActive); WriteObject(versionItem); isActive = false; } } }
protected override void DoProcessing() { using (ServerManager serverManager = new ServerManager()) { ServerManagerWrapper serverManagerWrapper = new ServerManagerWrapper(serverManager, this.SiteName, this.VirtualPath); PHPConfigHelper configHelper = new PHPConfigHelper(serverManagerWrapper); PHPIniFile phpIniFile = configHelper.GetPHPIniFile(); WildcardPattern wildcard = PrepareWildcardPattern(Name); foreach (PHPIniExtension extension in phpIniFile.Extensions) { if (!wildcard.IsMatch(extension.Name)) { continue; } if (Status == PHPExtensionStatus.Disabled && extension.Enabled) { continue; } if (Status == PHPExtensionStatus.Enabled && !extension.Enabled) { continue; } PHPExtensionItem extensionItem = new PHPExtensionItem(extension); WriteObject(extensionItem); } } }
protected override void DoProcessing() { using (ServerManager serverManager = new ServerManager()) { ServerManagerWrapper serverManagerWrapper = new ServerManagerWrapper(serverManager, this.SiteName, this.VirtualPath); PHPConfigHelper configHelper = new PHPConfigHelper(serverManagerWrapper); RemoteObjectCollection <PHPVersion> phpVersions = configHelper.GetAllPHPVersions(); WildcardPattern nameWildcard = PrepareWildcardPattern(HandlerName); WildcardPattern versionWildcard = PrepareWildcardPattern(Version); bool isActive = true; foreach (PHPVersion phpVersion in phpVersions) { if (!nameWildcard.IsMatch(phpVersion.HandlerName)) { isActive = false; continue; } if (!versionWildcard.IsMatch(phpVersion.Version)) { isActive = false; continue; } PHPVersionItem versionItem = new PHPVersionItem(phpVersion, isActive); WriteObject(versionItem); isActive = false; } } }
protected override void DoProcessing() { try { using (ServerManager serverManager = new ServerManager()) { ServerManagerWrapper serverManagerWrapper = new ServerManagerWrapper(serverManager, this.SiteName, this.VirtualPath); PHPConfigHelper _configHelper = new PHPConfigHelper(serverManagerWrapper); string phpCgiExePath = PrepareFullScriptProcessorPath(ScriptProcessor); _configHelper.RegisterPHPWithIIS(phpCgiExePath); } } catch (DirectoryNotFoundException ex) { ReportTerminatingError(ex, "DirectoryNotFound", ErrorCategory.ObjectNotFound); } }
protected override void DoProcessing() { using (var serverManager = new ServerManager()) { var serverManagerWrapper = new ServerManagerWrapper(serverManager, SiteName, VirtualPath); var configHelper = new PHPConfigHelper(serverManagerWrapper); var configInfo = configHelper.GetPHPConfigInfo(); if (configInfo.RegistrationType == PHPRegistrationType.FastCgi) { var configurationItem = new PHPConfigurationItem(configInfo); WriteObject(configurationItem); } else { throw new InvalidOperationException(Resources.PHPIsNotRegisteredError); } } }
public void ApplyRecommendedSettings(ArrayList configIssueIndexes) { EnsureServerConnection(); try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); configHelper.ApplyRecommendedSettings(configIssueIndexes); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } }
protected override void DoProcessing() { using (var serverManager = new ServerManager()) { var serverManagerWrapper = new ServerManagerWrapper(serverManager, SiteName, VirtualPath); var configHelper = new PHPConfigHelper(serverManagerWrapper); if (configHelper.GetPHPHandlerByName(HandlerName) != null) { if (ShouldProcess(HandlerName)) { configHelper.SelectPHPHandler(HandlerName); } } else { var ex = new ArgumentException(String.Format(Resources.HandlerDoesNotExistError, HandlerName)); ReportNonTerminatingError(ex, "InvalidArgument", ErrorCategory.ObjectNotFound); } } }
public object GetConfigIssues() { RemoteObjectCollection <PHPConfigIssue> configIssues = null; try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); configIssues = configHelper.ValidateConfiguration(); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } return((configIssues != null) ? configIssues.GetData() : null); }
public object GetAllPHPVersions() { EnsureServerOrSiteConnection(); RemoteObjectCollection <PHPVersion> versions = null; try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); versions = configHelper.GetAllPHPVersions(); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } return((versions != null) ? versions.GetData() : null); }
public object GetPHPIniPhysicalPath() { if (!ManagementUnit.Context.IsLocalConnection) { return(null); } string phpiniPath = null; try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); phpiniPath = configHelper.PHPIniFilePath; } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } return(phpiniPath); }
public void RemovePHPIniSetting(object settingData) { EnsureServerConnection(); var setting = new PHPIniSetting(); setting.SetData(settingData); try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); configHelper.RemovePHPIniSetting(setting); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } }
public object GetPHPConfigInfo() { EnsureServerOrSiteConnection(); PHPConfigInfo result = null; try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); result = configHelper.GetPHPConfigInfo(); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } return((result != null) ? result.GetData() : null); }
protected override void BeginProcessing() { EnsureAdminUser(); try { _serverManager = new ServerManager(); ServerManagerWrapper serverManagerWrapper = new ServerManagerWrapper(_serverManager, this.SiteName, this.VirtualPath); _configHelper = new PHPConfigHelper(serverManagerWrapper); _phpIniFile = _configHelper.GetPHPIniFile(); _extensions = new RemoteObjectCollection <PHPIniExtension>(); } catch (FileNotFoundException ex) { DisposeServerManager(); ReportTerminatingError(ex, "FileNotFound", ErrorCategory.ObjectNotFound); } catch (InvalidOperationException ex) { DisposeServerManager(); ReportTerminatingError(ex, "InvalidOperation", ErrorCategory.InvalidOperation); } }
public void AddOrUpdateSettings(object settingsData) { EnsureServerConnection(); var settings = new RemoteObjectCollection <PHPIniSetting>(); settings.SetData(settingsData); try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); configHelper.AddOrUpdatePHPIniSettings(settings); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } }
public void UpdateExtensions(object extensionsData) { EnsureServerConnection(); var extensions = new RemoteObjectCollection <PHPIniExtension>(); extensions.SetData(extensionsData); try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); configHelper.UpdateExtensions(extensions); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } }
public void SelectPHPVersion(string name) { EnsureServerOrSiteConnection(); try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); configHelper.SelectPHPHandler(name); } catch (FileLoadException) { RaiseException("ErrorSomeHandlersLocked"); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } }
public void RegisterPHPWithIIS(string phpExePath) { EnsureServerConnection(); try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); configHelper.RegisterPHPWithIIS(phpExePath); } catch (ArgumentException) { RaiseException("ErrorInvalidPHPExecutablePath"); } catch (FileNotFoundException) { RaiseException("ErrorNoPHPFilesInDirectory"); } catch (DirectoryNotFoundException) { RaiseException("ErrorNoExtDirectory"); } }
public object GetPHPIniSettings() { EnsureServerOrSiteConnection(); PHPIniFile file = null; try { var mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); var configHelper = new PHPConfigHelper(mgmtUnitWrapper); file = configHelper.GetPHPIniFile(); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } Debug.Assert(file != null); return(file.GetData()); }