Фермы Nginx и Dokuwiki

Yum нужно писать в базу данных, которая принадлежит пользователю root. Из-за этого вы не можете использовать его как обычный пользователь.

Вы можете попробовать распаковать rpm-файлы (rpm2cpio package.rpm | cpio -idmv) в выбранный вами каталог.

Но когда вы будете выполнять свою программу, вам нужно будет позаботиться об изменении LD_LIBRARY_PATH, чтобы загрузить зависимые библиотеки. Также это не позаботится о каких-либо зависимостях.

Пример:

# mkdir new_root
# cd new_root
# wget ftp://mirror.switch.ch/pool/4/mirror/centos/6.7/os/x86_64/Packages/vim-enhanced-7.4.629-5.el6.x86_64.rpm
# rpm2cpio vim-enhanced-7.4.629-5.el6.x86_64.rpm | cpio -idmv
# ./usr/bin/vim -version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jul 24 2015 02:23:23)

Вышеупомянутое не имеет никаких зависимых библиотек, иначе вам пришлось бы использовать что-то вроде:

export LD_LIBRARY_PATH=./usr/lib ./usr/bin/program
0
07.07.2018, 17:34
1 ответ

Ну, вроде ответил...

/var/www/localhost/htdocs/farmer — базовая докувики

/var/www/localhost/htdocs/barn — это каталог, в котором находится моя ферма

/var/www/localhost/htdocs/barn/cow — первое животное

/var/www/localhost/htdocs/barn/duck — второе животное

farmer/inc/preload.php настроен согласно советам:

if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/var/www/localhost/htdocs/barn');

cow/conf/local.protected.php настроен одинаково

$conf['basedir'] = '/barn/cow/';

duck/conf/local.protected.php настроен одинаково

$conf['basedir'] = '/barn/duck/';

теперь nginx localhost.conf настроен так:

server {
    listen 80;
    server_name localhost;
    access_log /var/log/nginx/localhost_access_log main;
    error_log /var/log/nginx/localhost_error_log info;
    rewrite_log on;
    root /var/www/localhost/htdocs;

    location ~ /(data/|conf/|bin/|inc/|install.php) { deny all; } # post-install lockdown

    location / {
        try_files $uri $uri/ doku.php @farmer;
        autoindex on;
        }
    location /cow {
        return 301 http://$host/barn/cow/doku.php;
        }

    location /duck {
        return 301 http://$host/barn/duck/doku.php;
        }


    location ~ /barn {
        index doku.php;
        autoindex on;
        rewrite ^/barn/?([^/]+)/(.*) /farmer/$2?animal=$1;
        rewrite ^/barn/?([^/]+)$ /farmer/?animal=$1;
        }

    location @farmer {
            rewrite ^/farmer/_media/(.*) /lib/exe/fetch.php?media=$1;
            rewrite ^/farmer/_detail/(.*) /lib/exe/detail.php?media=$1;
            rewrite ^/farmer/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2;
            rewrite ^/farmer/(.*) /doku.php?id=$1&$args;
        }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;  
    }

}

Я могу перейти наhttp ://localhost/farmerдля базы,http ://localhost/cow(перенаправить на http :/ /localhost/barn/cow/doku.php , внутренне переписано как http ://localhost/farmer/?animal=cow)для 1-го животного и то же самое для 2-го.

Мне не нравится цепочка загрузки nginx, но она работает (tm)

0
28.01.2020, 04:18

Теги

Похожие вопросы