为了使用这个客户的 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"