Установка apache mysql php debian: Установка комплекта Linux, Apache, MariaDB, PHP (LAMP) в Debian 9
Установка LAMP в Debian/Ubuntu | FORNEX
LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый во Всемирной паутине. LAMP назван по первым буквам входящих в его состав компонентов:
Linux — операционная система, на которой разворачивается инфраструктура для создания веб-приложения;
Apache — веб-сервер;
MariaDB / MySQL — используется для работы с базами данных ;
PHP — язык программирования, используемый для создания веб-приложений.
Сперва обновим информацию о пакетах в репозитариях:
# apt-get update
Теперь можно приступать к установке ПО.
Установка Apache
Для этого в командной строке введите:
# apt-get install apache2
Установка MySQL
Введите команду:
# apt-get install mysql-server mysql-client
В процессе установки у вас спросят root пароль для mysql сервера, лучше сразу задать пароль по сложнее, чтобы избежать взлома.
Установка PHP
Можно воспользоваться командой:
# apt-get install php5 php5-mysql
При этом также будет установлен базовый набор расширений PHP и модуль PHP для Apache — libapache2-mod-php5
Добавление сайта
В том случае если у вас планируется размещение более одного сайта на сервере, нужно создавать для всех сайтов VirtualHost в конфигурационных файлах Apache.
В Debian VirtualHost’ы подключаются из отдельной директории /etc/apache2/sites-enabled/
Также лучше создавать отдельный файл на отдельный домен и называть этот файл именем домена.
Создаем конфигурационный файл для домена
Для создания файла выполните команду
touch /etc/apache2/sites-enabled/mysite. com
Откройте его для редактирования в текстовом редакторе:
<VirtualHost 111.111.111.111:80 >
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/sites/mysite.com
CustomLog /var/www/httpd-logs/mysite.com.access.log combined
ErrorLog /var/www/httpd-logs/mysite.com.error.log
AddType application/x-httpd-php .php
</VirtualHost>
вместо 111.111.111.111 — подставляем IP сервера,
вместо mysite.com — имя домена.
Создание базы данных в MySQL
Для сайта нужно создать базу данных.
mysql -u root -p
Создаем БД и дадим на нее права пользователю:
create database db;
grant all privileges on db.* to 'user'@'localhost' identified by 'password';
Создание директории сайта и установка CMS
Создадим директории для сайта и логов, а также сами файлы логов:
mkdir /var/www/sites/
mkdir /var/www/sites/mysite.com
mkdir /var/www/httpd-logs
touch /var/www/httpd-logs/mysite.com.access.log
touch /var/www/httpd-logs/mysite.com.error.log
Для установки CMS, перейдите в директорию домена и скачайте дистрибутив нужной CMS:
cd /var/www/sites/mysite.com
wget https://ru.wordpress.org/latest-ru_RU.zip
После чего разархивируем скачанный архив:
unzip wordpress-4.9.4-ru_RU.zip
Теперь, если у вас DNS записи верно ведут на ваш сервер, то можно зайти на сайт для продолжения установки по домену, а если нет, то по IP адресу.
⚙КАК УСТАНОВИТЬ ЛАМПУ (APACHE, MYSQL, PHP) НА DEBIAN 8
Apache — это веб-сервер с открытым исходным кодом, который можно использовать на платформах Windows, Unix, Macintosh и т. Д., Основной целью которых является предоставление безопасных, эффективных и надежных служб http. Мы можем увидеть больше об Apache на его официальном сайте. Apache обычно устанавливается с рядом языков, известных как LAMP:
Содержание лампы
- L inux (Операционная система)
- Пач (веб-сервер)
- MySQL или MariaDB (база данных)
- P HP (динамический контент)
Мы проанализируем, как установить этот пакет LAMP в нашей среде Debian 8 . Помните, что с LAMP у нас есть возможность размещать как сайты, так и веб-приложения с вышеупомянутыми компонентами.
примечание
Помните, что если мы не являемся пользователями root, мы должны поставить sudo перед выполнением любой операции.
Лучшее, что нужно сделать перед установкой любого приложения, — запустить обновление apt-get, чтобы обновить все пакеты нашей системы Debian 8.
1. Как установить Apache
Для установки Apache мы выполним команду:
apt-get установить apache2
Начнется процесс загрузки и установки Apache:
После установки мы можем проверить установку, перейдя в наш браузер и введя IP-адрес, в Debian 8 для проверки нашего IP-адреса мы можем использовать команду ifconfig. В этом случае IP-адрес — 192.168.0.14. При вводе нашего IP в адресную строку, если Apache установлен правильно, мы увидим следующее:
2. Как установить MySQL
Далее мы установим MySQL для доступа к базе данных, для этого выполним следующую команду:
apt-get установить mysql-сервер
Во время процесса установки MySQL мы должны указать пароль пользователя root для MySQL:
Нажмите Принять, и мы должны подтвердить пароль пользователя root. Как только мы завершим этот процесс, мы выполним скрипт конфигурации MySQL, используя следующую команду:
mysql_secure_installation
Мы увидим следующее:
Будет представлен ряд вопросов, которые мы должны настроить в соответствии с нашими потребностями.
3. Как установить PHP
Следующим шагом, который мы выполним, будет установка PHP, для этого мы должны ввести следующую команду:
sudo apt-get установить php5 php-pear php5-mysql
Мы видим, что начинается процесс загрузки и установки PHP:
После установки PHP в Debian 8 мы перезапустим службу Apache, используя следующую команду:
перезапуск службы apache2
Следующее, что мы собираемся сделать, это отредактировать файл конфигурации PHP, чтобы иметь возможность просматривать его в нашем браузере, для этого мы введем следующий маршрут: nano /var/www/info.php. В развернутом файле мы введем следующие значения:
Мы сохраняем изменения, нажимая комбинацию клавиш CTRL + O, и завершаем работу, используя комбинацию CTRL + X. Теперь мы можем снова войти в наш браузер и проверить правильность установки PHP, введем синтаксис //ip_del_server/info.php, там мы увидим всю информацию, связанную с PHP, SQL и другими параметрами.
Таким образом, мы установили нашу LAMP простым и практичным способом в среде Debian 8 . В Apache есть несколько файлов, которые мы можем настроить в соответствии с необходимостью структуры.
Конфигурирование файлов
a2ensite
С помощью этой команды мы можем включить веб-сайт после редактирования файла конфигурации.
a2dissite
С помощью этой команды мы можем отключить сайт, используя файл конфигурации
a2enmod
Эта опция полезна для добавления дополнительных модулей в Apache
a2dismod
Эта опция полезна для удаления дополнительных модулей в Apache
a2query
С помощью этой альтернативы мы можем делать запросы о веб-сайтах, которые в настоящее время включены
Давайте применим эти замечательные утилиты, включенные в LAMP, и максимально используем наш сервер Debian 8.
Заметки о решаемых задачах АйТишников
Установка LAMP-сервера
LAMP-сервер состоит из трёх основных частей: apache-сервер
, php
и MariaDB
(MySQL
).
Сразу же предупрежу: не боимся устанавливать MariaDB, вместо MySQL. Этот сервер баз данных абсолютно идентичен MySQL. Все проекты которые работали на MySQL, будут работать на MariaDB, без изменений и доработок.
Устанавливаем по порядку все три компоненты LAMP-сервера.
Установка Apache
Выполняем в терминале команду
sudo apt install apache2
Проверяем работу сервера в браузере, перейдя на страницу — http://localhost/
Если видим эту страницу приветствия, то отлично — сервер работает.
На этом этапе трудностей не должно возникнуть.
Установка пакетов PHP
Теперь переходим к установке модулей PHP.
Установим основные модули
sudo apt install php libapache2-mod-php php-mysql
Установка пакетов MariaDB
Сервер баз данных устанавливаем командой
sudo apt install mariadb-server
Устанавливаем phpMyAdmin для управления базами данных
Добавляем модули PHP для работы панели управления базами данных (phpMyAdmin)
sudo apt install php-mbstring php-zip php-gd php-curl php-json php-gettext php-xml php-phpseclib
Переходим в домашний каталог
cd
phpMyAdmin нет в репозиториях Debian, по этому качаем архив с официального сайта.
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
Если не установлен распаковщик zip, то устанавливаем
sudo apt install unzip
Распаковываем архив
unzip ~/phpMyAdmin-latest-all-languages.zip
Перемещаем распакованный каталог в каталог файлов конфигурации по умолчанию
Внимание!
Название каталога может отличаться от приведённого в примере. По этому в команде, каталог phpMyAdmin-5.0.2-all-languages
, замените на тот, который был создан при распаковывании архива phpMyAdmin-latest-all-languages. zip
.
sudo mv phpMyAdmin-5.0.2-all-languages/ /usr/share/phpmyadmin
Удаляем скачанный архив
rm ~/phpMyAdmin-latest-all-languages.zip
Настройка phpMyAdmin
Настройка phpMyAdmin состоит из трёх этапов: создание каталога временных файлов, установка нужного владельца на каталог phpmyadmin, создание конфигурационного файла.
Последовательно выполняем следующие команды:
Создаём каталог
sudo mkdir -p /var/lib/phpmyadmin/tmp
Устанавливаем владельца
sudo chown -R www-data:www-data /var/lib/phpmyadmin
Создаём конфигурационный файл config.inc.php
, копируя конфигурационный файл пример
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Редактируем конфигурационный файл в редакторе nano
sudo nano /usr/share/phpmyadmin/config.inc.php
Код в файле можно заменить кодом под кнопкой «config.inc.php», но заменив значения в директивах $cfg['blowfish_secret']
и $cfg['Servers'][$i]['controlpass']
.
Директива $cfg['blowfish_secret']
отвечает за шифрование (вводим парольную фразу не менее 32-х символов). В директиве $cfg['Servers'][$i]['controlpass']
меняем пароль 111111, на свой.
config.inc.php
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * phpMyAdmin sample configuration, you can use it as base for * manual configuration. For easier setup you can use setup/ * * All directives are explained in documentation in the doc/ folder * or at . * * @package PhpMyAdmin */ /** * This is needed for cookie based authentication to encrypt password in * cookie. Needs to be 32 chars long. */ $cfg['blowfish_secret'] = 'qds584fr25vgh454xdf65gt78hgnj524'; /** * Servers configuration */ $i = 0; /** * First server */ $i++; /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false; /** * phpMyAdmin configuration storage settings. */ /* User used to manipulate with storage */ // $cfg['Servers'][$i]['controlhost'] = ''; // $cfg['Servers'][$i]['controlport'] = ''; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = '111111'; /* Storage database and tables */ $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]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; /** * End of servers configuration */ /** * Directories for saving/loading files from server */ $cfg['UploadDir'] = '/var/www/backup'; $cfg['SaveDir'] = '/var/www/backup'; /** * Whether to display icons or text or both icons and text in table row * action segment. Value can be either of 'icons', 'text' or 'both'. * default = 'both' */ //$cfg['RowActionType'] = 'icons'; /** * Defines whether a user should be displayed a "show all (records)" * button in browse mode or not. * default = false */ //$cfg['ShowAll'] = true; /** * Number of rows displayed when browsing a result set. If the result * set contains more rows, "Previous" and "Next". * Possible values: 25, 50, 100, 250, 500 * default = 25 */ //$cfg['MaxRows'] = 50; /** * Disallow editing of binary fields * valid values are: * false allow editing * 'blob' allow editing except for BLOB fields * 'noblob' disallow editing except for BLOB fields * 'all' disallow editing * default = 'blob' */ //$cfg['ProtectBinary'] = false; /** * Default language to use, if not browser-defined or user-defined * (you find all languages in the locale folder) * uncomment the desired line: * default = 'en' */ //$cfg['DefaultLang'] = 'en'; //$cfg['DefaultLang'] = 'de'; $cfg['DefaultLang'] = 'ru'; /** * How many columns should be used for table display of a database? * (a value larger than 1 results in some information being hidden) * default = 1 */ //$cfg['PropertiesNumColumns'] = 2; /** * Set to true if you want DB-based query history.If false, this utilizes * JS-routines to display query history (lost by window close) * * This requires configuration storage enabled, see above. * default = false */ //$cfg['QueryHistoryDB'] = true; /** * When using DB-based query history, how many entries should be kept? * default = 25 */ //$cfg['QueryHistoryMax'] = 100; /** * Whether or not to query the user before sending the error report to * the phpMyAdmin team when a JavaScript error occurs * * Available options * ('ask' | 'always' | 'never') * default = 'ask' */ //$cfg['SendErrorReports'] = 'always'; /** * You can find more configuration options in the documentation * in the doc/ folder or at . */ $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
В нашем файле есть ссылки на таблицы базы данных phpmyadmin. Создаём базу phpmyadmin
sudo mariadb < /usr/share/phpmyadmin/sql/create_tables.sql
Далее
Подключаемся к MariaDB
sudo mariadb
Создаём пользователя pma для phpMyAdmin.
Внимание!
pass
заменяем на пароль, который указывали в директиве $cfg['Servers'][$i]['controlpass']
.
GRANT {select}, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'pass';
Создаём пользователя, от имени которого будем входить в панель phpMyAdmin и создавать базы данных.
Т.к. сервер разворачиваем на локальной машине, то хватит одного пользователя.
Внимание!
user
и pass
меняем на логин и пароль, которыми вы будете пользоваться при авторизации в phpMyAdmin и работе с базами данных.
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION;
Выходим из режима управления БД
exit
Теперь создаём конфигурационный файл phpmyadmin.conf
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Вставляем в него код по кнопкой.
phpmyadmin.conf
# phpMyAdmin default Apache configuration Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php <IfModule mod_php5.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring. func_overload 0 </IfModule> <IfModule mod_php.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> </Directory> # Authorize for setup <Directory /usr/share/phpmyadmin/setup> <IfModule mod_authz_core.c> <IfModule mod_authn_file.c> AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile /etc/phpmyadmin/htpasswd.setup </IfModule> Require valid-user </IfModule> </Directory> # Disallow web access to directories that don't need it <Directory /usr/share/phpmyadmin/templates> Require all denied </Directory> <Directory /usr/share/phpmyadmin/libraries> Require all denied </Directory> <Directory /usr/share/phpmyadmin/setup/lib> Require all denied </Directory>
Выполним активацию конфигурационного файла phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
Конфигурируем Apache2
Создаём каталог для нашего проекта
mkdir /home/user/www/site1
заменить user
на название каталога пользователя.
Создаём каталог для архивов БД
mkdir /home/user/www/backupbd
заменить user
на название каталога пользователя.
Делаем текущего пользователя и его группу владельцем каталога site1
chown -R $USER:$USER /home/user/www/site1
и владельцем каталога backupbd
chown -R $USER:$USER /home/user/www/backupbd
Создаём конфигурационный файл для нашего проекта site1
sudo nano /etc/apache2/sites-available/site1.conf
Копируем и вставляем в него следующий код
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /home/user/www/site1 ServerName site1.loc ErrorLog /home/user/www/site1/error.log CustomLog /home/user/www/site1/access.log combined </VirtualHost>
заменить user
на название каталога пользователя.
Для того, чтобы адрес сайта site1.loc
наш браузер нашёл и обработал, нам нужно внести изменения в файл hosts
.
Открываем файл hosts для редактирования
sudo nano /etc/hosts
Этот файл может иметь следующий вид:
127.0.0.1 localhost 127.0.1.1 HomePC # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
где HomePC
— это имя вашего компьютера.
Приводим его к следующему виду:
127.0.0.1 localhost site1.loc 127.0.1.1 HomePC # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
то есть дописываем в конце первой строки адрес нашего сайта — site1.loc
.
Сохраняем и закрываем файл hosts.
Теперь подключим виртуальный хост site1.loc
, выполнив следующую команду
sudo a2ensite site1.conf
После произведённых настроек перезагрузим конфигурацию сервера Apache
sudo systemctl reload apache2
Для перезапуска сервера Apache используем следующую команду
sudo systemctl restart apache2
Включаем обработку .
htaccess и вывод ошибок php
Включаем обработку .htaccess
Открываем файл apache2.conf
sudo nano /etc/apache2/apache2.conf
Находим такую часть кода
<Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
и ниже вставляем свою директиву
<Directory /home/user/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
заменить user
на название каталога пользователя.
Сохраняем файл и закрываем.
Включаем mod_rewrite
выполнив следующую команду
sudo a2enmod rewrite
Вывод ошибок php
Открываем файл php.ini
sudo nano /etc/php/7.3/apache2/php.ini
В нём последовательно находим строки содержащие следующие инструкции:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
заменяем на
error_reporting = E_ALL
находим
display_errors = Off
заменяем на
display_errors = On
находим
display_startup_errors = Off
заменяем на
display_startup_errors = On
Сохраняем файл и закрываем его.
Можно начинать работать со своим проектом.
Из этой категории
Установка LAMP (Linux + Apache + MySQL + PHP) на OrangePi One / Sandbox / Habr
Установка LAMP (Linux + Apache + MySQL + PHP) на OrangePi One
0.
Предыстория
Недавно столкнулся с такой проблемой: По раз 10-15 приходилось переустанавливать прошивку на Orange Pi One т.к. Mysql и Phpmyadmin не хотели дружить. Долго искал годный мануал на данную тему и так не нашел. Данный мануал собрал с нескольких сайтов и чуток доработан моим корявым русским.
1. Установка прошивки
Скачиваем образ Armbian Ubuntu 18.04+ для OrangePi One с официального сайта
При помощи утилиты Rufus для Windows устанавливаем прошивку на microSD
При первом старте логин ‘root’ а пароль ‘1234’.
Дальше в принудительном порядке вы поменяете пароль и будет создание нового пользователя
2. Установка LAMP(Linux + Apache + MySQL + PHP)
Подключаемся к нашей OrangePi при помощи SSH/HDMI/UART
Устанавливаем Apache + PHP
$ apt-get install apache2 php libapache2-mod-php
Делаем рестарт Apache
$ service apache2 restart
Чтобы включить Htaccess нужно изменить конфиг файл:
$ nano /etc/apache2/sites-enabled/000-default
меняем везде строку
AllowOverride None
на
AllowOverride ALL
Установка MySQL-сервера
$ apt-get install mysql-server mysql-client php-mysql
После установки пароля для root пользователя жмем Enter и ждем окончания установки.
Установка PHPMYADMIN
$ apt-get install phpmyadmin
выбивает такое окноThe phpmyadmin package must have a database installed and
configured before it can be used. This can be optionally
handled with dbconfig-common.
If you are an advanced database administrator and know
that you want to perform this configuration manually, or
if your database has already been installed and
configured, you should refuse this option. Details on what needs to be
done should most likely be provided in
/usr/share/doc/phpmyadmin.
Otherwise, you should probably choose this option.
Есть кнопка ОК, но подождите минуты 2 чтобы все было хорошо ( не знаю почему, но у меня с 5того раза получилось)
Оказалось, что «password» в MySQL 5.7 переименовали в «authentication_string». Пришлось модифицировать запрос:
SELECT host, user, authentication_string from mysql.user;
Обновляем пароль root
UPDATE mysql.user SET authentication_string=PASSWORD('your_new_password')
WHERE User='root';
Создать нового пользователя с административными правами, где ‘pmauser’ — имя аккаунта
$ mysql -p -u root
CREATE USER 'pmauser'@'%' IDENTIFIED BY 'password_here';
GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;
Сделаем помощь Apache, подключив конфигурации для веб-сервера от phpmyadmin.
Для этого выполним:
$ nano /etc/apache2/apache2.conf
И в самый конец файла вставим:
Include /etc/phpmyadmin/apache.conf
Жмем [Ctrl]+[X] затем Y проверяем путь и подтверждаем Enter.
В PHPMYADMIN может выбить ошибка из-за новой версии
Ошибка
(Warning in ./libraries/sql.lib.php#601
count(): Parameter must be an array or an object that implements Countable
Backtrace
./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse(
array,
boolean true,
string 'alternativegirls',
string 'tgp_photo',......)
В строке 613 функция count всегда принимает значение true, поскольку после нее закрывающая скобка отсутствует $analyzed_sql_results[‘select_expr’]. Выполнение приведенных ниже замен решает эту проблему, тогда вам нужно будет удалить последние закрывающие скобки в строке 614, поскольку теперь они являются дополнительными скобками
Редактировать файл:
$ nano /usr/share/phpmyadmin/libraries/sql.lib.php
Заменить:
(count($analyzed_sql_results['select_expr'] == 1)
На: (Переместить скобку перед == )
(count($analyzed_sql_results['select_expr']) == 1
$mysql -u root -p //Команда для входа в БД где 'root' - логин
exit; //Выход из БД
$service mysql restart //Перезапуск БД
На этом установка LAMP на OrangePi One завершена.
Возможно кому-нибудь данный мануал поможет
Как установить и настроить LAMP-сервер в Ubuntu
Операционные системы Linux предлагают своим пользователям большие возможности для создания веб-сайтов, их хранения на сервере и тестирования. Многие наверняка слышали, что правильная настройка Apache и MySQL позволяет удобно работать с серверами. Пора познакомиться и с LAMP, которая их всех объединяет, а также понять, как установить и настроить LAMP-сервер в Ubuntu.
Установка LAMP позволяет создать web-сервер.
Что такое LAMP?
LAMP — это не программа, как можно подумать сперва, и не сервер. За этой аббревиатурой скрывается стек или комплекс программ серверного назначения: Apache, MySQL, PHP. Отсюда и название — первые буквы каждой из этих программ. Первая буква взята от Linux.
Подробнее о компонентах.
- Apache — это свободный HTTP-сервер.
- MySQL — мощная, также бесплатная система управления базами данных. Используется на многих сайтах.
- PHP — язык программирования. На нём очень часто пишут различные веб-приложения.
Всё это ПО полезно и практически незаменимо для размещения веб-сайтов в сети. Осталось научиться устанавливать его и пользоваться.
Установка LAMP
ЛАМП устанавливается несколькими способами. Так как это комплекс программ, то можно загрузить каждую из них по отдельности, но удобнее сделать это вместе. Для этого проще воспользоваться Tasksel:
sudo tasksel install lamp-server
Tasksel — специальный инструмент, установленный на Убунту, с помощью которого в систему легко грузить различные программные пакеты. Во время установки система попросит ввести пароль для MySQL. Необходимо сделать это.
Удаление
Удалить стек полностью также можно одной командой:
sudo tasksel remove lamp-server
Произойдёт установка всех компонентов: PHP 7, Apache, MySQL. Для более удобной работы программы добавляются в автозагрузку. Если вы хотите это изменить, сделайте это через настройки: Система — Параметры — Запускаемые приложения. Там просто удалите компоненты ЛАМПа.
Установка и настройка
Всё-таки большинству, наверное, хотелось бы сразу же получить хотя бы тестовый, но настроенный рабочий сервер. Тогда следуем дальнейшим инструкциям.
- Устанавливаем необходимые пакеты вторым способом:
sudo apt-get install apache2 mysql-server php5 phpmyadmin - Придумываем и вводим пароль суперпользователя для того, чтобы установить MySQL на Ubuntu, затем делаем это повторно.
- Высвечивается окно настройки phpmyadmin. Здесь нужно указать, что использоваться будет Apache
- После нужно будет прочитать информацию в паре окон и подтвердить настройку БД. dbconfig-common — специальный вспомогательный пакет, который используется как на Debian, так и на Ubuntu.
- Система снова попросит нас ввести пароль. Это нужно сделать три раза: для совмещения MySQL с phpmyadmin, для создания базы данных и в подтверждение.
- Проверяем: работает ли сервер. Вводим в адресной строке браузера «localhost». Должно появиться сообщение: «It works!».
- Теперь вводим «localhost/phpmyadmin» в строке, авторизуемся. Логин: root, пароль тот же, что и вводимый ранее.
Настраиваем сервер и добавляем веб-сайт
Настройка сервера LAMP — наиболее важная часть, так как установка MySQL, Apache, PHP 7 на Ubuntu не представляет никакой сложности. Далее нужно будет поработать с программным кодом.
Делаем ссылку на phpmyadmin:
sudo ln -s /etc/phpmyadmin /var/www
Открываем, а затем редактируем конфигурацию сервера:
sudo nano /etc/apache2/apache2.conf
Добавляем в конец строку:
ServerName localhost:80
Открываем файл hosts:
sudo nano /etc/hosts
Добавляем строку:
127. 0.1.1 testsite.ru
Делаем файл конфигурации нового сайта:
‹VirtualHost *:80›
ServerAlias testsite.ru www.testsite.ru
DocumentRoot /home/server/testsite.ru
‹Directory home/server/testsite.ru/›
AllowOverride All
‹/Directory›
‹/VirtualHost›
Помещаем этот файл с root-правами сюда: /etc/apache2/sites-available/
Активируем сайт:
sudo a2ensite testsite.ru
Перезапускаем сервер:
sudo /etc/init.d/apache2 restart
Создание страницы для веб-сайта
Делаем первую страницу — файл index.php в папке с сайтом (home/server/testsite.ru).
Вводим туда:
‹?
echo ‘Привет!!!’;
?›
Вообще, ввести можно что угодно, нужно это лишь для проверки работоспособности сервера.
Открываем через браузер нашу страничку: вводим веб-адрес в строку.
После этого мы должны увидеть заветное «Привет!!!». Если это произошло, то всё настроено правильно. Теперь в этой папке можно расположить полноценный веб-сайт, который будет тестироваться на LAMP. Папку, как и адрес сайта, конечно же, можно менять.
Теперь вы знаете, что установка и настройка MySQL, Apache, PHP (LAMP) на Ubuntu не так уж страшны, как кажутся изначально. Это лишь базовые возможности софта. Со временем вы научитесь использовать всю мощь программ.
Специальные образы Облачных VDS для быстрого развертывания серверов LAMP
В данной статье рассмотрены специально подготовленные LAMP-образы для установки на Облачных VDS и возможности быстрого запуска хостинга.
1. Общее описание готовых образов
2. Добавление сайтов
3. Работа с MySQL (MariaDB)
4. Настройка PHP и установка расширений
5. Запуск Django с использованием uWSGI
Стек LAMP (Linux/apache/mysql/php) является наиболее полулярным среди разработчиков набором технологий для
создания сайтов. Исходя из имеющегося у нас опыта мы разработали несколько готовых образов VDS, где установка LAMP происходит автоматически.
Общим принципом при разработке этих образов было
обеспечение однотипности настроек, чтобы сайты, размещенные на одном VDS легко перемещались на другой VDS, даже
базирующийся на другом образе (другом наборе базового ПО) и все основные задачи по администрированию любого из VDS на
базе любого из предлагаемых образов выполнялись однотипно. Мы так же решили, что крайне важно, чтобы добавление новых
сайтов на сервер было не сложнее, чем просто создание папки с именем сайта.
Образы LAMP ubuntu мы создали на базе дистрибутивов Ubuntu Precise Pangolin и Ubuntu Trusty Tahr, Debian Wheezy со следующим набором ПО:
- Nginx + Apache2 + PHP 5.4 (FastCGI) + MariaDB 5.5 + phpMyAdmin + sftp
- Nginx + Apache2 + PHP 5.4 (mod_php) + MariaDB 5.5 + phpMyAdmin + sftp
- Nginx + PHP 5.4 (php-fpm) + MariaDB 5.5 + phpMyAdmin + sftp
1. Общее описание готовых образов
Все образы построены исходя из того, чтобы главным и единственным пользователем в системе, от имени которого работают
скрипты и выполняются все остальные действия, был пользователь web
. Аналогично принятому в Ubuntu порядку вещей, в
образах на базе Debian прямая работа от имени root не приветствуется (заблокирована) и вместо этого пользователю web
через sudo
предоставлена возможность выполнять любые команды с привилегиями суперпользователя. Таким образом, для
входа на вновь созданный VDS по ssh необходимо выполнить команду:
$ ssh web@ip-address-of-vds
Кроме входа по ssh так же поддерживается протокол sftp. Подключение производится с тем же логином web
и либо паролем,
который был сгенерирован при создании VDS, либо с помощью ключа, так же указанного при создании VDS.
После входа в систему вы окажетесь в папке /var/www/web
, которая является основной для наших образов VDS. Здесь вы
найдете папку sites
— это папка, в которой будут размещаться ваши сайты. Чтобы добавить новый сайт, достаточно внутри
папки sites
создать подпапку с именем нового сайта без префикса www.
. Подробнее об этом ниже.
Логи посещения размещенных у вас сайтов apache будет писать в папку /var/log/apache2
, а nginx, если установлен, в
папку /var/log/nginx
. В случае, если у PHP-скриптов возникнут ошибки в работе, информация о них будет писаться в файл
/var/www/web/php-errors.log
2. Добавление сайтов
Добавление сайтов — наиболее часто востребованная операция для массового виртуального хостинга, поэтому мы постарались
максимально ее упростить. Для добавления нового сайта mycompany.ru
на ваш сервер вам потребуется сделать два простых
действия:
- В папке
/var/www/web/sites
нужно создать подпапку с именемmycompany.ru
, то есть с именем размещаемого домена без
www.
. Внутрь этой папки в дальнейшем нужно будет выкладывать скрипты, относящиеся к этому сайту. - Через редактор DNS у вашего провайдера, предоставляющего вам услугу парковки домена в DNS, необходимо будет добавить
A-записи, указывающие на ip-адрес вашего VDS: одну для имениmycompany.ru
, другую дляwww.mycompany.ru
.
Добавление алиаса (альтернативного имени для вашего сайта) является не менее простой операцией. Если к сайту
mycompany.ru
нужно добавить алиас www.mycompany.ru
, то потребуется всего два действия:
- Создать символьную ссылку (symlink):
cd /var/www/web/sites && ln -s mycompany.ru www.mycompany.ru
- Создать A-записи в DNS, указывающие на ip-адрес вашего сервера: для имени c
www.
и безwww.
Напоминаем вам, что сервис парковки доменов в dns мы предоставляем для всех наших клиентов бесплатно и без ограничений.
Инструкции по делегированию доменов на наши ns-сервера приведены по ссылке.
3. Работа с MySQL (MariaDB)
Для вновь созданных VDS пароль доступа пользователем root в MySQL генерируется случайным образом. Узнать пароль можно
командой
sudo cat /root/.my.cnf
Если же вы хотите поработать с MySQL из консоли, то достаточно будет запустить
команду sudo -H mysql
без параметров и вы сразу попадете в консоль MySQL без необходимости вводить пароль. Если такая
настройка системы вас не устраивает, смело можете удалить файл .my.cnf
, предварительно сохранив себе записанный в нем
пароль.
phpMyAdmin доступен на вашем сервере по ссылке http://mycompany.ru/mysql
, где mycompany.ru — адрес любого вашего
сайта, размещенного на этом сервере.
Файл настроек MySQL расположен в стандартном месте, но для его редактирования вам потребуются права суперпользователя:
sudo nano /etc/mysql/my.cnf
Чтобы изменения вступили в силу, необходимо перезапустить MySQL:
sudo service mysql restart
4. Настройка PHP и установка расширений
Поскольку в системе установлен стандартный PHP из репозиториев Debian/Ubuntu, настройка PHP и установка расширений
производится стандартным для debian based дистрибутивов образом. Файл php.ini
собирается из нескольких составных
частей: из основного php.ini
и из содержимого директории conf.d
. Для FastCGI версии PHP настройки берутся из
папки /etc/php5/cgi
, для mod_php — из папки /etc/php5/apache2
, для CLI версии (это /usr/bin/php
, то есть та версия
php, которая используется для заданий cron и других задач, выполняемых в консоли) — /etc/php5/cli
. Версия php-fpm,
соответственно, использует php.ini
из папки /etc/php5/fpm
.
Вы можете легко посмотреть какие расширения php установлены в вашей системе, выполнив в консоли сервера команду:
$ dpkg -l | grep php
Посмотреть список доступных расширений php вы можете по команде:
$ apt-cache search php5
Перед самым первым вызовом команд apt-cache/apt-get
на свежеустановленной системе не забудьте выполнить sudo apt-get
.
update
Установить требуемое расширение из списка очень просто. Допустим, мы хотим добавить в систему акселератор XCache.
Соответствующий пакет будет называться php5-xcache
, а команда по его установке, требующая привелегий
суперпользователя, будет такая:
$ sudo apt-get install php5-xcache
Поскольку php начиная с версии 5.4 требует явного указания временной зоны в настройках (date.timezone
), по-умолчанию
устанавливается временная зона UTC
. Эта настройка задается в файле /etc/php5/apache2/conf.d/local.ini
. Вам
необходимо изменить ее в соответствии со своими предпочтениями.
В любом случае, если у вас возникают вопросы по работе вашей системы на базе наших готовых образов, вы всегда можете
обратиться в нашу тех.поддержку.
5. Запуск Django с использованием uWSGI
Django (Джанго) это свободный фреймворк, позволяющий быстро и качественно разрабатывать
динамические веб-приложения на языке Python.
Рекомендации по запуску Django подойдут для всех LAMP образов (LAMP, LAMP с mod_php, nginx + php-fpm) как на основе
Debian, так и Ubuntu.Установка выполняется таким образом, чтобы не нарушать работу сайтов, расположенных в /var/www/
Действия на сервере выполняются от имени пользователя root.
Показать инструкции по установке
5.1 Установка пакетов и запуск uWSGI
Установим необходимые для работы пакеты, а так же выберем версию uwsgi из pip как версию по-умолчанию:
apt-get update && apt-get install -y python-pip python-dev uwsgi-plugin-python uwsgi && pip install virtualenv virtualenvwrapper uwsgi && update-alternatives --install /usr/bin/uwsgi uwsgi /usr/local/bin/uwsgi 80
На установку потребуется 2-3 минуты и установленные пакеты займут порядка 300 Мб на диске.
Создадим пользователя в системе, переключимся на него, а так же
добавим переменные в его системный профиль
useradd -s /bin/bash -m -p $(pwgen -1 -N 1) project1 && su - project1 -c 'echo "export WORKON_HOME=~/Env" >> ~/. bashrc && echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc' && su - project1
Создадим виртуальное окружение, установим в нем django и создадим наш проект
cd ~ && mkvirtualenv firstsite && pip install django && django-admin.py startproject firstsite
Для удобства перечитывания проекта создадим файл
touch ~/firstsite/touch_reload
В дальнейшем достаточно будет выполнить эту же команду от имени пользователя project1 чтобы передать команду uwsgi
перечитать конфигурацию проекта. Это может быть очень удобно, когда разработкой проекта занимается отдельный специалист
без root доступа к серверу — администратору сервера не нужно будет каждый раз заходить от пользователя root для
перезапуска uwsgi.
Вернемся к сессии пользователя root воспользовавшись сочетанием клавиш Ctrl + D
.
Теперь создадим конфигурационный файл uwsgi для нашего проекта
mcedit /etc/uwsgi/apps-enabled/firstsite.ini
И скопируем в него (вносить изменения в скопированный текст не требуется):
[uwsgi]
project = firstsite
userhomedir = /home/project1
chdir = %(userhomedir)/%(project)
home = %(userhomedir)/Env/%(project)
module = %(project).wsgi:application
processes = 4
threads = 2
chown-socket = www-data
uid = project1
gid = project1
vacuum = true
touch-reload = %(userhomedir)/%(project)/touch_reload
buffer-size = 8192
listen = 128
harakiri = 300
Для сохранения в mcedit достаточно нажать F2 на клавиатуре.
Запустим uwsgi сервер
/etc/init.d/uwsgi start
5.2 Создание конфигурационного файла для nginx
Нам потребуется выяснить IP адрес сервера. Его можно посмотреть выполнив команду
hostname -I
Создадим сам конфигурационный файл для nginx
mcedit /etc/nginx/sites-available/firstsite
И заполним его следующим текстом
server {
listen serverip:80;
server_name sitenameru;
location = /favicon. ico { access_log on; log_not_found off; }
location /static/ {
root /home/project1/firstsite;
}
location / {
include uwsgi_params;
uwsgi_pass unix:///run/uwsgi/app/firstsite/socket;
}
}
В этом конфигурационном файле потребуется изменить serverip
на ip адрес Вашего сервера, а sitenameru
— на имя
домена, по которому будет открываться ваш проект.
Активируем только что созданный конфигурационный файл и передадим сигнал nginx для перечитывания конфигурации
ln -s /etc/nginx/sites-available/firstsite /etc/nginx/sites-enabled/ && nginx -s reload
Готово! Если А запись в DNS для домена sitenameru
указывает на IP адрес сервера, то ваш проект уже должен быть
доступен по адресу sitenameru
.
5.3 Оптимизация отображения статических файлов
Когда проект будет загружен и потребуется оптимизировать статические файлы, то достаточно будет выполнить команды
su - project1
workon firstsite
Добавим в конец файла firstsite/firstsite/settings.py упоминание о расположении статических файлов
echo 'STATIC_ROOT = os.path.join(BASE_DIR, "static/")' | tee -a ~/firstsite/firstsite/settings.py
Запустим скрипт сбора статических файлов
~/firstsite/manage.py collectstatic
Для начала работы скрипта потребуется напечатать yes
.
Как установить Apache 2.4, MariaDB 10.3 и PHP 7.2 в Ubuntu 18.04
В этой статье вы узнаете, как настроить современный стек LAMP, установив последние стабильные выпуски Apache 2.4 и MariaDB 10.3 на Ubuntu 18.04.
Примечание: Ubuntu 18.04 поставляется с уже установленным PHP 7.2, поэтому нам нужно будет установить только некоторые необходимые пакеты.
Предпосылки
Современный экземпляр сервера Ubuntu 18.04 x64
Пользователь sudo.
Создание пользователя sudo
Сначала обновите вашу систему:
apt-get update -y
apt-get upgrade -y
Далее создайте нового пользователя:
adduser user
Введите и введите новый безопасный пароль для этого пользователя, затем либо установите информацию о пользователе, либо оставьте поля пустыми и нажмите, ENTER чтобы использовать значения по умолчанию.
Добавьте пользователя в sudo группу:
usermod -aG sudo user
Установка Apache 2.4
Установите последнюю стабильную версию Apache 2.4:
sudo apt-get install apache2 -y
Используйте следующую команду, чтобы подтвердить установку и проверить версию Apache:
apache2 -v
Вывод будет выглядеть следующим образом:
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2018-10-03T14:41:08
В производственной среде вы захотите удалить страницу приветствия Ubuntu Apache по умолчанию:
sudo mv /var/www/html/index.html /var/www/html/index.html.bak
В целях безопасности вы должны запретить Apache /var/www/html предоставлять посетителям файлы и каталоги в корневом веб-каталоге:
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Примечание. В соответствии с вашими конкретными требованиями вы можете настроить дополнительные параметры в этом файле позже.
Запустите службу Apache и запустите ее при загрузке системы:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
Установка MariaDB 10.3
Сначала установите software-properties-common, если необходимо:
sudo apt-get install software-properties-common
Затем импортируйте ключ gpg:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Добавьте систему подходящего репо:
sudo add-apt-repository 'deb [arch=amd64] http://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic main'
Обновить апт:
sudo apt update -y
Теперь вы можете установить MariaDB:
sudo apt install -y mariadb-server mariadb-client
В процессе установки автоматически откроется мастер настройки пакета MariaDB и попросит вас установить новый пароль для root пользователя MariaDB. Выберите безопасный пароль и повторите его, чтобы подтвердить его.
Установив MariaDB, вы можете подтвердить установку:
mysql -V
Вывод будет похож на следующее:
mysql Ver 15.1 Distrib 10.3.10-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Запустите и включите сервис MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Безопасная установка MariaDB:
sudo /usr/bin/mysql_secure_installation
Первым предложением будет ввести пароль root, который вы только что установили. Затем он спросит, хотите ли вы изменить пароль. Вы можете ввести n и нажать ENTER, если вы не хотите сменить пароль.
Во время интерактивного процесса просто нажмите ENTER для выбора параметров по умолчанию, так как они самые безопасные.
MariaDB 10.3 теперь надежно установлен в вашей системе. В будущем вы также можете настроить назначенных пользователей и базы данных для своих веб-приложений. Войдите в оболочку MySQL как root:
mysql -u root -p
Введите пароль root MariaDB, который вы установили ранее при появлении запроса.
Создайте базу данных MariaDB webapp, пользователя webappuser базы данных и пароль пользователя базы данных yourpassword:
CREATE DATABASE webapp;
CREATE USER 'webappuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON webapp.* TO 'webappuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
При необходимости вы можете настроить MariaDB, просмотрев и отредактировав основной файл конфигурации MariaDB /etc/mysql/my.cnf:
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
sudo vi /etc/mysql/my.cnf
Не забудьте перезапустить сервис MariaDB, если вы сделаете какие-либо изменения в этом файле:
sudo systemctl restart mariadb.service
Установка пакетов PHP 7.2
Обязательно установите эти пакеты после установки Apache:
sudo apt-get install -y php libapache2-mod-php7. 2 php7.2-cli php7.2-common php7.2-mbstring php7.2-gd php7.2-intl php7.2-xml php7.2-mysql php7.2-zip
Настройте брандмауэр UFW
По умолчанию брандмауэр UFW в Ubuntu 18.04 неактивен. Вы должны включить брандмауэр UFW для повышения безопасности. Сначала проверьте список приложений:
sudo ufw app list
Далее установите ваши правила:
sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
Наконец, запустите UFW:
sudo ufw enable
Поздравляем, теперь у вас есть стек LAMP, работающий в вашей системе Ubuntu 18.04. Теперь вы можете развернуть свое собственное веб-приложение на основе стека LAMP.
H Как установить LAMP (Apache, MySQL, PHP) в Debian 9
Сервер LAMP — это комбинация веб-серверов Apache, MySQL и PHP на сервере Linux. Он широко используется для размещения веб-сайтов на базе PHP и MySQL во всемирной паутине. Это руководство создано, чтобы помочь администраторам настроить стек LAMP в Debian 9. В этом руководстве мы устанавливаем Apache и MySQL из базовых репозиториев Debian 9. Поможем добавить сторонний репозиторий для установки PHP.
Шаг 1. Предварительные требования
Войдите на свой сервер Debian 9, используя привилегии sudo или пользователя root в командной строке.
ssh [адрес электронной почты защищен]
После входа в систему Debian обновите текущие пакеты до последней доступной версии.
sudo apt-get update sudo apt-get upgrade
Кроме того, установите следующие пакеты в вашей системе, необходимые для выполнения команд, следующих в этом руководстве.
sudo apt установить ca-сертификаты apt-transport-https
Шаг 2. Установка Apache2
Базовые репозитории Debian 9 содержат пакеты Apache 2.4. Вы можете просто установить пакеты Apache2, выполнив следующие команды в своей системе Debian 9.
sudo apt-get install apache2
Шаг 3. Установка MySQL
Базовый репозиторий Debian 9 содержит MariaDB (замена MySQL) в качестве сервера базы данных по умолчанию. Если вы согласны использовать MariaDB, выполните команды для установки, иначе следуйте инструкциям по установке сервера MySQL.
sudo apt-get install mysql-server
Шаг 4. Установка PHP
Системные репозитории Debian 9 по умолчанию содержат старую версию PHP. Чтобы установить последнюю версию PHP, добавьте в свою систему сторонний PPA.Выполните приведенную ниже команду, чтобы добавить PPA в вашу систему.
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key добавить - sudo echo "deb https://packages.sury.org/php/ stretch main" | тройник /etc/apt/sources.list.d/php.list
Затем установите последнюю версию PHP в Debian 9.
sudo apt update sudo apt установить php php-mysql libapache2-mod-php
Шаг 5 — Проверка установки
Чтобы проверить установку LAMP в Debian 9, создайте сценарий PHP с функцией phpinfo () в корне документа Apache.Для этого отредактируйте файл /var/www/html/info.php в вашем любимом текстовом редакторе, добавьте содержимое ниже в файл и сохраните его.
Теперь откройте файл info.php в веб-браузере, используя IP-адрес вашей системы.
Как установить PHP в Debian 10 Linux
PHP — один из наиболее часто используемых языков программирования на стороне сервера.
В этом руководстве мы обсудим, как установить PHP в Debian 10, Buster. Мы также покажем вам, как интегрировать PHP с Nginx и Apache.
Debian 10 поставляется с PHP версии 7.3, которая поддерживается наиболее популярными CMS и фреймворками, такими как WordPress, Magento и Laravel.
Предварительные требования #
Чтобы иметь возможность устанавливать пакеты, вы должны войти в систему как пользователь root или пользователь с привилегиями sudo
.
Установка PHP с Apache #
Если вы используете Apache
в качестве веб-сервера для установки PHP и модуля Apache PHP выполните следующие команды:
sudo apt update
sudo apt install php libapache2-mod-php
После завершения установки перезапустите Apache, чтобы загрузить модуль PHP:
sudo systemctl restart apache2
Установка PHP с Nginx #
В отличие от Apache, Nginx
не имеет встроенной поддержки обработки файлов PHP.Вам нужно будет использовать службу PHP FPM («менеджер процессов fastCGI») для обработки файлов PHP.
Установите пакеты PHP и PHP FPM, выполнив следующую команду:
sudo apt update
sudo apt install php php-fpm
После установки пакетов служба PHP FPM запустится автоматически.
Теперь вы можете отредактировать блок сервера Nginx своего домена и добавить следующие строки, чтобы Nginx мог обрабатывать файлы PHP:
server {
#.. . другой код
расположение ~ \ .php $ {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /run/php/php7.3-fpm.sock;
}
}
Сохраните файл конфигурации и перезапустите службу nginx.
для новой конфигурации вступят в силу:
sudo systemctl restart nginx
Установка расширений PHP #
Вы можете расширить функциональные возможности ядра PHP, установив дополнительные расширения. Расширения PHP доступны в виде пакетов и могут быть легко установлены, набрав:
sudo apt install php- [extname]
Например, чтобы установить расширения MySQL и GD PHP, вы должны выполнить следующую команду:
sudo apt install php-mysql php-gd
При установке расширений PHP не забудьте перезапустить Apache или службу PHP FPM, в зависимости от ваших настроек.
Тестирование обработки PHP #
Чтобы проверить, правильно ли настроен ваш веб-сервер для обработки PHP, создайте новый файл с именем info.php внутри каталога / var / www / html
со следующим кодом:
/ var / www / html / info.php
Сохраните файл, откройте выбранный вами браузер и посетите http: //your_server_ip/info.php
Функция phpinfo
распечатывает информацию о вашей конфигурации PHP, как показано на изображении ниже :
Заключение #
Мы показали вам, как установить PHP в Debian 10 и настроить ваш веб-сервер для обработки файлов PHP.
Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии.
Настройка сервера Debian 10 LAMP для веб-разработки PHP — подсказка для Linux
В этой статье я покажу вам, как настроить сервер LAMP (Linux, Apache, MySQL / MariaDB, PHP) для веб-разработки PHP. Я собираюсь использовать недавно выпущенный дистрибутив Debian 10 Buster GNU / Linux для демонстрации. Итак, приступим.
Обновление кэша репозитория пакетов APT:
Сначала обновите кеш репозитория пакетов APT с помощью следующей команды:
Кэш репозитория пакетов APT должен быть обновлен.
Установка и настройка MySQL / MariaDB:
Теперь установите серверные и клиентские пакеты MariaDB из официального репозитория пакетов Debian 10 с помощью следующей команды:
$ sudo apt установить mariadb-server mariadb-client
Чтобы подтвердить установку, нажмите Y , а затем нажмите
Менеджер пакетов APT загрузит и установит все необходимые пакеты.
На этом этапе будут установлены серверные и клиентские пакеты MariaDB.
Теперь проверьте, запущена ли служба mariadb , с помощью следующей команды:
$ sudo systemctl статус mariadb
Как видите, служба mariadb работает. Также позволяет автоматически запускаться при загрузке системы.
Если в любом случае служба mariadb не запущена, запустите службу следующей командой:
$ sudo systemctl start mariadb
Теперь выполните следующую команду, чтобы установить пароль root для MariaDB:
$ sudo mysql_secure_installation
Нажмите
Теперь нажмите Y , а затем нажмите
Теперь введите свой пароль root и нажмите
Введите пароль root еще раз и нажмите
Нажмите Y , а затем нажмите
Если вы не хотите разрешать удаленный вход root , нажмите Y .В противном случае нажмите N . Затем нажмите
Теперь нажмите Y и нажмите
Теперь нажмите Y , а затем нажмите
MariaDB должна быть настроена.
Создание новых пользователей и баз данных MySQL / MariaDB:
Теперь вам нужно создать нового пользователя и базу данных для вашего веб-приложения.
Войдите в оболочку MariDB с помощью следующей команды:
Теперь введите пароль MariaDB root , который вы уже установили, и нажмите
Войдите в систему.
Теперь создайте базу данных app1 со следующим оператором SQL:
Теперь создайте нового пользователя (скажем, shovon ), установите пароль для пользователя (скажем, 123 ) и предоставьте пользователю разрешение на использование базы данных app1 со следующим оператором SQL:
ПРЕДОСТАВИТЬ ВСЕ НА app1.* TO ‘shovon’ @ ‘localhost’, ОПРЕДЕЛЕННЫЙ ‘123’;
Теперь очистите права MariaDB, чтобы изменения вступили в силу следующим образом:
Теперь выйдите из оболочки MariaDB следующим образом:
Установка веб-сервера Apache и PHP:
Теперь установите веб-сервер Apache 2 и PHP с помощью следующей команды:
$ sudo apt установить apache2 php
Теперь нажмите Y , а затем нажмите
Веб-сервер Apache 2 и PHP должны быть установлены.
Теперь проверьте, запущена ли служба apache2 , с помощью следующей команды:
$ sudo systemctl status apache2
Как видите, служба apache2 работает. Кроме того, позволяет автоматически запускаться при загрузке системы.
Если в любом случае служба apache2 не запущена, то вы можете запустить ее вручную следующим образом:
$ sudo systemctl start apache2
Установка расширений PHP:
Официальный репозиторий пакетов Debian 10 содержит множество предварительно упакованных расширений PHP.
Вы можете вывести список всех доступных расширений / библиотек PHP с помощью следующей команды:
Должно быть указано имя пакета всех расширений PHP, включая их номер версии и краткое описание. Это очень длинный список. Таким образом, может потребоваться некоторое время, чтобы найти то, что вы ищете таким образом.
Чтобы установить наиболее распространенные расширения / библиотеки PHP, выполните следующую команду:
$ sudo apt install php-curl php-gd php-mbstring php-mysql php-zip
php-json php-xml
Теперь нажмите Y , а затем нажмите
Должны быть установлены общие расширения PHP.
После установки расширений PHP перезапустите веб-сервер Apache следующим образом:
$ sudo systemctl перезапуск apache2
Включение / отключение модулей Apache:
Веб-сервер Apache поставляется с множеством модулей. Вы можете включать или отключать их по своему усмотрению.
Чтобы вывести список всех доступных модулей Apache 2, выполните следующую команду
$ ls / etc / apache2 / mods-доступные
Как видите, перечислены все доступные модули Apache 2.
Чтобы включить модуль (скажем, , перезаписать ), выполните следующую команду:
Не забудьте перезапустить веб-сервер Apache 2, если вы включаете / отключаете модули Apache 2.
Чтобы перезапустить веб-сервер Apache 2, выполните следующую команду:
$ sudo systemctl перезапуск apache2
Чтобы вывести список всех включенных / активных модулей Apache 2, выполните следующую команду:
Должны быть перечислены все включенные / активные модули Apache 2.
Если вы решили отключить активированный модуль, используйте команду a2dismod следующим образом:
$ sudo a2dismod moduleName
Изменение пользователя Apache Run:
Пользователь запуска Apache по умолчанию в Debian 10 — www-data , а корневой веб-каталог по умолчанию — / var / www / html . Таким образом, как обычный пользователь, вы не сможете создавать файлы / каталоги или изменять существующие файлы / каталоги в корневом веб-каталоге. Когда вы настраиваете сервер LAMP для разработки, это не то, что вам нужно.Чтобы решить эту проблему, вы должны изменить пользователя запуска Apache на пользователя, входящего в систему, и изменить владельца и группу веб-корневого каталога / var / www / html на пользователя, входящего в систему.
Чтобы изменить пользователя запуска Apache, отредактируйте файл конфигурации / etc / apache2 / envvars с помощью следующей команды:
$ судо нано / и т.д. / apache2 / envvars
Необходимо изменить переменные среды APACHE_RUN_USER и APACHE_RUN_GROUP .
Теперь установите переменные среды APACHE_RUN_USER и APACHE_RUN_GROUP на имя пользователя для входа в систему (вывод команды whoami ).По завершении сохраните файл, нажав
Теперь измените владельца и группу каталога / var / www / html на имя пользователя, вошедшего в систему, с помощью следующей команды:
$ судо чоун -Rf $ (whoami): $ (whoami) / var / www / html
Теперь перезапустите веб-сервер Apache 2 с помощью следующей команды:
$ sudo systemctl перезапуск apache2
Тестирование сервера LAMP:
Я создал 2 PHP скрипта index.php и phpinfo.php в корневом веб-каталоге / var / www / html .
Содержание index.php :
php
$ host = «localhost»;
$ user = «shovon»;
$ pass = «123»;
$ db = «приложение1»;
попробуйте {
$ conn = new PDO («mysql: host = $ host; dbname = $ db», $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
echo «Подключено успешно»;
} catch (PDOException $ e) {
echo «Ошибка подключения:».$ e-> getMessage ();
}
?>
Содержимое phpinfo.php:
Php
phpinfo ();
?>
Теперь у вас должна быть возможность получить доступ к скриптам PHP из вашего браузера, как вы можете видеть на скриншоте ниже.
http: //localhost/phpinfo.php
Итак, вот как вы настраиваете сервер Debian 10 LAMP для веб-разработки PHP. Спасибо, что прочитали эту статью.
Как установить Apache, MySQL и PHP на Ubuntu 18.04
Используете другую систему?
Как установить Apache, MySQL и PHP в Ubuntu 14.04
Как установить Apache, MySQL и PHP на CentOS 6
Как установить Apache 2.4.x, MariaDB 10.x и PHP 7.x в Ubuntu 16.04
Как установить Apache, MySQL и PHP на Ubuntu 16.04
Как установить Apache, MySQL и PHP на Ubuntu 17.04
Как установить Apache 2.4, MariaDB 10.3 и PHP 7.2 в Ubuntu 18.04
Как установить стек Apache, MySQL и PHP (FAMP) на FreeBSD 12.0
Установите Apache, MySQL и PHP (LAMP) на Ubuntu 20.04 LTS
Установите Apache
Сначала обновите диспетчер пакетов.
sudo apt-get update -y
sudo apt-get upgrade -y
Установите и запустите Apache.
sudo apt-get install apache2 -y
sudo systemctl start apache2.service
Убедитесь, что Apache был установлен без ошибок, открыв его из локального браузера. Введите hostname -I
, чтобы получить свой IP-адрес для сервера, и перейдите к http: // SERVER_IP /
.Вы увидите страницу Apache2 по умолчанию.
Установить MySQL
Установите сервер базы данных MySQL.
sudo apt-get install mysql-server -y
Затем запустите mysql_secure_installation
.
sudo mysql_secure_installation
Вам будет предложено установить пароль, после чего будут заданы другие вопросы. Введите надежный пароль и затем нажмите ENTER , чтобы выбрать значения по умолчанию.
Установить PHP
Сначала установите PHP.
sudo apt-get install php -y
Затем установите общие расширения PHP, такие как gd
, mysql
и так далее.
sudo apt-get install php- {bcmath, bz2, intl, gd, mbstring, mysql, zip, fpm} -y
Запуск Apache и MySQL при загрузке
Это необходимо для запуска вашей веб-среды при загрузке.
sudo systemctl включить apache2.service
sudo systemctl включить mysql.service
Наконец, перезапустите Apache, чтобы разрешить запуск PHP.
systemctl перезапустить apache2.service
Заключение
Поздравляем, вы успешно установили стек LAMP на свой Ubuntu 18.04 VPS.
Хотите внести свой вклад?
Вы можете заработать до $ 300 , добавляя новые статьи
Установка Linux, Apache, MySQL, PHP (LAMP) вручную
Перед установкой программного обеспечения обновите информацию в репозиториях с помощью следующей команды.
root @ i: ~ # apt-get update - для ОС Debian, root @ i: ~ # yum makecache - для ОС CentOS
После завершения обновления продолжите установку необходимого программного обеспечения.
Apache
ОС Debian
Установите Apache Prefork с помощью следующей команды:
root @ i: ~ # apt-get install apache2
Установите Apache Worker с помощью команды
root @ i: ~ # apt-get install apache2-mpm-worker
Для Apache ITK используйте следующую команду:
root @ i: ~ # apt-get install apache2-mpm-itk
ОС CentOS
Установите Apache Prefork с помощью следующей команды:
root @ i: ~ # ням установить httpd
Чтобы обновить версию Apache Worker, используйте следующую команду, чтобы остановить веб-сервер:
/ etc / init.d / httpd stop
Затем откройте / etc / sysconfig / httpd для редактирования и включите строку HTTPD = / usr / sbin / httpd.worker, удалив пометку комментария. Если в файле нет следующих строк, добавьте их:
StartServers 6 MinSpareServers 6 MaxSpareServers 15 ServerLimit 156 MaxClients 156 MaxRequestsPerChild 3000
Эти значения директивы должны быть установлены по мере необходимости.
Чтобы обновить версию Apache ITK, включите HTTPD = / usr / sbin / httpd.itk, удалив отметку комментария. Если в файле нет следующих строк, добавьте их:
StartServers 6 MinSpareServers 6 MaxSpareServers 15 ServerLimit 156 MaxClients 156 MaxRequestsPerChild 3000
Эти значения директивы должны быть установлены по мере необходимости.
MySQL
ОС Debian
Чтобы установить сервер базы данных MySQL, используйте следующую команду:
root @ i: ~ # apt-get install mysql-server mysql-client
Во время установки вы должны ввести пароль доступа для пользователя root сервера MySQL.Используйте сложные пароли, содержащие буквы верхнего и нижнего регистра, цифры и специальные символы.
ОС CentOS
Чтобы установить сервер базы данных MySQL, используйте следующую команду:
root @ i: ~ # yum install mysql-server mysql-client
По завершении установки запустите MySQL с помощью команды:
корень @ i: ~ # /etc/init.d/mysqld start
, затем измените пароль с помощью команды:
root @ i: ~ # / usr / bin / mysqladmin -u пароль root 'mynewpassword'
PHP
Следующие команды устанавливают базовые расширения PHP и модуль для Apache.
ОС Debian
Для установки PHP выполните команду:
root @ i: ~ # apt-get install php5 php5-mysql
ОС CentOS
Для установки PHP выполните команду:
root @ i: ~ # yum install php php-mysql
Сайт
ОС Debian
Для каждого добавленного домена создайте отдельный файл конфигурации и назовите его для домена:
коснитесь /etc/apache2/sites-enabled/mydomain.com где «mydomain» - ваше доменное имя.
Откройте файл конфигурации для редактирования и добавьте следующий раздел:
ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/sites/mydomain.com CustomLog /var/www/httpd-logs/mydomain.com.access.log в сочетании ErrorLog /var/www/httpd-logs/mydomain.com.error.log Приложение AddType / x-httpd-php .php где 1.0.0.1 - IP-адрес сервера и «mydomain.com »- это ваше доменное имя.
Если для работы веб-сайта требуется база данных (в данном примере MySQL), подключитесь к серверу:
mysql -u корень -p
и создайте базу данных:
создать базу данных db;
Создайте пользователя, который будет иметь полные права доступа к базе данных:
предоставить все привилегии на mydb. * 'myuser' @ 'localhost', идентифицированному 'mypassword'; где «mydb» - имя базы данных, «myuser» - имя пользователя, «mypassword» - пароль.
Создание каталогов для сайта:
mkdir / var / www / sites / mkdir /var/www/sites/mydomain.com mkdir / var / www / httpd-журналы коснитесь /var/www/httpd-logs/mydomain.com.access.log коснитесь /var/www/httpd-logs/mydomain.com.error.log
При необходимости установите желаемую CMS, перейдя в каталог сайта…
cd /var/www/sites/mydomain.com
Для CMS Joomla загрузите ее установочный пакет:
wget http://joomlacode.org/gf/download/frsrelease/19639/159961/Joomla_3.3.2-Stable-Full_Package.zip
Распакуйте файл .zip с помощью команды:
разархивируйте Joomla_3.3.2-Stable-Full_Package.zip
При правильной конфигурации DNS вы сможете получить доступ к своему сайту через браузер, используя его доменное имя; в противном случае вы можете использовать IP-адрес.
ОС CentOS
Для каждого добавленного домена создайте отдельный файл конфигурации и назовите его для домена.
коснитесь /etc/httpd/sites-enabled/mydomain.com.conf где «mydomain» - ваше доменное имя.
Откройте файл конфигурации для редактирования и добавьте следующий раздел:
ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/sites/mydomain.com CustomLog /var/www/httpd-logs/mydomain.com.access.log в сочетании ErrorLog /var/www/httpd-logs/mydomain.com.error.log Приложение AddType / x-httpd-php .php где 1.0.0.1 - - это IP-адрес сервера и «mydomain.com »- это ваше доменное имя.
Если для работы веб-сайта требуется база данных (в данном примере MySQL), подключитесь к серверу:
mysql -u корень -p
и создайте базу данных:
создать базу данных db;
Создайте пользователя, который будет иметь полные права доступа к базе данных:
предоставить все привилегии на mydb. * 'myuser' @ 'localhost', идентифицированному 'mypassword'; где «mydb» - имя базы данных, «myuser» - имя пользователя, «mypassword» - пароль.
Создание каталогов для сайта:
mkdir / var / www / sites / mkdir /var/www/sites/mydomain.com mkdir / var / www / httpd-журналы коснитесь /var/www/httpd-logs/mydomain.com.access.log коснитесь /var/www/httpd-logs/mydomain.com.error.log
При необходимости установите желаемую CMS, перейдя в каталог сайта…
cd /var/www/sites/mydomain.com
Для CMS Joomla загрузите ее установочный пакет:
wget http://joomlacode.org/gf/download/frsrelease/19639/159961/Joomla_3.3.2-Stable-Full_Package.zip
Распакуйте файл .zip с помощью команды:
разархивируйте Joomla_3.3.2-Stable-Full_Package.zip
При правильной конфигурации DNS вы сможете получить доступ к своему сайту через браузер, используя его доменное имя; в противном случае вы можете использовать IP-адрес.
Как настроить стек LAMP в Red Hat Enterprise Linux 7
Вас попросили создать стек LAMP, независимо от того, думаете ли вы «Стек ламп, как в лампах и лампочках» или «Хорошо, давайте создадим веб-сервер», это руководство поможет вам быстро начать работу.
Первый для тех, кто не знает стек LAMP, также известный как LAMP, это аббревиатура для сервера Linux / UNIX с Apache в качестве механизма сервера, MySQL / MariaDB в качестве механизма базы данных и PHP в качестве основного серверного скрипта. язык.
Эти шаги основаны на RHEL 7.2 / 7.3, но должны работать для всех версий RHEL с минимальными изменениями.
Всего пара вещей, которые вам нужно будет подготовить:
- Приличное подключение к Интернету.
- Непроизводственный сервер для использования с этим руководством.
- В этом руководстве предполагается, что сервер был установлен с минимальным набором опций и правильно зарегистрирован в подписке Red Hat.
- Доступ к серверу, который разрешает вам доступ Sudo (admin).
В зависимости от потребностей вашей организации ваш сервер может иметь графический пользовательский интерфейс (GUI) или у вас может быть просто терминальный доступ. В любом случае рекомендуется сначала просмотреть это руководство на непроизводственном сервере, если вам нужно пройти его пару раз.
Если у вас есть графический интерфейс, перейдите в меню «Приложения», затем в подменю «Утилиты» найдите приложение «Терминал» и откройте его.
В терминале (будь то в графическом интерфейсе или через SSH) выполните следующие действия, чтобы упростить задачу, вы можете скопировать и вставить команды в окно терминала.
ПРИМЕЧАНИЕ:
С помощью приведенных ниже команд yum это руководство не устанавливает автоматически какой-либо фрагмент стека LAMP. После того, как вы поймете, что делаете, вы можете использовать команду «-y» для автоматической установки.
# Не обновляется автоматически sudo yum update # Не будет автоматически устанавливать Apache / HTTPD sudo yum установить httpd # Будет обновляться автоматически sudo yum -y обновить # Автоматически установит Apache / HTTPD sudo yum -y установить httpd
Этапы установки ЛАМПЫ
- Проверьте регистрацию Red Hat, в этом поможет приведенный ниже сценарий.
Если вы правильно зарегистрированы, вы получите сообщение «Зарегистрировано правильно», в противном случае вам будет предложено ввести имя пользователя и пароль Red Hat вместе с именем хоста сервера.if ["$ (sudo subscription-manager status | grep" Общий статус ")"! = "Общий статус: неизвестно"]; потом Чисто echo "Правильно зарегистрировано" еще Чисто echo -e "\ 033 [32mRed Hat Registration - Start \ 033 [0m" если [-z $ {1 + x}]; потом echo -e "\ 033 [01m \ e [4mВведите свое имя пользователя на RedHat.com, а затем нажмите [ENTER]: \ e [0m \ 033 [0m» читать rhUser еще объявить rhUser = $ 1 фи если [-z $ {2 + x}]; потом echo -e "\ 033 [01m \ e [4mВведите свой пароль для RedHat.com, а затем [ENTER]: \ e [0m \ 033 [0m " читать -s rhPass еще объявить rhPass = $ 2 фи Чисто echo -e "\ 033 [32mSet Имя хоста сервера - Начало \ 033 [0m" если [-z $ {3 + x}]; потом echo -e "\ 033 [01m \ e [4mВведите желаемое имя хоста для сервера, а затем нажмите [ENTER]: \ e [0m \ 033 [0m» читать имя хоста sudo hostnamectl set-hostname $ hostname еще объявить hostname = $ 3 sudo hostnamectl set-hostname $ hostname фи echo -e "\ 033 [32mSet имя хоста сервера - Stop \ 033 [0m" # Зарегистрировать сервер Red Hat - Пуск sudo subscription-manager register --username $ rhUser --password $ rhPass --auto-attach Чисто обновление диспетчера подписок sudo Чисто история -c sudo идентификатор диспетчера подписки # Зарегистрировать сервер Red Hat - Остановить echo -e "\ 033 [32mRed Hat Registration - Stop \ 033 [0m" фи
- Сначала обновите систему.
# Сначала обновить систему sudo yum обновление
- Установить полезные приложения
# Устанавливаем полезные приложения # nano - текстовый редактор, альтернатива vi # curl / wget - загрузчики на базе терминала # bind-utils / telnet - полезно для тестирования проблем домена и порта sudo yum установить nano curl wget bind-utils telnet
- Установите компоненты LAMP.
# Установить ЛАМПУ # httpd - Базовый Apache # mod_ssl & openssl - требуется для безопасных веб-сайтов HTTPS / SSL # mariadb-server & mariadb - База данных MariaDB (последняя версия базы данных на основе MySQL после того, как Oracle купила MySQL) # php - Базовый PHP # php-mysql - Разрешить PHP работать с MariaDB / MySQL # php-gd - Разрешить PHP создавать изображения и управлять ими. # php-mbstring - Разрешить PHP работать с многобайтовыми строками - http: // php.сеть / руководство / en / book.mbstring.php sudo yum установить httpd mod_ssl openssl mariadb-server mariadb php php-mysql php-gd php-mbstring
- Включите службы, чтобы они загружались при запуске.
# Включить службы, чтобы они загружались при запуске sudo systemctl включить httpd.service sudo systemctl включить mariadb.service
- Откройте брандмауэр для HTTP и HTTPS.
# Открытый брандмауэр для HTTP и HTTPS sudo firewall-cmd --permanent --zone = public --add-service = http sudo firewall-cmd --permanent --zone = public --add-service = https sudo firewall-cmd --reload
- Создайте простую страницу информации о PHP, чтобы убедиться, что PHP работает в Apache.
Основная цель этого файла — убедиться, что PHP работает в Apache, но это также хороший файл для проверки в каждом проекте, чтобы убедиться, что у вас установлены все необходимые модули / расширения PHP.# Создайте простую страницу информации о PHP, чтобы убедиться, что PHP работает в Apache sudo echo "" | sudo tee /var/www/html/info.php echo " PHP echo 'URL-адрес сервера:'. \ $ _ SERVER ['SERVER_NAME']. ' Корень документа: '. \ $ _ СЕРВЕР ['DOCUMENT_ROOT']; ?> "| sudo tee / var / www / html / index.[\ t] * // '/etc/httpd/conf/httpd.conf sudo sed -i "s | IncludeOptional | #IncludeOptional |" /etc/httpd/conf/httpd.conf sudo sed -i "s | #ServerName www.example.com:80|ServerName localhost |" /etc/httpd/conf/httpd.conf sudo sed -i "s | DirectoryIndex index.html | DirectoryIndex index.html index.php |" /etc/httpd/conf/httpd.conf # Добавить конфигурацию PHP в Apache echo "Приложение AddType / x-httpd-php .php" | sudo tee -a /etc/httpd/conf/httpd.conf
- Безопасность MariaDB / MySQL.
Это необходимый шаг для защиты вашего сервера MariaDB / MySQL. Эта команда сначала запустит службу, а затем задаст серию вопросов, в зависимости от потребностей проекта ответы могут быть разными.# Безопасный MariaDB / MySQL sudo systemctl start mariadb.service Чисто sudo / usr / bin / mysql_secure_installation
Вот что вы увидите
$ Судо / usr / bin / mysql_secure_installation ПРИМЕЧАНИЕ: ЗАПУСК ВСЕХ ЧАСТЕЙ ЭТОГО СКРИПТА РЕКОМЕНДУЕТСЯ ДЛЯ ВСЕХ MariaDB. СЕРВЕРЫ В ПРОИЗВОДСТВЕННОМ ИСПОЛЬЗОВАНИИ! ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ КАЖДЫЙ ШАГ! Чтобы войти в MariaDB и защитить его, нам понадобится текущий пароль для пользователя root.Если вы только что установили MariaDB, и вы еще не установили пароль root, пароль будет пустым, поэтому вам нужно просто нажать здесь. Введите текущий пароль для root (введите его, если нет):
На этом этапе нажмите ввод / возврат, так как на этом этапе у вас не должно быть пароля суперпользователя.
Введите текущий пароль для root (если нет): ОК, пароль успешно использован, идем дальше ... Установка пароля root гарантирует, что никто не сможет войти в MariaDB. пользователь root без соответствующей авторизации.Установить пароль root? [Да / нет]
На этом этапе введите Y (регистр может быть нижним или верхним) и нажмите ввод / возврат
Вам нужно будет ввести пароль, а затем подтвердить его. ПРИМЕЧАНИЕ. Это ваш «божественный» пароль для всей вашей системы MariaDB, поэтому его будет сложно угадать.
.
Установить пароль root? [Д / Н] г Новый пароль: Повторно введите новый пароль: Пароль успешно обновлен! Перезагрузка таблиц привилегий .. ... Успех! По умолчанию установка MariaDB имеет анонимного пользователя, что позволяет любому для входа в MariaDB без необходимости создания учетной записи пользователя для их.Это предназначено только для тестирования, и чтобы произвести установку идти немного плавнее. Вы должны удалить их перед переездом в производственная среда. Удалить анонимных пользователей? [Да / нет]
В большинстве случаев вы хотите удалить неаутентифицированных пользователей, поэтому введите Y (регистр может быть нижним или верхним) и нажмите ввод / возврат
Удалить анонимных пользователей? [Д / Н] г ... Успех! Обычно root может подключаться только с localhost. Этот гарантирует, что кто-то не сможет угадать пароль root из сети.Запретить удаленный вход root? [Да / нет]
В большинстве случаев вы хотите удалить удаленный «божественный» корневой доступ, поэтому введите Y (регистр может быть нижним или верхним) и нажмите ввод / возврат
Запретить удаленный вход root? [Д / Н] г ... Успех! По умолчанию MariaDB поставляется с базой данных под названием «test», которую может доступ. Это также предназначено только для тестирования и должно быть удалено. перед переходом в производственную среду. Удалить тестовую базу данных и получить к ней доступ? [Да / нет]
Если это окно разработки, чтобы начать изучение работы с MariaDB / MySQL, вы можете сказать нет, но в большинстве случаев введите Y (регистр может быть нижним или верхним) и нажмите ввод / возврат
Удалить тестовую базу данных и получить к ней доступ? [Д / Н] г - Удаление тестовой базы данных... ... Успех! - Удаление привилегий на тестовой базе данных ... ... Успех! Повторная загрузка таблиц привилегий гарантирует, что все изменения, внесенные на данный момент вступит в силу немедленно. Перезагрузить таблицы привилегий сейчас? [Да / нет]
В большинстве случаев введите Y (регистр может быть нижним или верхним) и нажмите ввод / возврат
Вы закончили и увидите что-то вроде этого
Обновить таблицы привилегий сейчас? [Д / Н] г ... Успех! Убираться... Все сделано! Если вы выполнили все вышеперечисленные шаги, ваш MariaDB установка теперь должна быть безопасной.Спасибо за использование MariaDB!
- Запустите Apache.
# Запустить Apache sudo systemctl start httpd.service
- Загрузите свой сайт, если вы используете графический интерфейс, в зависимости от того, у вас может быть или не может быть интернет-браузер на вашем компьютере, если у вас есть браузер, вы можете открыть его и просто перейти по адресу http: //localhost/info.php. в SSH / Терминале приведенный ниже код должен загрузить HTML-код сайта по умолчанию, если все работает.
curl http: // localhost / info.php
На этом этапе у вас должен быть рабочий стек HTTP LAMP, но он будет запускать только один веб-сайт.
Этапы установки на нескольких площадках
Очень мало стеков LAMP настроено специально для запуска только одного веб-сайта. Приведенные ниже шаги помогут вам настроить сервер, обслуживающий несколько веб-сайтов, опять же без особых усилий с вашей стороны.
- Для работы нескольких сайтов нам нужно изменить SELinux для работы в разрешающем режиме.
ПРИМЕЧАНИЕ. Обратитесь в службу ИТ-безопасности вашей компании, у некоторых компаний могут возникнуть проблемы с этим, а у других — без проблем.$ / d ‘/ и т. д. / selinux / config
SELinuxStatus = $ (cat / etc / selinux / config | grep SELINUX = | cut -d ‘=’ -f2)
echo «Текущий статус: $ SELinuxStatus»
sudo sed -i «s | SELINUX = $ SELinuxStatus | SELINUX = permissive |» / и т.д. / selinux / config
SELinuxStatus = $ (cat / etc / selinux / config | grep SELINUX = | cut -d ‘=’ -f2)
echo «Новый статус: $ SELinuxStatus»
sudo shutdown -r сейчас - Создайте файл «sites.csv», в этом файле мы определим дополнительные сайты для сервера.
Имя домена, HTTP_Port, HTTPS_Port, SSLCertificateFile, SSLCertificateKeyFile
Это сайты.CSV-файл имеет некоторую логику, связанную с тем, что если вы не определите HTTPS_Port, SSLCertificateFile и SSLCertificateKeyFile, ваш сайт будет просто HTTP, а не безопасным сайтом (HTTPS)
Этот сценарий ниже создаст для вас заголовок CSV, а затем загрузит файл в текстовый редактор nano.
Введите значения, не забывая добавлять запятую в качестве разделителя (не добавляйте пробелы).
Когда вы закончите, удерживая нажатой клавишу Control / Ctrl и нажмите клавишу X, чтобы закрыть файл, система спросит вас, хотите ли вы сохранить, введите Y для да или N для нет, затем нажмите клавишу Enter / Return.
echo -e "Имя домена, HTTP_Port, HTTPS_Port, SSLCertificateFile, SSLCertificateKeyFile \ n" | sudo tee /var/www/websites.csv sudo nano /var/www/websites.csv
Вот пример того, как может выглядеть окончательный файл
Имя домена, HTTP_Port, HTTPS_Port, SSLCertificateFile, SSLCertificateKeyFile test.someurl.local, 80 443, / etc / httpd / ssl / SSLCRT.crt, / etc / httpd / ssl / SSLKey.key test2.someurl.local, 80
- Место размещения файлов сертификатов SSL может отличаться от этого руководства.В руководстве основное внимание будет уделено расположению файлов в виде / etc / httpd / ssl. Убедитесь, что у вас есть файлы crt и key в каталоге / etc / httpd / ssl (или в выбранном вами каталоге).
- Задайте основные переменные для следующих шагов
# Объявить основные переменные - начало объявить netAdapter = $ (состояние устройства nmcli | grep en | cut -d "" -f1) если [-z "$ netAdapter"]; потом netAdapter = $ (состояние устройства nmcli | grep eth | cut -d "" -f1) фи объявить netIP = $ (/ sbin / ip -o -4 список адресов $ netAdapter | awk '{print $ 4}' | cut -d / -f1) #declare netCIDR = $ (/ sbin / ip -o -4 список адресов $ netAdapter | cut -d '' -f7) объявить netMask = $ (ipcalc -m $ netIP | cut -d '=' -f2) объявить netCIDR = $ (ipcalc -p $ netIP $ netMask | cut -d '=' -f2) объявить netWork = $ (ipcalc -n $ netIP $ netMask | cut -d '=' -f2) echo -e "Имя хоста: $ (имя хоста) \ n $ netAdapter: $ netIP \ nNetmask: $ netMask \ nCIDR: $ netWork / $ netCIDR" объявить AzureServer = $ (awk -v address = "$ netIP" -f / opt / DSP / checkIP.awk /opt/DSP/AzureIPRange.txt) LoggedInUser = $ (whoami) echo $ LoggedInUser # Объявить основные переменные - стоп
- ДОПОЛНИТЕЛЬНО — Удалить рабочий стол GUI
sudo yum удалить gnome-desktop *
- Создание группы веб-разработчиков
В ситуации, когда у вас несколько веб-разработчиков, группа веб-разработчиков может оказаться полезной.# Создать группу веб-разработчиков sudo groupadd webdev # Добавить пользователей в группу веб-разработчиков sudo usermod -G webdev -a $ LoggedInUser sudo usermod -G webdev -a apache sudo usermod -G webdev -a root # Создайте пользователя веб-разработчика и добавьте его в группу веб-разработчиков sudo useradd -g webdev -m webdev USR = webdev # Это сгенерирует случайный 8-значный пароль: PASS = `tr -dc A-Za-z0-9_ dev / urandom | head -c8` echo $ PASS> ~ / webdev_temp_password.[\ t] * // '/etc/httpd/conf/httpd.conf sudo sed -i "s | IncludeOptional | #IncludeOptional |" /etc/httpd/conf/httpd.conf sudo sed -i "s | #ServerName www.example.com:80|ServerName localhost |" /etc/httpd/conf/httpd.conf sudo sed -i "s | DirectoryIndex index.html | DirectoryIndex index.html index.php |" /etc/httpd/conf/httpd.conf echo "IncludeOptional /etc/httpd/sites-available/*.conf" | sudo tee -a /etc/httpd/conf/httpd.conf cat /etc/httpd/conf/httpd.conf | grep IncludeOptional кот / и т.д. / httpd / conf / httpd.conf | grep DirectoryIndex
- Позвольте CSV определять дополнительные сайты
# Прочитать файл sites.csv и создать виртуальный хост для каждого сайта - начать sed 1d /var/www/websites.csv | тогда как IFS = $ ’,’ читать -r -a site делать echo "Чтение файла CSV" echo "Имя домена: $ {site [0]}" echo "Порт HTTP: $ {site [1]}" echo "Порт HTTPS: $ {site [2]}" echo "Файл SSL CRT: $ {site [3]}" echo "Файл ключей SSL: $ {site [4]}" если [-n "$ {site [1]}"]; потом echo "Настройка HTTP для $ {site [0]}" echo -e "\ n" \ "ServerName $ {site [0]} \ n" \ "DocumentRoot / var / www / $ {site [0]} / public_html \ n" \ "ErrorLog / var / www / $ {site [0]} / error.журнал \ n "\ "CustomLog /var/www/${site[0pting}/requests.log объединены \ n" \ "\ n" \ "Параметры Все \ n" \ "AllowOverride All \ n" \ "Требовать все предоставлено \ n" \ "\ n" \ "" | sudo tee /etc/httpd/sites-available/${site[0 visible}.conf фи если [-n "$ {site [2]}"]; потом if [-z "$ {site [3]}"] || [-z "$ {сайт [4]}"]; потом echo "Запрошен HTTPS, но параметры SSL не заполнены" выход 0 фи echo "Настройка HTTPS для $ {site [0]}" echo -e "\ n" \ "ServerName $ {site [0]} \ n" \ "DocumentRoot / var / www / $ {site [0]} / public_html \ n" \ "ErrorLog / var / www / $ {site [0]} / error.журнал \ n "\ "CustomLog /var/www/${site[0pting}/requests.log объединены \ n" \ "\ n" \ "Параметры Все \ n" \ "AllowOverride All \ n" \ "Требовать все предоставлено \ n" \ "\ n" \ "SSLEngine на \ n" \ "SSLCertificateFile $ {site [3]} \ n" \ "SSLCertificateKeyFile $ {site [4]} \ n" \ "" | sudo tee /etc/httpd/sites-available/${site[0pting}_secure.conf фи sudo ln -s /etc/httpd/sites-available/${site[0pting}.conf /etc/httpd/sites-enabled/${site[0 ]}.conf sudo mkdir -p / var / www / $ {site [0]} / public_html echo "$ ip $ {site [0]}" | sudo tee -a / etc / hosts # Скачать тестовый индекс.$ / d '/etc/httpd/conf/httpd.conf
- Переназначьте разрешения для каталога / var / www /, чтобы разрешить группе webdev доступ для чтения и записи
прозрачный sudo chown -cR apache: webdev / var / www / sudo chgrp -cRv webdev / var / www / sudo chmod g + w -Rv / var / www / sudo chmod -Rv 774 / var / www /
- Тестовая конфигурация
конфигурация apachectl httpd -D DUMP_VHOSTS
- Перезапустить службу Apache
перезапуск sudo apachectl
Сертификаты SSL
Связанные
Как настроить LAMP на DreamCompute под управлением Debian или Ubuntu — База знаний DreamHost
Обзор
LAMP означает «Linux», «Apache», «MySQL» и «PHP».Все эти компоненты вместе составляют «веб-стек» LAMP, который является одним из самых популярных решений для размещения веб-сайтов.
В этой статье объясняется, как установить стек LAMP на ваш экземпляр DreamCompute.
Из-за общих требований к памяти MySQL 8 и Ubuntu 20 DreamHost рекомендует не устанавливать MySQL 8 на «полусоновые» экземпляры.
Методы настройки
Есть два способа настроить стек LAMP на вашем экземпляре DreamCompute:
Если вам просто нужно быстро настроить LAMP, чтобы что-то заработало, автоматизированное решение должно подойти.
Вторая команда интерактивна, поэтому вас спросят: «Продолжить?» в некоторых местах. Всегда вводите «y», чтобы продолжить.
Вам также будет предложено установить пароль для пользователя root вашей установки MySQL. Создайте безопасный пароль и сохраните его, так как он понадобится вам позже при настройке базы данных.
Ручная установка
Вы также можете установить Apache, MySQL и PHP по отдельности.