Php

使用自定義 DataDirect ODBC 驅動程序從原始碼建構 PHP,但無法使用 systemd 自動啟動

  • June 29, 2021

為了使用這個客戶的 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"

引用自:https://serverfault.com/questions/1067877