使用自定义 DataDirect ODBC 驱动程序从源代码构建 PHP,但无法使用 systemd 自动启动

使用自定义 DataDirect ODBC 驱动程序从源代码构建 PHP,但无法使用 systemd 自动启动

我需要从源代码构建 PHP 才能使用此客户 ODBC 驱动程序。我已遵循以下检查: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

我的 odbc.ini 文件中的 InstallDir 设置正确: 在此处输入图片描述

在此处输入图片描述

手动启动 Apache 时我没有收到此错误apachectl start。有什么建议可以解决此问题吗?

答案1

我可以通过在/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"

相关内容