CA SAM 4.3.x
Windows Server 2016
PHP 7.1
Assumptions:
1. Download the following items in advance to the SAMServer:
2. Install the JRE 1.8 and Visual C++ Redistributable packages on the web server.
3. Extract all of the other above materials into their own folders. One can right-click any such executables and choose "Extract" to unzip the file contents to a new directory.
Note: For JDBC driver "sqljdbc_6.0.8112.200_enu.exe", create directory "C:\Program Files\Java\JDBC" and extract the contents of this file to this location.
4. On the SQL Server, create a blank database and user. The user will be defined in SQL Server.
In this scenario, I have created a database called "samdb" and SQL user named "samuser".
The database samdb" can be created with all defaults accepted.
The login "samuser" should be defined in SQL Server. Specific settings that had worked to configure the user:
Fig 1:
Fig 2:
Fig 3:
The schema and tables will be created in a later step.
4. Create a new mail account that will be used with CA SAM. Collect the settings for:
5. On the SAMServer, go into a command prompt, cd to "C:\Program Files (x86)" and run the following commands to create the directory structure.
mkdir .\ca\Sam\app\htdocs\prod\
mkdir .\ca\Sam\app\includes\prod\
mkdir .\ca\Sam\app\uploads\prod\
mkdir .\ca\Sam\app\uploads\prod\jobs\
mkdir .\ca\Sam\tmp\
mkdir .\ca\Sam\tmp\upload\
mkdir .\ca\Sam\tmp\session\
mkdir .\ca\Sam\env\
mkdir .\ca\Sam\doc
6. Copy from CA SAM ZIP file:
7. Edit C:\Program Files (x86)\CA\Sam\app\includes\prod\st\config.ini, adjust all values according to your own system settings.
Note: Double quotes are intentionally placed on certain entries and are omitted in others. Please be mindful of their placement as shown here.
In my install, I made these changes in the above config.ini file:
relative_app_root = "/prod/"
upload_path = "c:\\Program Files (x86)\\ca\\Sam\\app\\uploads\\prod\\"
executable_files_path = "c:\\Program Files (x86)\\ca\\Sam\\app\\uploads\\prod\\jobs\\"
java_executable = "<Path to Java installation>\\bin\\java.exe"
Example: java_executable = "C:\\Program Files\\Java\\jre1.8.0_201\\bin\\java.exe"
java_jdbc_path = "<Location of sqljdbc42.jar>"
Example: java_jdbc_path = "C:\\Program Files\\Java\\JDBC\\sqljdbc42.jar"
php_cli_executable = "C:\\Program Files (x86)\\CA\\sam\\env\\php\\php.exe"
Under [database] add the data for your database connection
system = mssql
host = <enter the name of your database server>
db = samdb
driver = sqlsrv
user = samuser
password = <enter the above SQL Server user's password>
port = 1433
Note: The above DB password is intentionally being written here in plaintext to facilitate installation. After completing the install process, please follow the steps in the following tech article to encrypt the DB password:
https://knowledge.broadcom.com/external/article?articleId=190885
Under [email] add the settings for mail functionality
method = smtp
host = <name of your mail server>
smtpauth = true
username = <userid you are logging in as for mail access, expressed as [email protected]>
password = <password>
error_to = <email address that any error messages should be sent to>
error_from = <email address that any error messages should be sent from>
error_retpath = <email address that any error messages should be replied to>
8. Set permissions for the IIS_IUSRS user (SAMServer\IIS_IUSRS) to have Modify, Read/Execute, List Folder Contents, Read, and Write across the following folders (applying to subfolders). To do this, go into Windows Explorer and for each of the following directories, right-click, choose "Properties", go into the "Security" tab and manipulate the permissions as directed. (Fig 4-8)
c:\Program Files (x86)\ca\Sam\app
c:\Program Files (x86)\ca\Sam\tmp
If you are prompted to reorder permissions within these directories, please accept the reorder.
Fig 4:
Fig 5:
Fig 6:
Fig 7:
Fig 8:
9. Set permissions for the IIS_IUSRS user (SAMServer\IIS_IUSRS) to have List Folder Contents, read and read/execute on this folder:
c:\Program Files (x86)\ca\Sam\env\
10. Add the Role: Webserver (IIS) to the server (Administrative Tools > Server-Manager > Roles > Add Roles)
11. Add the following additional role services:
Under Web Server/Common HTTP Features (Fig 9)
· Role Service: Static Content
· Role Service: Default Document
· Role Service: Directory Browsing
· Role Service: HTTP Errors
· Role Service: HTTP-Redirection
Fig 9:
Under Web Server/Application Development
· Role Service: CGI
· Role Service: ISAPI Extensions
· Role Service: ISAPI Filters
Under Management Tools (Fig 10:)
· Role Service: IIS Management Scripts and Tools
Fig 10:
Also, go into Features and add:
Under .NET Framework 3.5 Features
- .NET Framework 3.5
- HTTP Activation
Under .NET Framework 4.6 (Fig 11:)
- .NET Framework 4.6
- ASP.NET 4.6
- WCF Services / HTTP Activation
- WCF Services / Named Pipe Activation
- WCF Services / TCP Activation
- WCF Services / TCP Port Sharing
Fig 11:
12. Copy the contents of the PHP 7.1 extract "php-7.1.26-nts-Win32-VC14-x64.zip" into C:\Program Files (x86)\ca\Sam\env\php\
13. Access C:\Program Files (x86)\CA\Sam\env\php in Explorer. Copy php.ini-production into php.ini
14. Create the "OPENSSL_CONF" environment variable by right-clicking on "This PC" in Explorer, choose "Properties". Go into the "Advanced system settings" link, access "Advanced" tab and click on "Environment Variables"
Under System variables:
Add
Name: OPENSSL_CONF
Value: C:\Program Files (x86)\ca\Sam\env\extras\ssl\openssl.cnf
Note: Do not encapsulate this line with double-quotes. Make sure the above directory location for file "openssl.cnf" is accurate as well.
The openssl.cnf file comes from PHP and may be buried within the PHP directory structure itself, ie: "C:\Program Files (x86)\CA\Sam\env\php\extras\ssl\openssl.cnf"
15. From the SourceGuardian Package and the SQL Server Driver Package, locate the "ixed.7.1.win" and "php_sqlsrv_71_nts_x64.dll" files. Add these two files into "C:\Program Files (x86)\CA\Sam\env\php\ext"
15. Make the following changes in php.ini (under C:\Program Files (x86)\CA\Sam\env\php):
Any lines that are commented in the original php.ini should be uncommented if they are listed below. Any lines that are non-existent will need to be added manually.
The sole exception are the "extension" lines. These must be entered exactly as seen here, including the "DLL" extensions.
output_buffering = Off
zlib.output_compression = Off
ignore_user_abort = On
max_execution_time = 72000
max_input_time = 3600
memory_limit = -1
log_errors = On
error_log = syslog
post_max_size = 1500M
extension_dir = "C:/Program Files (x86)/ca/Sam/env/php/ext/"
cgi.force_redirect = 0
cgi.rfc2616_headers = 0
upload_tmp_dir = "C:/Program Files (x86)/ca/Sam/tmp/upload/"
upload_max_filesize = 1500M
extension = php_gd2.dll
extension = php_mbstring.dll
extension = php_openssl.dll
date.timezone = America/New_York
session.save_path = "c:/Program Files (x86)/ca/Sam/tmp/session/"
session.gc_maxlifetime = 86400
session.use_trans_sid = 0
Notes:
Notes:
SQL Server PHP Drivers:
Depending on your specific OS/PHP Combination, these are the latest known SQL Server Driver files to download and the corresponding DLL to use in the above:
Windows Server Release | PHP Version | SQL Server Driver File Download | DLL Of Interest |
Windows Server 2008 SP2 / R2 SP1 | 7.0 | SQLSRV40.EXE | php_sqlsrv_7_nts_x64.dll |
Windows Server 2012 | 7.0 | SQLSRV53.EXE | php_sqlsrv_7_nts_x64.dll |
Windows Server 2012 | 7.1 | SQLSRV56.EXE | php_sqlsrv_71_nts_x64.dll |
Windows Server 2016 | 7.0 | SQLSRV53.EXE | php_sqlsrv_7_nts_x64.dll |
Windows Server 2016 | 7.1 | SQLSRV56.EXE | php_sqlsrv_71_nts_x64.dll |
NOTE: There is no version of the above SQL Server PHP Driver available for PHP 7.1 and Windows 2008.