Если вы также хотите, чтобы USB-накопитель работал под 64-битной Ubuntu, вам нужно будет создать дополнительный раздел на вашем USB-накопителе. Вероятно, лучше всего сделать это до установки решения Windows но если вы уже сделали это, то вы можете скопировать файлы во временное местоположение, переформатировать USB-накопитель и затем скопировать их обратно. Вы также можете использовать что-то вроде GParted, которое позволяет вам изменить размер вашего существующего раздела.
Это разделы
(Эта идея также работает для ПК с двойной загрузкой, если у вас Windows и Ubuntu с общим вторым диском, который вы можете использовать для доступа к одному и тому же Wiki в обеих операционных системах)
Для выполнения вики вам понадобится небольшой сервер, который может интерпретировать формат 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.
Версия, которую я скачал, была 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
/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
Это файл .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
Это также требует установки бита выполнения и может быть запущено из командной строки терминала, если вы предпочитаете не использовать 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 использовать программу 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.
Это ссылка на раздел fat32, где находится установка dokuwiki. Создайте его с помощью команды
ln -s ../../WIKI/dokuwiki dokuwiki
Они были созданы на первых двух этапах. Скопируйте оба упомянутых файла в каталог сервера и установите бит выполнения на обоих файлах.
Если вы используете '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