使用自定義 DataDirect ODBC 驅動程序從原始碼建構 PHP,但無法使用 systemd 自動啟動
為了使用這個客戶的 ODBC 驅動程序,我需要從原始碼建構 PHP。我已經遵循了這些檢查:https ://www.progress.com/tutorials/odbc/using-php並且當我手動啟動 apache 時一切(包括 ODBC 驅動程序)工作正常
/usr/local/apache2/bin/apachectl start
但是當我嘗試使用 systemd 啟動 apache 時, ODBC 驅動程序不再工作。我創建了這個文件:
/usr/lib/systemd/system/httpd.service
[Unit] Description=Apache Web Server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/apache2/logs/httpd.pid ExecStart=/usr/local/apache2/bin/apachectl start ExecStop=/usr/local/apache2/bin/apachectl graceful-stop ExecReload=/usr/local/apache2/bin/apachectl graceful PrivateTmp=true LimitNOFILE=infinity [Install] WantedBy=multi-user.target
使用 systemd 啟動 apache 時,我的 php 文件中出現以下錯誤:
odbc_connect(): SQL error: [DataDirect][ODBC lib] Driver Manager Message file not found. Please check for the value of InstallDir in your odbc.ini., SQL state IM002 in SQLConnect
InstallDir 在我的 odbc.ini 文件中設置正確:
apachectl start
手動啟動 apache 時沒有出現此錯誤。關於如何解決這個問題的任何建議?
/usr/lib/systemd/system/httpd.service
我可以通過在我的文件中添加以下幾行來解決我的問題,在該[Service]
部分下:
Environment="ODBCINST=/opt/Progress/DataDirect/Hybrid_Data_Pipeline_for_ODBC/odbcinst.ini" Environment="ODBC_HOME=/opt/Progress/DataDirect/Hybrid_Data_Pipeline_for_ODBC" Environment="ODBCINI=/opt/Progress/DataDirect/Hybrid_Data_Pipeline_for_ODBC/odbc.ini" Environment="TZ=America/Los_Angeles"