как проверить, что php работает в debian 8?
я только что установил debian на свой компьютер, чтобы использовать его в качестве сервера, и я установил php, mysql и phpmyadmin, но я не знаю, как проверить, что если я устанавливаю их хорошо, так как интерфейс с помощью команд, поэтому я хотел бы знать, какие команды я могу использовать, чтобы проверить, что я хорошо установил эти программы.
2 answers
Чтобы проверить, установлен ли php, вы можете проверить его версию, для этого вы можете использовать терминал linux с помощью команды:
Это вернет что-то вроде:
Чтобы убедиться, что apache работает с необходимыми модулями, например модулем php5, вы можете использовать команду
Эта команда вернет вам что-то вроде:
В качестве альтернативы использованию этих команд вы можете создать файл index.php на вашем сервере (/var/www / html) и внутри этого места:
При этом вы проверяете версию PHP и все модули, доступные для PHP в apache, например модуль php5-mysqlnd , который позволяет соединение между PHP и MySQL.
Устранение общих неполадок сайта на сервере Linux
Рано или поздно с проблемами и сбоями сталкивается каждый веб-сервер или сайт. Зная, где искать ошибки и по каким причинам они возникают, вы можете быстро устранить их и минимизировать потери трафика.
В этом руководстве речь пойдёт о самых распространенных ошибках, которые случаются на сайте.
Типичные ошибки
Подавляющее большинство проблем, с которыми вы столкнетесь при попытке запустить сайт, очень предсказуемы и случаются почти с каждым.
Прежде чем приступить к действиям, следует найти ответы на следующие вопросы:
- Установлен ли веб-сервер?
- Работает ли он?
- Нет ли ошибок в конфигурациях веб-сервера?
- Открыты ли порты (не блокирует ли их брандмауэр)?
- Правильно ли указаны настойки DNS?
- Правильно ли настроен каталог document root?
- Обслуживает ли веб-сервер правильные индексные файлы?
- Правильно ли установлены права доступа и структура файлов и каталогов?
- Ограничен ли доступ к файлам конфигурации?
- Если у вас есть база данных, работает ли она?
- Может ли сайт подключиться к базе данных?
- Поддерживает ли веб-сервер передачу динамического контента в обработчик сценариев?
Это лишь некоторые из самых распространенных проблем, с которыми сталкиваются администраторы во время сбоя сайта. Точную проблему, как правило, можно обнаружить в логах разных компонентов; также можно обратиться к страницам ошибок в браузере.
Проверка логов
Прежде чем приступить к устранению неполадок, проверьте логи веб-сервера и других связанных с ним компонентов. Обычно эти файлы хранятся в каталоге /var/log.
К примеру, логи Apache на сервере Ubuntu обычно хранятся в каталоге /var/log/apache2. Просмотрите логи и найдите в них информацию об ошибках. Если вы используете БД, ознакомьтесь с ее логами.
Также нужно узнать, оставляют ли сами процессы сообщения об ошибках при запуске сервиса. Если при попытке открыть страницу вы получаете ошибку, на странице ошибки можно найти подсказки по её устранению.
Используйте поисковую систему, чтобы найти полезную информацию, которая может помочь найти решение проблемы.
Проверка веб-сервера
Для начала нужно убедиться, что веб-сервер установлен и может обслуживать сайт.
В некоторых ситуациях вы можете случайно деинсталлировать веб-сервер при выполнении других операций с пакетами.
Если вы работаете в системе Ubuntu или Debian и хотите установить веб-сервер Apache, вы можете ввести:
sudo apt-get update
sudo apt-get install apache2
В этих системах процесс Apache называется apache2.
Чтобы установить Nginx в Ubuntu или Debian, введите:
sudo apt-get update
sudo apt-get install nginx
Процесс Nginx называется nginx.
Чтобы установить Apache в CentOS или Fedora, введите:
sudo yum install httpd
Процесс Apache называется httpd.
Чтобы установить Nginx в CentOS или Fedora, введите:
sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
sudo yum install nginx
Процесс Nginx называется nginx.
Состояние веб-сервера
Затем нужно убедиться, что веб-сервер запущен.
Есть много способов узнать, запущен ли он. Один из общих методов – команда netstat.
Она покажет вам все процессы, которые используют порты сервера. Затем можно использовать grep, чтобы найти имя требуемого процесса.
sudo netstat -plunt | grep apache2
tcp6 0 0 . 80 . * LISTEN 2000/apache2
Примечание: Вместо apache2 укажите имя искомого процесса веб-сервера.
Если вы видите такую строку, как в примере выше, это значит, что процесс запущен и работает. Если вы не получили никакого вывода, значит, вы запросили неправильный процесс или ваш веб-сервер не запущен.
В таком случае нужно запустить его.
Чтобы запустить Apache2 в Ubuntu, введите:
sudo service apache2 start
В CentOS для этого нужно ввести:
sudo /etc/init.d/httpd start
Состояние веб-сервера можно снова проверить с помощью netstat.
Ошибки в конфигурациях
Если веб-сервер установлен и запущен, но всё равно не обслуживает сайт, возможно, в конфигурационном файле допущены какие-то ошибки. Веб-серверы Apache и Nginx требуют строго придерживаться синтаксиса директив.
Конфигурационные файлы этих сервисов обычно находятся в подкаталогах каталога /etc/.
Таким образом, основной конфигурационный каталог Apache в Ubuntu можно найти так:
Конфигурационный каталог Apache в CentOS:
Конфигурация веб-сервера хранится в различных файлов. Если сервис не запускается, она обычно указывает конфигурационный файл и строку, в которой допущена ошибка. Проверьте этот файл.
Каждый веб-сервер также предоставляет возможность проверить синтаксис конфигурации с помощью специальных команд.
В Apache для проверки синтаксиса используется apache2ctl или apachectl.
apache2ctl configtest
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OK
Команда предоставляет информацию о настройках и сообщает об ошибках, если таковые есть (в данном случае ошибок не обнаружено).
Чтобы проверить синтаксис Nginx, нужно ввести:
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Команда проверяет синтаксис и сообщает об ошибках. Для примера попробуйте удалить точку с запятой в конце какой-либо строки в файле (общая ошибка в конфигурации Nginx), и команда выведет такое сообщение:
sudo nginx -t
nginx: [emerg] invalid number of arguments in «tcp_nopush» directive in /etc/nginx/nginx.conf:18
nginx: configuration file /etc/nginx/nginx.conf test failed
Nginx обнаружит ряд недействительных аргументов, поскольку не сможет найти точку с запятой в конце выражения. Если точки с запятой нет в конце строки, веб-сервер интерпретирует следующую строку как дополнительные аргументы предыдущей.
Проверка портов
Обычно веб-сервер использует порт 80 для обычного трафика и 443 для трафика TLS/SSL. Если эти порты заблокированы, вы не сможете получить доступ к сайту.
Проверить порты можно с помощью локальной машины и команды netcat.
Укажите IP-адрес сервера и требуемый порт:
sudo nc -z 111.111.111.111 80
Эта команда проверит, открыт ли порт 80 на сервере по адресу 111.111.111.111. Если он заблокирован, команда будет безуспешно пытаться создать соединение. Вы можете остановить этот процесс, нажав Ctrl-C в окне терминала.
Если порты недоступны, проверьте конфигурацию брандмауэра. Возможно, вам нужно открыть порт 80 или 443.
Проверка настроек DNS
Если вы можете получить доступ к сайту по IP-адресу, а по доменному имени – нет, проверьте параметры DNS.
Чтобы пользователи могли попасть на сайт по домену, нужно создать запись А или АААА, которые будут указывать на IP-адрес сервера.
Чтобы проверить запись А, введите:
host -t A example.com
example.com has address 93.184.216.119
Строка, которая появится на экране, должна содержать IP-адрес сервера. Чтобы проверить запись АААА (для IPv6), введите:
host -t AAAA example.com
example.com has IPv6 address 2606:2800:220:6d:26bf:1447:1097:aa7
Имейте в виду, изменение настроек DNS занимает довольно много времени. В течение некоторого времени после внесения изменений вы можете получить непоследовательные результаты запросов, поскольку настройки DNS еще не обновлены.
Убедитесь, что домен указан в конфигурационных файлах других сервисов.
Если записи DNS настроены правильно, проверьте файлы виртуальных хостов Apache и Nginx и убедитесь, что они содержат правильный домен сайта.
В Apache найдите этот раздел:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/html
. . .
Этот виртуальный хост будет обслуживать домен example.com по порту 80.
В Nginx домен указывается в этом блоке:
server <
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name example.com www.example.com;
. . .
Такой блок будет также обслуживать домен example.com по порту 80.
Настройки корневого каталога
Также нужно убедиться, что веб-сервер знает, где искать файлы сайта.
Каждый виртуальный хост Apache и Nginx определяет корневой каталог сайта. если Он указан неправильно, сервер вернёт ошибку, потому что не найдет запрашиваемый контент.
В Apache каталог document root настраивается с помощью директивы DocumentRoot:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/html
. . .
Согласно этим настройкам веб-сервер будет искать файлы в каталоге /var/www/html. Если в этом каталоге на самом деле нет файлов сайта, укажите в настройках правильный каталог.
В Nginx корневой каталог определяет директива root.
server <
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name example.com www.example.com;
. . .
Согласно этому файлу Nginx будет искать данные для этого домена в каталоге /usr/share/nginx/html.
Проверка индексных файлов
Если корневой каталог указан правильно, но индексные страницы неверно отображаются при переходе на сайт, возможно, они настроены неправильно.
Когда пользователь запрашивает каталог, сервер выдает ему индексный файл (index.html или index.php, в зависимости от конфигураций).
В виртуальном хосте Apache можно найти строку, которая настраивает порядок отображения индексных файлов.
<Directory /var/www/html>
DirectoryIndex index.html index.php
</Directory>
Когда запрашивается каталог, Apache сначала будет искать файл index.html; если он не сможет обслужить этот файл, он найдёт и обслужит index.php.
Вы можете настроить порядок обслуживания индексных файлов. Для этого можно отредактировать файл mods-enabled/dir.conf, в котором хранятся настройки сервера по умолчанию. Если сервер не обслуживает индексные файлы, убедитесь, что такие файлы есть в корневом каталоге сайта.
В Nginx индексными файлами управляет директива index:
server <
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name example.com www.example.com;
. . .
Проверка прав собственности и доступа
Чтобы веб-сервер мог правильно обслуживать файлы, он должен иметь возможность читать их и иметь доступ к каталогам, в которых они хранятся.
Каталоги, в которых хранится контент сайта, должны предоставлять веб-серверу права на чтение и выполнение. Имя пользователя и группы, которые используются для запуска веб-сервера, зависят от дистрибутива.
В Ubuntu и Debian серверы Apache и Nginx работают с помощью пользователя www-data, который входит в группу www-data.
В CentOS и Fedora веб-сервер Apache работает как пользователь apache, который входит в группуapache; а Nginx использует учетную запись nginx, которая входит в группу nginx.
Вы можете посмотреть каталоги и файлы, в которых хранится контент сайта:
ls -l /path/to/web/root
Пользователь и группа веб-сервера должны иметь право на чтение и запуск каталогов и право на чтение файлов с контентом сайта. Чтобы загрузить, записать или изменить контент, веб-сервер также должен иметь права на запись в файлах и каталогах.
Примечание: Настраивать права на запись в каталогах нужно с большой осторожностью, потому что это может представлять угрозу безопасности системы.
Чтобы передать права собственности на файл, введите:
sudo chown user_owner:group_owner /path/to/file
Точно так же можно передать права на каталог, нужно только добавить флаг –R.
sudo chown -R user_owner:group_owner /path/to/file
Проверка ограничений доступа
Возможно, некоторые конфигурационные файлы блокирую доступ к файлам сайта, которые нужно обслужить.
В Apache доступ может блокировать виртуальный хост или файл .htaccess.
Эти файлы позволяют ограничить доступ несколькими способами. В Apache 2.4 доступ к каталогам ограничивается так:
<Directory /usr/share>
AllowOverride None
Require all denied
</Directory>
Эта строка блокирует доступ к содержимому этого каталога. В Apache 2.2 доступ блокируется так:
<Directory /usr/share>
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Если вы найдете в конфигурационном файле такую директиву для каталога, в котором хранится контент сайта, вы не сможете открыть сайт.
В Nginx ограничения доступа настраиваются с помощью директивы deny и хранятся в виртуальных хостах или главных конфигурационных файлах:
location /usr/share <
deny all;
>
Проверка базы данных
Если сайт использует СУБД (например, MySQL, PostreSQL или MongoDB), убедитесь, что она запущена.
Для этого используется netstat. Команда grep поможет быстро найти в выводе процесс БД.
sudo netstat -plunt | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3356/mysqld
Как видите, в данном случае сервис работает.
Затем нужно проверить, может ли сайт подключиться к БД. Для этого нужно убедиться, что сайт читает файлы, в которых указана информация о базе данных.
Например, параметры подключения к базе данных сайта WordPress хранятся в файле wp-config.php. Убедитесь, что DB_NAME, DB_USER и DB_PASSWORD указаны правильно.
Чтобы проверить информацию, указанную в файле, попробуйте подключиться к БД вручную:
mysql -u DB_USER_value -pDB_PASSWORD_value DB_NAME_value
Если вы не можете подключиться к БД с помощью этих учетных данных, нужно исправить ошибки в параметрах БД.
Передача динамического контента
Если сайт использует БД, он почти наверняка использует язык программирования (например, PHP) для обработки запросов динамического контента, извлечения информации из базы данных и визуализации результатов.
Если это так, убедитесь, что веб-сервер может передавать запросы процессору.
В Apache достаточно убедиться, что модуль mod_php5 установлен и включен. В системах Ubuntu и Debian для этого введите:
sudo apt-get update
sudo apt-get install php5 libapache2-mod-php5
sudo a2enmod php5
В CentOS/Fedora это такие команды:
sudo yum install php php-mysql
sudo service httpd restart
В Nginx проверить это немного сложнее. У Nginx нет модуля PHP, который можно включить, поэтому нужно убедиться, что php-fpm установлен и включен в конфигурациях веб-сервера.
На сервере Ubuntu или Debian убедиться, что все компоненты установлены, можно с помощью команды:
sudo apt-get update
sudo apt-get install php5-fpm php5-mysql
В CentOS и Fedora используйте:
sudo yum install php-fpm php-mysql
Поскольку PHP-процессор не входит в Nginx, он должен передавать файлы в PHP. Больше об этом можно узнать в руководстве Установка LEMP stack на Ubuntu 14.04.
Дальнейшие действия
Если ничего из вышеперечисленного не помогло, снова проверьте логи.
Если вы не можете самостоятельно устранить неполадки и нуждаетесь в помощи, вы сможете получить больше полезной информации, предоставив логи и сообщения об ошибках. Опытные администраторы, вероятно, смогут объяснить, что происходит, если вы дадите им необходимую информацию.
Надеемся, эти советы по устранению неполадок помогут вам выявить и устранить проблемы и ошибки, которые обычно возникают при запуске сайта.
Установка LAMP в Debian 9
Дистрибутив Debian рассматривается в первую очередь как самая стабильная операционная система, поэтому довольно часто он используется на серверах для размещения сайтов. Также часто пользователи Linux вынуждены устанавливать программное обеспечение для работы сайтов на локальную машину чтобы иметь возможность все протестировать и привести в порядок перед отправкой во всемирную сеть.
В этой статье мы рассмотрим как выполняется установка LAMP Debian 9. Аббревиатура LAMP расшифровывается как Linux Apache Mysql PHP, это набор программного обеспечения, который чаще всего используется для размещения сайтов. Раньше мы уже говорили про установку LAMP в Ubuntu, процесс не будет очень сильно отличаться в Debian, но все же есть нюансы.
Установка LAMP в Debian
Сначала мы установим все необходимые компоненты, а затем будем настраивать их и проверять правильность работы по мере необходимости. Но сначала нужно обновить систему до последней версии:
sudo aptitude update && sudo aptitude upgrade
1. Установка компонентов
Сначала установим веб-сервер и интерпретатор языка программирования PHP:
sudo aptitude install apache2 php php-mysql libapache2-mod-php php-mbstring php-zip php-gd

Мы установили не только веб-сервер, но и основные библиотеки PHP, которые могут понадобиться для работы с графикой, строками и сжатыми архивами. Пакет libapache2-php отвечает за интеграцию поддержки php для веб-сервера Apache.
Перед тем как перейти к настройке всего этого, нужно установить систему управления базами данных. Вы можете использовать MySQL либо же версию, разрабатываемую сообществом — MariaDB. Для установки MariaDB выполните:
sudo aptitude install mariadb-server mariadb-client mariadb-common

А для установки MySQL:
sudo aptitude install mysql-server mysql-client mysql-common
В этой статье мы будем рассматривать MariaDB, но работа с MySQL не будет очень сильно отличаться.
2. Настройка Apache и PHP
Уже прошли те времена, когда для того чтобы подключить PHP к Apache нужно было пересмотреть кучу конфигурационных файлов, теперь установка LAMP Debian 9 выполняется достаточно просто. Если уже сейчас запустить Apache, и ввести адрес localhost, то все будет работать. Но давайте сначала добавим домен к нашему сайту. На локальной машине это тоже полезно. Сначала создадим папку для сайта:
sudo mkdir /var/www/test-site/
Конфигурационные файлы виртуальных хостов хранятся в каталоге /etc/apache2/sites-available/ просто скопируйте конфигурацию по умолчанию 000-default в новый файл:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test-site.conf
Теперь полученный файл нужно отредактировать. Нас будут интересовать директивы ServerName и DocumentRoot. Установите для них правильные значения:
ServerName test-site.com
DocumentRoot /var/www/test-site/

Все остальное можно оставить по умолчанию. Дальше сохраните изменения и активируйте сайт командой:
sudo a2ensite test-site.conf
Теперь осталось перезапустить Apache:

Чтобы проверить как все работает создайте файл index.php со следующим содержимым в папке /var/www/test-site/:

Если домен зарегистрирован в интернете и все запросы к нему направляются на ваш ip то уже можно открыть сайт в браузере. Если же нет, вы можете настроить маршрут для домена локально с помощью файла /etc/hosts:
sudo vi /etc/hosts

Теперь можете открывать сайт в браузере и проверять:

Если вы увидели информацию о версии php, как на снимке экрана, значит все работает и нам осталось только настроить базу данных.
3. Настройка базы данных
Как я уже говорил, в качестве основной базы данных мы будем использовать mariadb. Чтобы начать ее настройку выполните:

Я не буду подробно описывать все шаги настройки. Они уже описаны в статье установка MySQL в Ubuntu. После того как процесс первоначальной настройки завершится, создадим новую базу данных:
sudo mysql -u root -p
Далее, для создания базы выполните:
CREATE DATABASE testsite;
Затем создайте пользователя и дайте ему доступ к этой базе данных:
CREATE USER ‘testuser’@’localhost’ IDENTIFIED BY ‘password’;
GRANT ALL PRIVILEGES ON testsite.* TO ‘testuser’@’localhost’;
Ну и для тестирования добавим таблицу:
USE testsite;
CREATE TABLE testtable (
id INT NOT NULL AUTO_INCREMENT,
str VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
);
Теперь добавим одну запись в только что созданную таблицу:
INSERT INTO testtable (str) VALUES (‘test1’), (‘test2’), (‘test3’);
Теперь, чтобы убедиться что все работает, мы попытаемся получить данные из mysql через PHP. Для этого создадим небольшой скрипт. Он будет подключаться к базе данных и читать по порядку записи из таблицы:
sudo vi /var/www/test-site/testmysql.php
$connection = mysqli_connect(«localhost»,»testuser»,»password»,»testsite») or die(«Error » . mysqli_error($connection));
$sql = «SELECT id, str FROM testtable»;
$result = mysqli_query($connection, $sql) or die(«Error » . mysqli_error($connection));
$items = array();
while($row = mysqli_fetch_assoc($result))
<
$items[] = $row;
>
echo json_encode($items);
?>

Далее, сохраните полученный скрипт, и введите его адрес в браузере:

Если вы не увидели никаких ошибок, а на экран были выведены строки из базы данных, задача установить LAMP Debian выполнена. Если же возникли какие-либо ошибки, например, подключения к базе данных, проверьте правильность написания пароля пользователя, имени базы, а также посмотрите логи mysql.
Выводы
Установка и настройка lamp Debian 9 полностью завершена, теперь вы можете перейти к развертыванию собственного приложения или веб-сайта. Эта инструкция подходит как для локальной системы, так и для боевого сервера. Надеюсь, информация была полезной для вас.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как установить PHP 7.4 на Debian 10
В этом руководстве мы покажем вам, как установить PHP 7.4 на Debian 10. Для тех из вас, кто не знал, PHP (рекурсивная аббревиатура от PHP: Hypertext Preprocessor) — популярный серверный язык сценариев, известный для создания динамических и интерактивных веб-сайтов. страниц. PHP — широко используемый язык программирования в Интернете.
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo ‘ к командам для получения привилегий root. Я покажу вам пошаговую установку PHP 7.4 на Debian 10 (Buster).
Установите PHP 7.4 на Debian 10 Buster
Шаг 1. Перед установкой любого программного обеспечения важно убедиться, что ваша система обновлена, выполнив следующие apt команды в терминале:
Шаг 2. Установка PHP 7.4 на Debian 10.
Добавьте пакет Sury PPA для PHP 7.4, используя wget :
Затем добавляем репозиторий:
Пришло время установить PHP 7.4 в вашу систему. Не забудьте обновить свои пакеты перед установкой PHP:
Убедитесь, что PHP 7.4 доступен для установки:
Выполните следующую команду, чтобы установить дополнительные пакеты с PHP 7.4 в системе Debian:
Для Nginx вам необходимо установить FPM, выполните следующую команду, чтобы установить PHP 7.4 FPM:
Шаг 3. Протестируйте PHP.
Чтобы протестировать PHP, создайте тестовый файл с именем info.php с приведенным ниже содержимым. Сохраните файл, затем перейдите к нему, чтобы узнать, работает ли PHP:
Вставьте следующий код:
Попробуйте получить к нему доступ по адресу . Если информационная страница PHP отображается в вашем браузере, значит, все в порядке, и вы готовы продолжить. http : //your_server_ip/info.php
Поздравляю! Вы успешно установили PHP . Благодарим за использование этого руководства для установки PHP 7.4 в системе Debian 10 Buster. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт PHP .