Подготовка файлов
По умолчанию используется базовая авторизация, но nginx не хочет записывать в fastcgi параметр REMOTE_USER. Вместо этого используется переменная PHP_AUTH_USER. Поэтому, нужно либо заморочиться с конфигом nginx для установки этого параметра, либо поправить файлы, командой
find /path/to/opendcim -type f -print0 | xargs -0 sed -i ‘s/REMOTE_USER/PHP_AUTH_USER/g’
На момент установки была версия 23.03, в файлах хватало косяков, поэтому замену я делал без зазрения совести 🙂 К примеру, в файле create.sql в таблице People неправильно названо поле для страны — должно быть countryCode, а по факту Country, этот момент тоже нужно было поправить. Ещё в файле classes/DataCenter.class.php на 155 строке переменная вызывалась со скобками, как функция — $this->ContainerID(); т.е. нужно было убрать ()
Конфиг nginx
Некоторые вещи, как оказалось, запрашиваются по апи, а оно сделано на Slim, поэтому для локации /api/v1 нужна отдельная обработка php. Сертификаты были сгенерированы предварительно, с помощью openssl. Если использовать домен, то можно и через Let’s Encrypt.
server {
server_name 10.11.12.13;
listen 443 ssl;
root /home/admin/www/opendcim;
error_log /var/log/nginx/dcim-error.log;
ssl_certificate /etc/ssl/certs/dcim-public.crt;
ssl_certificate_key /etc/ssl/private/dcim-private.key;
auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.dcimpass;
index index.php;
location ^~ /api/v1 {
root /home/admin/www/opendcim/api/v1;
try_files $uri $uri/ /api/v1/index.php?$query_string;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/dcim.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
}
location / {
try_files $uri =404;
}
location ~ \.php$ {
fastcgi_intercept_errors on;
#fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_pass unix:/run/php-fpm/dcim.sock;
}
}
Все действия выполнялись на ОС AlmaLinux 9
Добавить комментарий