Open angel13rus opened 3 years ago
Сам спросил, сам ответил. ))) #############Установка LDAP Phonebook на Ubuntu 20.04
sudo apt update sudo apt install openjdk-11-jdk После завершения установки проверим версию Java:
java -version
sudo apt update sudo apt install openjdk-8-jdk Проверим версию после установки:
Переключение между несколькими версиями Java Большинство систем на основе Unix/Linux позволяет устанавливать несколько версий Java в одной системе. Вы можете изменить версию Java по умолчанию в соответствии с вашими требованиями.
Варианты обновления предоставляют возможность поддерживать символические ссылки для команд по умолчанию. Чтобы изменить версию Java по умолчанию, выполним команду на терминале:
Данная команда покажет список всех двоичных файлов Java, установленных в системе. Введите число, чтобы выбрать версию Java по умолчанию, и нажмите Enter.
При успешном выполнении вышеупомянутой команды снова запустите команду java -version, чтобы проверить текущую версию Java по умолчанию.
########УСТАНОВКА СТЕКА LAMP В UBUNTU 20.04
1: Установка Apache и настройка брандмауэра
sudo apt update sudo apt install apache2
sudo ufw app list sudo ufw allow in "Apache"
-----Также можно при помощи утилиты curl запросить свой адрес у третьей стороны. curl http://icanhazip.com
-----Нужно отредактировать файл /etc/apache2/mods-enabled/dir.conf и изменить порядок файлов в директиве DirectoryIndex. Откройте файл.
Поставьте index.php перед index.html:
Сохраните файл, а затем перезапустите веб-сервер:
-----Создание виртуального хоста
Затем определите права на каталог:
Затем создайте новый файл в каталоге sites-available с помощью nano или другого текстового редактора:
Вставьте в пустой файл эту базовую конфигурацию: <VirtualHost *:80> ServerName pb.domen.ru ServerAlias phonebook.domen.ru ServerAlias pb.domen.local ServerAlias phonebook.domen.local ServerAdmin it@domen.ru DocumentRoot /var/www/pb ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Теперь вы можете использовать a2ensite для включения этого виртуального хоста:
Возможно, вы захотите отключить веб-сайт по умолчанию, который устанавливается вместе с Apache. Это необходимо, если вы не используете пользовательский домен, потому что в этом случае конфигурация Apache по умолчанию перезапишет ваш виртуальный хост. Чтобы отключить веб-сайт Apache по умолчанию, введите:
Проверьте ошибки в конфигурации:
Если ошибок нет, команда вернет: Syntax OK
Перезапустите Apache, чтобы обновить настройки:
Теперь Apache обслуживает домен вашего нового сайта. Но пока что каталог /var/www/pb все еще пуст. Давайте мы создадим файл index.html, чтобы протестировать новый сайт.
Вставьте в файл такие строки:
This is the landing page of your_domain.
Откройте браузер и посетите домен или IP вашего сервера: http://pb.domen.local - Локальное имя хоста http://pb.domen.ru - Внешнее имя хоста, Если публикуете во вне. Проверить настройки Фаервола и NAT. Либо по IP http://192.168.XXX.XXX
Вы должны увидеть такое сообщение: It works! This is the landing page of your_domain
Если вы видите эту страницу, ваш виртуальный хост Apache работает должным образом.
2: Установка MySQL
После установки системе MySQL требуется настройка. Чтобы защитить ваш экземпляр, можно запустить простой встроенный скрипт безопасности, который удалит потенциально рискованные настройки. Запустите этот скрипт:
После настройки откройте командную строку MySQL в терминале:
Чтобы закрыть консоль MySQL, введите:
Чтобы создать новую базу данных, войдите в СУБД как root:
И выполните следующую команду из консоли MySQL:
CREATE DATABASE pb;
Теперь можно создать нового пользователя и предоставить ему полные права на новую базу данных. На момент написания этого мануала mysqlnd (PHP-библиотека для MySQL) не поддерживает caching_sha2_authentication, стандартный метод аутентификации MySQL 8. Нам нужно создать нового пользователя с аутентификацией mysql_native_password, чтобы иметь возможность подключиться к БД MySQL из PHP
Следующая команда создаст пользователя, который поддерживает аутентификацию по методу mysql_native_password. Также команда определяет условный пароль этого пользователя (password), который вы должны заменить безопасным паролем.
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'PASSWORD'; CREATE USER 'pb'@'%' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Эта команда предоставит пользователю полные права доступа ко всем БД:
GRANT ALL ON . TO 'root'@'%'; GRANT ALL ON . TO 'pb'@'%';
После этого выйдите из оболочки MySQL:
exit
Вы можете убедиться, что у нового пользователя есть соответствующие права доступа. Снова войдите в консоль MySQL, на этот раз с помощью новых учетных данных:
mysql -u root -p
3: Установка PHP PHP – это серверный язык сценариев для написания динамических страниц. Он позволяет запускать сценарии, подключаться к БД MySQL и передавать обработанный контент в браузер для отображения.
PHP также можно установить с помощью менеджера apt. Вам также понадобятся вспомогательные пакеты php-mysql (для настройки взаимодействия PHP и MySQL) и libapache2-mod-php (который отвечает за работу Apache с PHP).
Чтобы установить все эти пакеты, введите команду:
После завершения установки вы можете запросить версию PHP, чтобы убедиться, что все работает верно.
Включение, выключение модулей PHP в Ubuntu extension=php_ldap.dll extension=php_fileinfo.dll
Включение
Раскоментить строки в:
extension=curl extension=fileinfo extension=ldap extension=mysqli extension=pdo_mysql
Теперь стек полностью установлен. Но прежде чем ставить на него приложение, нужно создать виртуальный хост Apache, а затем протестировать и исправить возможные ошибки.
4: Тестирование стека LAMP Сейчас нужно убедиться в том, что веб-сервер взаимодействует с PHP. Для этого нужно создать простой сценарий PHP, info.php.
Создайте этот файл в корневом каталоге веб-сервера:
На экране появится пустой файл. Поместите в него такой код: <?php phpinfo(); Сохраните и закройте файл.
Теперь попробуйте открыть его в браузере: http://pb.domen.ru/info.php
На экране появится веб-страница, содержащая информацию о сервере (она также может пригодиться вам при отладке). Если такая страница появилась, веб-сервер обслуживает файлы PHP.
Важно! После проверки обязательно удалите этот файл, иначе любой пользователь сможет получить доступ к конфиденциальным данным о среде PHP и о вашем сервере Ubuntu.
В случае необходимости вы сможете быстро создать эту страницу снова.
6: Тестирование соединения базы данных с PHP (опционально) Если вы хотите проверить, может ли PHP подключаться к MySQL и выполнять запросы к базе данных, вы можете создать тестовую таблицу с фиктивными данными и запросить ее содержимое из сценария PHP.
Сначала нам нужно создать тестовую базу данных и пользователя для доступа к ней.
.
Давайте создадим базу данных example_database и пользователя example_user (вы можете заменить эти имена другими значениями).
#################Установка LDAP phonebook С клонировать: git clone https://github.com/pfzim/ldap-phonebook.git
Скопировать клонированное содержимое в /var/www/pb
Открыть в браузере install.php и заполнить предлагаемые параметры Заменить изображения карт templ/map[1-5].png своими схемами Дополнительные настройки в inc.config.php (опционально)
http://pb.domen.local - Локальное имя хоста http://pb.domen.ru - Внешнее имя хоста, Если публикуете во вне. Проверить настройки Фаервола и NAT. Либо по IP http://192.168.XXX.XXX
Для включения LDAP аутентификации в LDAP_ADMIN_GROUP_DN нужно указать группу AD через которую предоставляется доступ: // Группа в AD с пользователями имеющими доступ на редактирование справочника define('LDAP_ADMIN_GROUP_DN', 'CN=Phonebook admin,OU=Admin Roles,OU=Groups,OU=Company,DC=domain,DC=local');
Изменить количество и названия карт: define('PB_MAPS_COUNT', 5); $map_names = array('Floor 1', 'Floor 3', 'Floor 6', 'Floor 14', 'Floor 25'); Изменить язык (cпасибо @Impuls2003):
define('APP_LANGUAGE', 'ru');
Параметры LDAP_HOST и LDAP_PORT заменены на LDAP_URI. Пример: ldaps://dc-01 ldap://dc-02:389
Спасибо за инструкцию!
Только зачем ставить Java? Она не требуется для работы справочника. И пункт 2 избыточен. База данных и пользователь создаются инсталлятором
Ну там под свои задачи нужна. ))) Не за что. Вам спасибо за столь полезный код.
вт, 22 июн. 2021 г., 14:03 pfzim @.***>:
Reopened #33 https://github.com/pfzim/ldap-phonebook/issues/33.
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/pfzim/ldap-phonebook/issues/33#event-4921997220, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUQCNTNJ74WUO2DWVXS7UJLTUBUW5ANCNFSM463JESMA .
Спасибо за инструкцию, но как-то она странно заканчивается.
На экране появится пустой файл. Поместите в него такой код:
На мой взгляд эта инструкция сильно избыточна. Достаточно установить Apache (nginx), MariaDB (MySQL), PHP и запустить install.php для создания БД и конфига.
Ребята я все по инструкции сделал у меня не получается помогите
Установка (install.php) прошла успешно? Что видно в логах Apache?
Да успешно установлен. вот лог брат [Fri Jul 05 10:20:55.947160 2024] [php7:error] [pid 1037] [client 192.168.3.252:2224] PHP Fatal error: Uncaught Exception: Core: Access denied for user 'dbuser'@'localhost' in /var/www/html/modules/Core.php:107\nS tack trace:\n#0 /var/www/html/modules/Core.php(100): Core->error_ex()\n#1 /var/www/html/modules/MySQLDB.php(98): Core->error()\n#2 /var/www/html/modules/MySQLDB.php(223): MySQLDB->connect()\n#3 /var/www/html/module s/Config.php(33): MySQLDB->select_ex()\n#4 /var/www/html/modules/Config.php(62): Config->load()\n#5 /var/www/html/modules/Config.php(80): Config->get_ex()\n#6 /var/www/html/pb.php(154): Config->get_global()\n#7 {ma in}\n thrown in /var/www/html/modules/Core.php on line 107
192.168.3.252 - - [05/Jul/2024:10:57:41 +0000] "GET / HTTP/1.1" 302 224 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" 192.168.3.252 - - [05/Jul/2024:10:57:41 +0000] "GET /pb.php HTTP/1.1" 500 295 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/5 37.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
Вот же:
Access denied for user 'dbuser'@'localhost'
Нет доступа к БД. Что-то не так настроили. Может в пароле ошиблись
А можно опубликовать пошаговую инструкцию для установки на голую UBUNTU?