Пример веб-страницы

ApacheMySQLPHP

Это руководство поможет установить сервер LAMP (Linux+Apache+MySQL+PHP) на ALT Linux на базе Apache 2, PHP 5 и MySQL 5.0.

Установка (PHP как модуль Apache)

Подключите репозиторий (в Интернете или на диске) и выполните

apt-get update apt-get install lamp-server

Внимание: этот пакет лишь установит программное обеспечение. После установки необходимо настроить компоненты и (для некоторых веб-движков) доустановить дополнительные компоненты.

Службы

chkconfig httpd2 on service httpd2 start
chkconfig mysqld on service mysqld start
  • поддержка PHP встроена в Apache2, поэтому запускается вместе с ним ecли модуль mod_php установлен (может иметь разные версии — mod_php7 или mod_php8.1)
  • указанные команды работают как в Sysvinit, так и в Systemd

Видеоуроки от Саломатина

Apache2 Первоначальная установка. Запуск статической страницы

Apache2 Запуск PHP скриптов

Включение PHP

a2enmod mod_php7 service httpd2 restart

Установка LAMP на локальный сервер для разработки (руководство)

Цель: Поднять сервер, пригодный и удобный для разработки в среде LAMP (Linux Apache PHP Mysql/Mariadb) на локальном компьютере. Подойдет начинающим пользователям, которые хотят писать сайты и веб-приложения на PHP. Это замечательная альтернатива готовым решениям типа XAMPP, OpenServer или забытый уже Denwer.

Преимущества такого подхода (PHP-FPM на локале):

  • Возможность менять версию PHP для разных проектов
  • Полный контроль над Вашим сервером стандартными средствами
  • Никаких проблем с правами на файлы. Работаем просто от пользователя
  • При доп. настройке несложно будет тестить например на мобильном
  • легко добавлять/удалять домены
  • хранить Ваши проекты там, где Вам удобно на диске

Безопасность Все что описано в данном руководстве подходит только для создания среды локальной разработки. Не стоит применять это руководство для поднятия серверов, которые будут работать в продакшене, это небезопасно.

  • Cвежеустановленный и обновленный Alt Linux p10 (Делалось на Simply).
  • Пользователь под которым работаем: johndoe. У Вас конечно свой.
  • Каталог где хранятся наши PHP проекты: /home/johndoe/Документы/Projects
  • Тестовые «сайты»: каталоги test1.loc и test2.loc (лежат в проектах)

0. Обновляем доступные пакеты:

Читайте также:  Чтение дисков linux windows

1. Создаем каталог проектов /home/johndoe/Документы/Projects

mkdir /home/johndoe/Документы/Projects

2. Создаем каталоги test1.loc и test2.loc в каталоге проектов:

mkdir /home/johndoe/Документы/Projects/test1.loc
mkdir /home/johndoe/Документы/Projects/test2.loc

Создаем каталоги для логов:

mkdir /home/johndoe/Документы/Projects/test1.loc/logs
mkdir /home/johndoe/Документы/Projects/test2.loc/logs

Создаем каталоги собственно содержимого для веб:

mkdir /home/johndoe/Документы/Projects/test1.loc/htdocs
mkdir /home/johndoe/Документы/Projects/test2.loc/htdocs

Создаем заглушки, которые будут показывать нам версию PHP

echo " /home/johndoe/Документы/Projects/test1.loc/htdocs/index.php
echo " /home/johndoe/Документы/Projects/test2.loc/htdocs/index.php

3. Устанавливаем необходимые пакеты: В данном случае будет установлено всё необходимое для работы веб-сервера. Обратите внимание, что будет установлено две версии PHP — 7.4 и 8.1. Мы для двух локальных «сайтов» будем использовать разные. В Вашем случае, естественно, ставьте пакеты которые необходимы Вам.

sudo apt-get install apache2 apache2-httpd-prefork php8.1 php8.1-bz2 php8.1-curl php8.1-exif php8.1-ssh2 php8.1-fileinfo php8.1-openssl php8.1-fpm-fcgi php8.1-gd php8.1-imagick php8.1-mbstring php8.1-intl php8.1-mcrypt php8.1-pcntl php8.1-pdo php8.1-pdo_mysql php8.1-readline php8.1-xmlreader php8.1-xsl php8.1-yaml php8.1-zip php8.1-mysqli php7 php7-bz2 php7-curl php7-exif php7-mbstring php7-fileinfo php7-fpm-fcgi php7-gd php7-imagick php7-intl php7-mcrypt php7-openssl php7-pcntl php7-pdo php7-pdo_mysql php7-readline php7-ssh2 php7-xmlreader php7-xsl php7-yaml php7-zip php7-mysqli phpMyAdmin mariadb-common mariadb-server mariadb-client mariadb

4. Редактируем файл /etc/fpm7/php-fpm.d/www.conf В данном случае настраиваем PHP7. Здесь необходимо сделать так, чтобы PHP FPM запускался от юзера под которым мы работаем, нам необходимо отредактировать следующие параметры, то есть привести их к следующему виду (обратите внимание: на пробелы возле знака » (.+)» HTTP_AUTHORIZATION=$1 SetHandler «proxy:unix:/run/php7-fpm.sock|fcgi://localhost/» # Deny access to raw php sources by default # To re-enable it’s recommended to enable access to the files # only in specific virtual host or directory Require all denied # Deny access to files without filename (e.g. ‘.php’) Require all denied

9. Создаем в /etc/httpd2/conf/include конфиг для PHP 8.1: Файл называем php8.1-fpm.conf и у него будет след. содержимое:

# Redirect to local php-fpm if mod_php is not available  # Enable http authorization headers SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php8.1-fpm.sock|fcgi://localhost/" # Deny access to raw php sources by default # To re-enable it's recommended to enable access to the files # only in specific virtual host or directory Require all denied # Deny access to files without filename (e.g. '.php') Require all denied  

10. Редактируем /etc/httpd2/conf/sites-available/vhosts.conf Необходимо добавить туда два виртуальных хоста для наших сайтов. Следует помнить, что один из них будет работать на PHP 7 а другой на php 8.1. Также, не забывайте менять johndoe на имя вашего пользователя. Добавляем следующие строки:

 ServerAdmin admin@gmail.com DocumentRoot /home/johndoe/Документы/Projects/test1.loc/htdocs ServerName test1.loc ServerAlias www.test1.loc ErrorLog /home/johndoe/Документы/Projects/test1.loc/logs/error.log CustomLog /home/johndoe/Документы/Projects/test1.loc/logs/custom.log combined DirectoryIndex index.php Include /etc/httpd2/conf/include/php7-fpm.conf Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted  # Второй хост, будет доступен по адресу http://test2.loc # и будет работать на PHP 8.1 ServerAdmin admin@gmail.com DocumentRoot /home/johndoe/Документы/Projects/test2.loc/htdocs ServerName test2.loc ServerAlias www.test2.loc ErrorLog /home/johndoe/Документы/Projects/test2.loc/logs/error.log CustomLog /home/johndoe/Документы/Projects/test2.loc/logs/custom.log combined DirectoryIndex index.php Include /etc/httpd2/conf/include/php8.1-fpm.conf Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted 

11. Делаем доступным конфиг содержащий виртуальные хосты:

Читайте также:  Обновить пакет linux mint

12. Меняем пользователя под которым будет запускаться apache. Редактируем файл /etc/httpd2/conf/httpd2.conf и приводим строки с именем пользователя и группой к следующим:

User johndoe Group johndoe

14. Редактируем файл /etc/hosts и дописываем туда:

127.0.0.1 test1.loc 127.0.0.1 test2.loc

15. Перезапускаем сервис apache

sudo service php7-fpm restart
sudo service php8.1-fpm restart
sudo service httpd2 restart

16. Если хотите чтобы apache стартовал при запуске системы, команда:

sudo systemctl httpd2 enable

17. Теперь проверьте в адресной строке браузера: Обязательно смотрите, чтобы браузер не исправлял на https:

18. Приступим к настройке phpMyAdmin который мы поставили через apt: Создадим файл /etc/httpd2/conf/extra-available/phpMyAdmin.conf со следующим содержимым:

 Alias /phpmyadmin /var/www/webapps/phpMyAdmin/ Options Indexes MultiViews AllowOverride All Require all denied Require ip 127.0.0.1 

19. Разрешим конфигурацию phpMyAdmin и перезагрузим apache:

sudo a2enextra phpMyAdmin
sudo service httpd2 restart

20. меняем права на каталог phpMyAdmin:

sudo chown -hR johndoe:johndoe /var/www/webapps/phpMyAdmin/*

21. Теперь можем попробовать например http://test1.loc/phpmyadmin

22. Устанавливаем пароль MySQL (пароль будет mypassword)

sudo service mysqld start

Откроется консоль MySQL (Mariadb). Вводим поочередно:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword');

23. Если хотим чтобы Mariadb запускалась при загрузке, то вводим

sudo systemctl enable mysqld

24. Пробуем зайти в phpmyadmin:

логин: root пароль: mypassword

25. Теперь будет удобно, если сможем запускать/перезапускать/смотреть статус сервисов от непривелигированного пользователя: создаем файл /etc/sudoers.d/lamp и заносим туда следующие строки:

johndoe ALL = NOPASSWD: /bin/systemctl restart httpd2, /bin/systemctl start httpd2, /bin/systemctl stop httpd2, /bin/systemctl status httpd2 johndoe ALL = NOPASSWD: /bin/systemctl restart mysqld, /bin/systemctl start mysqld, /bin/systemctl stop mysqld, /bin/systemctl status mysqld johndoe ALL = NOPASSWD: /bin/systemctl restart php7-fpm, /bin/systemctl start php7-fpm, /bin/systemctl stop php7-fpm, /bin/systemctl status php7-fpm johndoe ALL = NOPASSWD: /bin/systemctl restart php8.1-fpm, /bin/systemctl start php8.1-fpm, /bin/systemctl stop php8.1-fpm, /bin/systemctl status php8.1-fpm

26. Теперь мы можем создать скрипты для старта и останова нашего LAMP DEV сервера (создаем их где вам удобно): Скрипт lamp_start.sh:

#!/bin/bash sudo systemctl start php7-fpm sudo systemctl start php8.1-fpm sudo systemctl start httpd2 sudo systemctl start mysqld
#!/bin/bash sudo systemctl stop php7-fpm sudo systemctl stop php8.1-fpm sudo systemctl stop httpd2 sudo systemctl stop mysqld

Обязательно сделайте для скриптов возможность выполнения чтобы их возможно было запускать! После этого Вы можете создать где нибудь значки запуска например в панели или на рабочем столе, и одним кликом мыши запускать или останавливать Ваш DEV LAMP сервер.

Читайте также:  Linux list all mounts

Готово. Теперь Вы можете использовать локальный сервер для разработки веб-приложений в среде LAMP. Если понадобится добавить например третий домен, то необходимо будет:

1. Добавить его в файл /etc/hosts

2. Добавить еще один virtualhost в /etc/httpd2/conf/sites-available/vhosts.conf

# Третий хост, будет доступен по адресу http://test3.loc # и будет работать на PHP 8.1 ServerAdmin admin@gmail.com DocumentRoot /home/johndoe/Документы/Projects/test3.loc/htdocs ServerName test3.loc ServerAlias www.test3.loc ErrorLog /home/johndoe/Документы/Projects/test3.loc/logs/error.log CustomLog /home/johndoe/Документы/Projects/test3.loc/logs/custom.log combined DirectoryIndex index.php Include /etc/httpd2/conf/include/php8.1-fpm.conf # Include /etc/httpd2/conf/include/php7-fpm.conf Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted 

3. Создать каталог хоста в проектах

mkdir /home/johndoe/Документы/Projects/test3.loc
mkdir /home/johndoe/Документы/Projects/test3.loc/logs
mkdir /home/johndoe/Документы/Projects/test3.loc/htdocs
echo " /home/johndoe/Документы/Projects/test3.loc/htdocs/index.php
sudo service httpd2 restart

Конечно, при желании всё возможно автоматизировать скриптами. Также возможно при помощи systemd разрешить запуск сервисов не от суперпользователя.

Ссылки

Источник

Web сервер alt linux

Product SiteDocumentation Site

⁠Глава 12. Установка LEMP сервера (Linux, Nginx, MySQL, PHP)

LEMP — это набор (комплекс) серверного программного обеспечения, используемый для разработки и развертывания веб-приложений. LEMP состоит из следующих компонентов: Linux — операционная система; Nginx — веб-сервер; MariaDB/MySQL — СУБД; PHP — язык программирования.

⁠12.1. Установка веб-сервера Nginx

# systemctl enable --now nginx 

Создать файл конфигурации /etc/nginx/sites-available.d/test.alt.conf на основе /etc/nginx/sites-available.d/default.conf :

# cp /etc/nginx/sites-available.d/default.conf /etc/nginx/sites-available.d/test.alt.conf 
server < listen *:80; server_name test.alt www.test.alt; location / < root /var/www/test.alt; >access_log /var/log/nginx/test.alt-access.log; >
# ln -s /etc/nginx/sites-available.d/test.alt.conf /etc/nginx/sites-enabled.d/ 
    

It's work!

LEMP. Проверка работы веб-сервера Nginx

Администрирование сервера Nginx в основном заключается в настройке и поддержке его файлов конфигурации:

/etc/nginx/sites-available — каталог с конфигурациями виртуальных хостов (каждый файл, находящийся в этом каталоге, содержит информацию о конкретном сайте);

/etc/nginx/sites-enabled — в этом каталоге содержаться конфигурации активных сайтов, обслуживаемых Nginx.

Источник

Оцените статью
Adblock
detector