Продолжаем разговор. Web-сервер есть, ftp есть, пришло время установиться интерпретатор PHP, как fast cgi.
Подключаемся через putty к нашему серверу и вводим команду
apt-get -y install php-fpm php-mysql
ждём. Далее нам нужно отредактировать файл php.ini, вводим:
nano /etc/php/7.0/fpm/php.ini
раскомментируем (уберем точку с запятой) строку cgi.fix_pathinfo=1
Для поиска можно нажать комбинацию CTRL+W. А вообще по редактору Нано есть отличная заметка здесь: https://habr.com/ru/post/106554/
Далее отредактируем файл www.conf, введя команду:
nano /etc/php/7.0/fpm/pool.d/www.conf
В нашем случае мы будем использовать не Unix Socket, а TCP Socket.
Находим строку listen = /run/php/php7.0-fpm.sock
и меняем её на listen = 127.0.0.1:9000
Перезапускаем сервис PHP-FPM
systemctl restart php7.0-fpm
Отредактируем файл 15-fastcg-php.conf нашего веб-сервера
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
Находим строки
«bin-path» => «/usr/bin/php-cgi»,
«socket» => «/var/run/lighttpd/php.socket»,
и меняем их на
«host» => «127.0.0.1»,
«port» => «9000»,
Сохраняем файл (CTRL+X, потом соглашаемся со внесёнными изменениями, нажав клавишу Y) Активируем модули FastCGI and FastCGI-PHP командами в консоле:
lighty-enable-mod fastcgi
lighty-enable-mod fastcgi-php
Перезапускаем web-сервер.
systemctl restart lighttpd
Создаём php-файл.
nano /var/www/html/info.php
В открывшемся окне редактора nano вводим:
<?php
phpinfo();
?>
Сохраняем (Ctrl+X, Y). Открываем в браузере ip-адрес нашего сервера/info.php — если всё нормально, появятся сведения о PHP.
Очень хорошо, но давайте теперь подправим нашу загрузку по ftp. Как я и говорил, предыдущие настройки, когда пользователь имеет доступ ко всем файлам системы, очень не безопасен. Кроме того lighttpd запущен под пользователем www-data, который входит в группу www-data. Php-файлы должны исполнятся именно под www-data.
Создадим пользователя web.
adduser web
зададим ему пароль и на все остальные вопросы системы можно просто нажать enter.
Внесём web в группу www-data и дадим права на запись в каталог /var/www/
chown www-data:web /var/www/ -R
Изменим конфигурационный файл vsftpd.conf таким образом, чтобы в нём остались следующие параметры:
nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
guest_enable=YES
ftp_username=www-data
chmod_enable=YES
chown_uploads=YES
chown_username=www-data
guest_username=www-data
force_dot_files=YES
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=1024
pasv_max_port=65535
max_clients=10
max_per_ip=10
port_promiscuous=YES
port_enable=YES
listen_port=21
ftp_data_port=20
user_sub_token=$USER
hide_ids=YES
user_config_dir=/etc/vsftpd
chroot_local_user=YES
allow_writeable_chroot=YES
Сохраним изменения (Ctrl+X, Y) и создадим директорию
mkdir /etc/vsftpd
перейдём в неё:
cd /etc/vsftpd
Создадим и откроем в nano файл с именем нашего нового пользователя (web)
nano web
Внесём следующую запись в редакторе nano
local_root=/var/www/
Сохраняем файл.
service vsftpd restart
Запускаем FileZilla и соединяемся с нашим сервером уже под пользователем web и указанным при создании пользователя паролям. Можно создать файл, например, test.php со следующим содержанием:
<?php
echo «Я файл, отправленный по ftp!»;
?>
Отправим его через filezilla на наш VPS и перейдём в браузере по ip-адрес-сервера/test.php
Должна появится соответствующая надпись.
В следующий раз мы будем устанавливать MariaDB и phpmyadmin.