Система Ubuntu хороша для десктопного использования. Настройка веб-сервера на Ubuntu — это обычно среда разработки. Если вам необходим веб-cервер для рабочей копии сайта, то лучше использовать Debian. Полное руководство по теме.
Для рабочей копии сайта использовать Ubuntu стоит только в том случае, если софт, который вы будете использовать, требует обязательно этой системы и там в требованиях четко прописано, что Debian не подойдет. Такое встречается крайне редко.
Чтобы каждый раз не вводить sudo
введем один раз:
sudo su
PHP
Подключение репозитория для установки одновременно нескольких разных версий PHP:
add-apt-repository ppa:ondrej/php
Теперь ставим нужные версии:
apt install php5.6-fpm php5.6-cli php5.6-common php5.6-curl php5.6-mbstring php5.6-mysql php5.6-xml php5.6-gd php5.6-zip php5.6-bcmath
apt install php7.4-fpm php7.4-cli php7.4-common php7.4-curl php7.4-mbstring php7.4-mysql php7.4-xml php7.4-gd php7.4-zip php7.4-bcmath
apt install php8.1-fpm php8.1-cli php8.1-common php8.1-curl php8.1-mbstring php8.1-mysql php8.1-xml php8.1-gd php8.1-zip php8.1-bcmath
Установка специально с указанием конкретных компонентов, чтобы не ставить Apache.
Конфиги располагаются здесь /etc/php/версия/fpm/php.ini
.
После их настройки перезагрузка, соответственно:
service php5.6-fpm reload
service php7.4-fpm reload
service php8.1-fpm reload
Nginx
Установка Nginx:
apt install nginx
Простой пример конфига для сайта:
server {
listen 80;
listen [::]:80;
server_name d1mon.com;
root /var/www/d1mon.com;
index index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Используем PHP нужной версии.
# fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
access_log /var/log/nginx/d1mon_access.log;
error_log /var/log/nginx/d1mon_error.log;
}
Конфиг записывается в файл с произвольным именем, но в определенный каталог.
Удобно назвать его доменом сайта /etc/nginx/sites-available/d1mon.com
.
Активация конфига:
ln -s /etc/nginx/sites-available/d1mon.com /etc/nginx/sites-enabled/d1mon.com
Перезагрузка Nginx:
service nginx reload
MySQL
Установка:
apt install mysql-server
Для Ubuntu по умолчанию все настроено так, чтобы не надо было вводить пароль. Вводим:
sudo mysql
... и мы уже авторизованы с правами root.
Чтобы перейти к обычному режиму работы:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'здесь_свой_пароль';
FLUSH PRIVILEGES;
Установим сразу рабочий софт, он все равно понадобится:
apt install composer git
Теперь через сomposer можно установить phpMyAdmin:
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev
Выполнять команду лучше сразу в нужном каталоге, например в /var/www/webdev.loc
.
Получим /var/www/webdev.loc/phpmyadmin
. Останется настроить сайт webdev.loc
и можно будет обращаться соответствующим образом — webdev.loc/phpmyadmin
.
В конфиге phpMyAdmin config.inc.php
надо настроить два параметра:
$cfg['blowfish_secret'] = 'jh4543jk543fh8fdhfiu3hf78hwekfjhsdfiu3'; // Любые символы, не менее 32.
$cfg['TempDir'] = '/tmp';
Права доступа
Этот пункт актуален именно для локальной разработки.
Я работаю на компьютере под пользователем d1mon
. Сайты работают, используя www-data
. Чтобы не было проблем с доступом я обычно включаю себя в группу www-data
и наоборот:
usermod -aG www-data d1mon
usermod -aG d1mon www-data