搜索數據庫僅在php開發環境中工作

我已經在VirutalBox機器上的Ubuntu20.04上安裝了Mapbender。PostgreSQL、PostGIS和Geoserver都安裝在VM上。我創建了一個地圖應用程序,并添加了一個搜索路由器功能(按照文檔中的說明操作)。搜索在dev環境中工作得很好,但在prod中則不然。在開發環境中,它會給出一個結果,將鼠標懸停在結果上會高亮顯示該功能,并單擊結果將地圖移動和縮放到該功能。

在prod環境中,鍵入搜索字符串并按search時似乎什么都沒有發生。devtools報告一個內部服務器錯誤500,這不是很有幫助。盡管在Firefox中,devtools以紅色顯示referer policy"strict-origin-when-cross-origin。

我已經將Postgres配置文件修改為Listeners=*和host0.0.0.0,以確保這不是數據庫訪問問題。

主機:Windows 10 Pro 20H2

來賓計算機:Ubuntu 20.04

Mapbender 3.2.6

帶有Postgis 3.0的數據庫Postgresql 12.8

通過Geoserver提供WMS服務

PHP7.2

雖然我不確定我是否提供了正確診斷問題的所有信息,但對于如何調查此問題并解決此問題的任何指示,我們都將不勝感激。

Update:

我通過設置以下開關修改了php.ini以啟用錯誤日志記錄:

error_reporting = E_ALL
display_errors = Off
log_errors = On
ignore_repeated_errors = On
ignore_repeated_source = Off
error_log = /var/log/apache2/php_errors.log

但到目前為止沒有記錄任何錯誤,并且沒有創建php_errors.log文件。即使創建文件也不會對日志記錄產生任何影響。我不確定我錯過了什么。我想重申的是,搜索是在開發環境中進行的,所以我看不出這是一個身份驗證問題。我嘗試在虛擬機內的瀏覽器上的prod環境中進行搜索,因此使用localhost訪問應用程序。

在開發工具上,我得到以下信息:

jquery.min.js:formatted:4210 POST` 
http://localhost/mapbender1/application/bh_admin/element/337/0-ed10fcc5-57e7-1f83-8a76-c32030225b85/search 500 (Internal Server Error)
send    @   jquery.min.js:formatted:4210
ajax    @   jquery.min.js:formatted:3992
n.<computed>    @   jquery.min.js:formatted:4044
getJSON @   jquery.min.js:formatted:4033
_search @   js:14187
(anonymous) @   jquery-ui.min.js:6
(anonymous) @   js:13976
dispatch    @   jquery.min.js:formatted:2119
r.handle    @   jquery.min.js:formatted:1998

單擊jquery.min.js:4210時,文件中將突出顯示以下行:

g.send(b.hasContent && b.data || null),

Update 2

根據@IonBazan的建議,我找到了prod.log文件,盡管它位于不同的文件夾中,錯誤表明找不到數據庫服務。日志文件位于:

var/www/mapbender1/app/logs

這是日志文件中的消息:

request.CRITICAL:未捕獲的PHP異常Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:“您請求了一個non-existent服務"doctrine.dbal.mobh_data_connection"。您的意思是:"doctrine.dbal.default_connection"?在/var/www/mapbender1/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php行348{“Exception”:“[對象](Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException(代碼:0):您請求了一個non-existent”服務"doctrine.dbal.mobh_data_connection"。你的意思是:"doctrine.dbal.default_connection"?在/var/www/mapbender1/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:348“}[]

正如我前面提到的,dev應用程序能夠訪問服務。我想,這意味著parameters.yml和config.yml文件中的DB連接參數是正確的。所以我感覺可能有一些緩存項需要更新,特別是Mapbender文檔提到:

development-environment的cache-mechanism的行為不同:并非所有文件都被緩存,因此代碼更改是直接可見的。因此app_dev.php的使用總是比production-environment慢。

And

目錄app/cache包含cache-files。它包含每個環境(prod和dev)的目錄。但是dev-cache的機制,如前所述,表現不同。

如果對Mapbender接口或代碼進行了更改,則必須清除cache-directory(app/cache)以查看應用程序中的更改。

? 最佳回答:

所以這是一個文件夾權限問題。dev環境工作的原因是dev緩存的組件比prod少,這使得對parameters.yml和config.yml等配置文件所做的更改反映在dev中,而不是在prod中。在安裝和配置過程中的某個點上,cache/prod文件夾的所有權歸根目錄,而根目錄保留了www-data用戶沒有對該文件夾的正確訪問權限。因此,盡管parameters.yml和config.yml具有正確的設置,但prod緩存沒有被更新,這使得數據庫連接服務對prod環境不可見。

因此,我做了如下工作,注意到我執行的一些步驟可能是不必要的,但在這個階段,我不會去尋找不需要的步驟。

第一步,停止運行服務(Apache和PHP服務器):

sudo app/console server:stop
sudo service apache2 stop

清除產品緩存:

sudo app/console cache:clear --env=prod --no-debug

我還使用了帶有no-warmup開關的cache:clear命令,這實際上給您留下了一個幾乎為空的緩存文件夾。

sudo app/console cache:clear --env=prod --no-warmup

安裝資產:

sudo app/console assets:install web --env=prod

為www-data用戶授予適當的文件夾權限:

sudo chown -R www-data:www-data /var/www/mapbender/app/cache
sudo chmod -R ug+w /var/www/mapbender/app/cache

啟動Apache和PHP服務器:

sudo service apache2 start
sudo app/console server:start

注意,app/console需要從/var/www/mapbender文件夾執行

正如我前面提到的,可能會有不必要的步驟,但這或多或少是我所做的,現在應用程序正在按預期工作。

免責聲明:我不是開發人員,此處提供的信息來自多個來源,包括Mapbender文檔。

主站蜘蛛池模板: 亚洲综合一区二区精品导航| 嫩B人妻精品一区二区三区| 亚洲一区二区在线免费观看| 99精品国产高清一区二区麻豆 | 国产一区二区三区高清在线观看 | 亚洲成a人一区二区三区| 亚洲国产情侣一区二区三区| 国产在线精品一区二区中文| 日韩精品一区二区三区视频| 精品无码国产一区二区三区51安| 无码国产精品一区二区免费3p | 91无码人妻精品一区二区三区L| 色噜噜AV亚洲色一区二区| www.亚洲一区| 福利片免费一区二区三区| 国产精品一区二区四区| 日本精品无码一区二区三区久久久 | 亚洲乱码一区二区三区在线观看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 福利一区国产原创多挂探花| 日韩精品免费一区二区三区| 成人在线观看一区| 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲大尺度无码无码专线一区 | 久久人做人爽一区二区三区| 狠狠色婷婷久久一区二区三区| 国产一区二区免费在线| 一区二区三区福利| 东京热无码一区二区三区av| 国产在线精品一区二区三区直播| 精品国产一区二区三区久久| 亚洲中文字幕无码一区二区三区| 国产成人无码精品一区二区三区| 无码毛片视频一区二区本码| 精品无人区一区二区三区在线| 日本一区二区三区不卡视频| 老湿机一区午夜精品免费福利| 一区二区三区日本电影| 日韩制服国产精品一区| 国精产品一区一区三区免费视频| 少妇精品无码一区二区三区|