Home Wiki > SDB:Установка LAMP
Sign up | Login

SDB:Установка LAMP

tagline: Материал из openSUSE


Проверено в openSUSE Рекомендуемые статьи Связанные статьи
Icon-checked.png

Icon-manual.png Icon-help.png
Эта страница описывает установку LAMP, который состоит из компонентов: Linux, Apache, MariaDB, PHP. Для этого вам необходимо установить:
  • рабочий HTTP-сервер Apache2;
  • базу данных MariaDB;
  • PHP5 для работы с Apache;
  • phpMyAdmin с настроенной базой данных pmadb.
Необходимое время для установки и настройки компонентов LAMP составляет ~20 минут в зависимости от производительности вашего интернет-соединения.
Эта статья обновлена с учетом установки в openSUSE Leap 42.1. Однако, данное руководство может быть использовано и в более ранних версиях openSUSE.

Получение прав доступа

Получите права суперпользователя (root), откройте терминал и введите следующую команду:

user $ su
Password:

После ввода действующего пароля, приглашение должно заканчиваться символом "#".


Настройка Apache2

Далее будет рассматриваться установка с использованием консольного менеджера пакетов zypper (CLI). Для установки сервера в графическом режиме с использованием YaST (GUI) см.: Установка Apache2 - YaST(GUI).

Установка Apache2

Прежде всего, убедитесь, что у вас есть доступ суперпользователя и после введите следующую команду:

root # zypper in apache2

Запуск Apache2

Для запуска сервера Apache, введите следующую команду:

root # systemctl start apache2
Если захотите перезапустить сервер Apache, используйте:

root # systemctl restart apache2

или захотите остановить его:

root # systemctl stop apache2

Для автоматического запуска сервера Apache после перезагрузки выполните:

root # systemctl enable apache2

Проверка установки

Чтобы проверить работу сервера Apache, выполните:

root # echo '<html><body><h1>Welcome to my web site!</h1></body></html>' > /srv/www/htdocs/index.html

Теперь откройте веб-браузер и введите следующий адрес: http://localhost/. Вы должны увидеть страницу с заголовком "Welcome to my web site!".

Index-html.png

Удаленный доступ к веб-серверу

В текущем состоянии веб-сервер доступен только как локальный. Если вы хотите удаленный доступ к веб-серверу, то вы должны открыть порт "http=80" в брандмауэре. Для этого, отредактируйте файл (/etc/sysconfig/SuSEfirewall2), изменив строку:

FW_CONFIGURATION_EXT=""

на

FW_CONFIGURATION_EXT="apache2"
Используйте пробел, чтобы отделить элементы.

После редактирования файла необходимо перезапустить брандмауэр, используя:

root # systemctl restart SuSEfirewall2
Вышесказанное можно сделать, используя: YaST -> Безопасность и пользователи - > Брандмауэр - > Разрешенные службы -> HTTP server.

Чтобы проверить успешный запуск и открытый порт, выполните:

root # netstat -tulnp|grep httpd

В ответ вы должны увидеть приблизительно следующие:

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7254/httpd-prefork


Файлы конфигурации

Корневая директория для сайтов по умолчанию: /srv/www/htdocs/

Конфигурационный файл веб-сервера: /etc/apache2/httpd.conf

Дополнительные конфигурационные файлы: /etc/apache2/conf.d/

Журнал событий: /var/log/apache2


Настройка PHP5

Установка PHP5

Убедитесь, что у вас есть доступ суперпользователя (см. выше). Для установки php5, используйте следующую команду:

root # zypper in php5 php5-mysql apache2-mod_php5

Включите модуль php , выполнив:

root # a2enmod php5

Перезапуск веб-сервера

Теперь, когда вы установили php5, вы должны перезапустить веб-сервер:

root # systemctl restart apache2

Проверка установки

Чтобы убедиться, что php5 работает выполните:

root # echo '<?php phpinfo(); ?>' > /srv/www/htdocs/info.php

Теперь, откройте веб-браузер и введите адрес к файлу: http://localhost/info.php. Вы должны увидеть страницу, содержащую таблицу со всеми параметрами php5.

Index-php.png


Настройка MariaDB

MariaDB - это альтернативный пакет для MySQL, поэтому в дальнейшем будет использоваться имя mysql.

Установка MariaDB

Убедитесь, что у вас есть доступ суперпользователя (см. выше).

Установите mariadb и mariadb-tools:

root # zypper in mariadb mariadb-tools
Пакет mariadb-tools необходим для администраторов.

Запуск сервера MariaDB

Для запуска сервера MariaDB, выполните:

root # systemctl start mysql
Все сообщения работы сервера находятся по адресу: /var/log/messages

Для автоматического запуска mysql после перезагрузки выполните::

root # systemctl enable mysql
Если захотите перезапустить сервер mysql, используйте:

root # systemctl restart mysql

или захотите остановить:

root # systemctl stop mysql

Настройка сервера MariaDB/MySql

Чтобы настроить безопасный сервер MariaDB, используйте скрипт установки mysql_secure_installation предоставленный openSUSE. Далее идет описание этого процесса.

root # mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here.

Enter current password for root (enter for none):

Нажмите Enter, если пароль пустой.

root #
... (output sequel of previous command)

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.

Set root password? [Y/n] y

Введите (Y), если необходимо задать пароль root.

root #
... (output sequel of previous command)

New password:

Установите пароль для суперпользователя (root)

root #
... (output sequel of previous command)

Re-enter new password:

Повторите пароль.

root #
... (output sequel of previous command)

Password updated successfully!

Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

Remove anonymous users? [Y/n]

Введите (Y), чтобы удалить анонимного пользователя.

root #
... (output sequel of previous command)

... Success!

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]

Введите (Y), если необходимо отключить возможность удаленного входа к базе mysql.

root #
... (output sequel of previous command)

... Success!

By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.

Remove test database and access to it? [Y/n]

Введите (Y), чтобы удалить тестовую базу.

root #
... (output sequel of previous command)

- Dropping test database...

... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n]

Введите (Y), чтобы перезагрузить таблицу привилегий.

root #
... (output sequel of previous command)

... Success!

Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure.

Thanks for using MariaDB!

На этом настройка закончена.

Проверка MariaDB

Вы можете подключиться к базе данных mysql, выполнив:

root # $(which mysqladmin) status -p
Enter password:

После ввода действующего пароля вы увидите, например:

Uptime: 29814 Threads: 1 Questions: 47 Slow queries: 0 Opens: 1 Flush tables: 1 Open tables: 64 Queries per second avg: 0.001


Вход на сервер MariaDB

Теперь вы можете войти на сервер, выполнив

root # mysql -u root -p
Enter password:

Затем, введите свой пароль.

root #
... (output sequel of previous command)

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 154 Server version: 10.0.22-MariaDB openSUSE package

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Чтобы вернуться к терминалу , выполните следующую команду:

root # exit

Установка phpMyAdmin

Что такое phpMyAdmin?

phpMyAdmin — a.k.a. pma — это инструмент для администрирования базы данных с помощью веб-интерфейса .

Установка phpMyAdmin

Чтобы установить phpMyAdmin выполните:

root # zypper in phpMyAdmin

Это также устанавливает необходимое кол-во модулей php5 и перезапускает сервер apache2.

Вход в phpMyAdmin

Чтобы войти в phpMyAdmin:

  • Перейдите по адресу: http://localhost/phpMyAdmin/
  • Введите имя пользователя и пароль сервера mysql
  • Нажмите на кнопку "Пуск"
Возможно будет сообщение об ошибке, жалуясь на отсутствие расширения "Multibytes String extension". Это объект следующего раздела.

Настройка phpMyAdmin и проверка

Leap 42.1

Чтобы активировать расширение "Multibytes String extension", которое необходимо для языков, использующих многобайтовую кодировку символов, необходимо отредактировать файл: /etc/php5/apache2/php.ini. Найдите строку:

;php_mbstring.dll

и раскомментируйте ее. Затем перезагрузите сервер Apache

root # systemctl restart apache2

Теперь откройте веб-браузером адрес: http://localhost/phpMyAdmin/ и введите имя пользователя и пароль сервера mysql.

PhpMyAdminInterface.png

Это все! Теперь вы можете управлять базами данных с помощью веб-интерфейса.

Устаревшие версии openSUSE

Внимание: Это не было проверено или изменено при обновлении до версии 42.1.

Для настройки phpMyAdmin, необходимо отредактировать конфигурационный файл: /etc/phpMyAdmin/config.inc.php

  • Откройте файл и измените соответствующие строки (обратите внимание на двойное подчеркивание в именах таблицы):
$cfg['Servers'][$i]['controluser'] = 'somename';
$cfg['Servers'][$i]['controlpass'] = 'somepassword';
/*Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
  • Измените имя пользователя "controluser" и пароль "controlpass" на имя/пароль новой учетной записи сервера mysql
  • Измените права доступа файла:
root # chown root:www /etc/phpMyAdmin/config.inc.php
root # chmod 640 /etc/phpMyAdmin/config.inc.php
  • Oткройте веб-браузером адрес: http://localhost/phpMyAdmin/
  • Импортируйте через вкладку "Импорт" файл:/usr/share/doc/packages/phpMyAdmin/example/create_tables.sql
  • Cнова войдите на сервер MySQL, используя имя и пароль
  • Выберите вкладку "Пользователи" и нажмите "Добавить пользователя". Введите в качестве нового пользователя имя выбранного "controluser" и пароль "controlpass", localhost как хост и нажмите кнопку "Пуск"
  • Cоздайте файл со следующим содержимым, где "somename" и "somepassword" заменить на "controluser" и "controlpass":
GRANT USAGE ON mysql.* TO 'somename'@'localhost' IDENTIFIED BY 'somepassword';
GRANT SELECT (
  Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
  Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
  File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
  Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
  Execute_priv, Repl_slave_priv, Repl_client_priv
 ) ON mysql.user TO 'somename'@'localhost';
 GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
   ON mysql.tables_priv TO 'somename'@'localhost';
 GRANT SELECT ON mysql.db TO 'somename'@'localhost';
 GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'somename'@'localhost';

и импортировать этот файл через вкладку "Импорт".

  • Прочитайте документацию по phpMyAdmin на: phpMyAdmin website
  • Не забудьте применить необходимые меры безопасности
  • Сейчас вы должны иметь работающий сервер LAMP!