Содержание

Создание USB-накопителя Dokuwiki для запуска Ubuntu и Windows

Если вы также хотите, чтобы USB-накопитель работал под 64-битной Ubuntu, вам нужно будет создать дополнительный раздел на вашем USB-накопителе. Вероятно, лучше всего сделать это до установки решения Windows но если вы уже сделали это, то вы можете скопировать файлы во временное местоположение, переформатировать USB-накопитель и затем скопировать их обратно. Вы также можете использовать что-то вроде GParted, которое позволяет вам изменить размер вашего существующего раздела.

Это разделы

(Эта идея также работает для ПК с двойной загрузкой, если у вас Windows и Ubuntu с общим вторым диском, который вы можете использовать для доступа к одному и тому же Wiki в обеих операционных системах)

Linux Execution. Устанавливается на раздел linuxWiki

HTTP-интерпретатор

Для выполнения вики вам понадобится небольшой сервер, который может интерпретировать формат http. Выбранный сервер должен запускаться с флешки. Один из тех, что работает из коробки — Mongoose Страница загрузки — https://code.google.com/archive/p/mongoose/downloads Требуется двоичный файл mongoose-lua-sqlite-ssl-static-x86_64-5.1. Он будет обрабатывать http-запросы на localhost:8080, который по умолчанию будет файлом doku.php. Суффикс php тогда потребует интерпретатор PHP.

PHP-интерпретатор

Версия, которую я скачал, была 5.5.38 http://php.net/downloads.php Более новая версия (7.1.3) тоже работает нормально, но кажется медленнее. Работает также с версией 8.3.2, но не знаю насчет скорости.

распакуйте загруженный файл, чтобы получить каталог php-5.5.38

Для сборки в каталог php

  cd php-5.5.38/
  ./configure  --prefix=$HOME/php
  make
  make install

После сборки нам понадобится только один исполняемый файл, расположенный по адресу $HOME/php/bin/php-cgi

Расположение файлов в разделе linuxWiki

/media/mike/linuxWiki$ tree
.
├── linuxStart.sh
├── server
│   ├── dokuwiki -> ../../WIKI/dokuwiki
│   ├── mongoose.conf
│   ├── mongoose-lua-sqlite-ssl-static-x86_64-5.1
│   └── php-cgi
└── startWiki.desktop

Файл startWiki.desktop

Это файл .desktop, который позволяет выполнить файл сценария оболочки linuxStart.sh из файлового браузера Nautilus.

Содержимое файла:

[Desktop Entry]
Type=Application
Terminal=true
Name=Start Dokuwiki
Icon=utilities-terminal
Exec=bash -c 'cd "$(dirname %k)";./linuxStart.sh;$SHELL'
Categories=Application;

После создания установите разрешения на выполнение.

 chmod +x startWiki.desktop

Файл linuxStart.sh

Это также требует установки бита выполнения и может быть запущено из командной строки терминала, если вы предпочитаете не использовать Nautilus. Его содержимое:

#!/bin/bash

cd server
echo "Open a browser to address 127.0.0.1:8080"
echo "Leave this terminal window running until you no longer need the http server to access the wiki"
echo "close the terminal when finished so that you can unmount the usb stick"
./mongoose-lua-sqlite-ssl-static-x86_64-5.1 

Это запустит http-сервер mongoose. Для этого сервера нужен файл конфигурации.

Файловый сервер/mongoose.conf

Этот файл конфигурации указывает mongoose использовать программу php-cgi для интерпретации http-ссылок на файлы типа *.php. Он также устанавливает document_root в каталог dokuWiki, который, как мы видим в данный момент, является символической ссылкой на каталог dokuWiki на разделе fat32, а файл запуска по умолчанию становится index.php, который вызывает doku.php для запуска движка wiki.

cgi_interpreter ./php-cgi
enable_directory_listing no
document_root dokuwiki

Другая команда, отключающая листинг каталогов, является мерой безопасности, чтобы остановить отображение списка каталогов для любых путей, которые не содержат файл index.php или index.html. См.mongoose.

Директория сервера/dokuWiki

Это ссылка на раздел fat32, где находится установка dokuwiki. Создайте его с помощью команды

ln -s  ../../WIKI/dokuwiki  dokuwiki

Файлы сервера http и php

Они были созданы на первых двух этапах. Скопируйте оба упомянутых файла в каталог сервера и установите бит выполнения на обоих файлах.

Текущие вопросы

Если вы используете 'localhost:8080' в качестве местоположения вашей вики, то вы обнаружите, что страница Dokuwiki Media Manager имеет проблемы, которые делают невозможной загрузку любых медиафайлов. Если вместо этого вы направите свой браузер на '127.0.0.1:8080' или 'yourMachinesHostName:8080', то эта проблема будет устранена.

Советы

Если вы видите phpInfo вместо DokuWiki-Startpage, проверьте index.php. В моем случае index.php просто вызвал phpInfo(). Я заменил код в index.php следующим: https://raw.githubusercontent.com/splitbrain/dokuwiki/stable/index.php