LAMP LEMP - uniqcle/DevOps GitHub Wiki
Для удобства работаем через пакетный менеджер aptitude
apt-get install aptitude
aptitude update
aptitude install <package>
aptitude remove <package>
aptitude search php | grep 8
aptitude install php8.2
Подключение доп. модулей
aptitude install php8.2-curl # устанавливаем модуль
php8.2-mysql
php8.2-fpm
php8.2-imagick
php8.2-mysql
php-mysqli
php-mysqlnd
php8.2-pdo-mysql
php8.2-soap
php8.2-zip
php8.2-memcached
php8.2-xdebug
/usr/sbin/phpenmod curl # включаем модуль
/usr/sbin/phpdismod curl # выключаем модуль
+ перезагрузка веб сервера
Файлы конфигигураций php - apache2
/etc/php/8.2/apache2/conf.d/ # подключен. модули + php.ini
/etc/php/8.2/cli/conf.d # если запускаем php через консоль
Основные команды
service apache2 stop # Остановка вебсервера Apache
service apache2 start # Запуск вебсервера Apache
/etc/init.d/apache2 start # systemctl start apache2
/etc/init.d/apache2 stop # systemctl stop apache2
/etc/init.d/apache2 status # systemctl status apache2
/etc/init.d/apache2 restart # systemctl restart apache2
aptitude install apache2 libapache2-mod-php8.2
/var/www/html/index.html
ls -la
chmod 777 *
- шаг правим
DocumentRoot /home/projects
в000-default.conf
/etc/apache2/sites-available/
Если нужно создать отдельный файл настроек сайта
sudo su # Переходим в режим супер пользователя
cd /var/www # Переходим в папку var/www там лежат сайты
mkdir test-lamp.local # Создаем папку с сайтом
nano index.php # Создаем файл index.php
cd /etc/apache2/sites-available/ # Переходим к конфигурационным файлам, где апач их хранит
cp 000-default.conf test-lamp.local.conf # Копируем конфигурационный файл по умолч. 000-default.conf в файл [имя сайта].conf
# Редактирование конфигурационного файла.
# Server Name test-lamp.local
# DocumentRoot /var/www/test-lamp.local
nano test-lamp.local.conf
a2ensite test-lamp.local # Теперь необходимо сайт включить. Есть сайты доступные sites-available, а есть активированные (включенные)sites-enabled
nano /etc/hosts # Теперь необходимо сайт включить в службе ДНС
# Также не забыть правки в файле hosts C:\Windows\System32\drivers\etc\
# Все! В браузере вводим test-lamp.local/
- шаг Добавляем директиву в
/etc/apache2/apache2.conf
<Directory /home/projects>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
- шаг Перезагрузка
/etc/init.d/apache2 restart # systemctl restart apache2
- шаг Редирект запросов на
index.php
(если отсутствует файл/папка)
в корне /home/projects
создаем .htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php?path=$1 [L]
Также в /etc/apache2/apache2.conf
меняем с AllowOverride None
на AllowOverride All
<Directory /home/projects>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Включаем модуль
rewrite
a2enmod
rewrite
Основные команды
systemctl start nginx # Запуск
systemctl stop nginx # Отключение
systemctl restart nginx # Перезапуск
systemctl reload nginx # Перезагрузка
systemctl status nginx # Проверка состояния службы
sudo nginx -t # Тестирование конфигурации
systemctl enable nginx # добавим программу в автозагрузку
systemctl is-enabled nginx # проверим его наличие в автозагрузке
service php7.4-fpm restart Перезагружаем сервис php-fpm, чтобы он мог перечитать файлы конфигураций
service php7.4-fpm status
apt-get install nginx
aptitude install nginx
root /home/projects;
если необходимы файлы настроек отдельным файлом
sudo su # Переходим в режим супер пользователя
cd /var/www # Переходим в папку var/www там лежат сайты
mkdir test-lemp.local # Создаем папку с сайтом
nano index.php # Создаем файл index.php
nano /etc/hosts # Создаем настройку в файле hosts 127.0.0.1
cd /etc/nginx # Переходим к настройке конфигурации на сервере
cd /etc/nginx/sites-available/ # Переходим к конфигурационным файлам, где nginx их хранит. Есть сайты доступные sites-available, а есть активированные (включенные)sites-enabled
cp default test-lemp.local # Создадим копию конфигурационного файла
nano test-lemp.local # Подправляем файл с настройками
nginx -t # Проверяем настройки на валидность
#Теперь сайт необходимо активировать. Ln –s говорит, что нужно сделать ссылку на файл и поместить ее в следующую директорию
ln –s /etc/nginx/sites-available/test-lemp.local /etc/nginx/sites-enabled/test-lemp.local/
Service nginx restart # Далее необходимо перезагрузить вебсервер
1 шаг. устанавливаем, если не установлено
aptitude search php | grep fpm
aptitude install php8.2-fpm
проверяем запущен ли
/etc/init.d/php8.2-fpm status # systemctl status php8.2-fpm
/etc/nginx/nginx.conf
try_files $uri/ @rewrite;
location @rewrite{
rewrite ^/(.*)$ /index.php?_url=/$1;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
файл конфигурации nginx
server
{
listen 80;
server_name sampledomain.ru www.sampledomain.ru;
charset utf-8;
root /home/sampledomain.ru;
index index.php index.html index.htm;
# Static content
location ~* ^.+.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|mp3|bmp|flv|rtf|js|swf|iso)$ {
root /home/sampledomain.ru;
}
location ~ \.php$
{
include fastcgi.conf;
fastcgi_intercept_errors on;
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location / {
try_files $uri $uri/ /index.php?q=$uri$args;
}
}
apt-get install mysql-server # Установка БД MySQL. Установка пароля root для MySQL
mysql –V
mysql –uroot –p # Работа с MySQL из командой строки. Пароль root