Php 7 mysql centos 7: Установка LAMP (apache+php+mysql) в CentOS 7

Как установить Linux, Nginx, MySQL, PHP (LEMP) в ОС Centos 7 на VPS хостинге

Введение

Набор приложений LEMP представляет собой группу программного обеспечения с открытым исходным кодом, которая обычно устанавливается вместе, чтобы размещать на сервере VPS хостинга динамические веб сайты и веб приложения. Данный термин LEMP является акронимом, который представляет набор из операционной систему Linux, с установленным веб сервером ENginx (который является заменой веб сервера Apache в наборе LAMP). Данные сайта хранятся в базе данных MySQL (либо MariaDB), а динамический контент обрабатывается процессором PHP.

В данном руководстве мы установим набор LEMP в операционную систему CentOS 7, установленную на виртуальный сервер VPS. Операционная система CentOS удовлетворяет первому требованию: операционная система на основе Linux.

 

Перед тем как начать

Перед тем как вы начнете следовать данному руководству, вы должны создать на сервере отдельную учетную запись без прав root.

Примечание касательно SELinux: Если у вас проблемы с запуском веб сервера Nginx, убедитесь в правильной настройке контекста SELinux для конфигурационных файлов Nginx либо измените режим работы SELinux в permissive либо disabled.

 

Шаг первый — установка Nginx

Для того чтобы показывать посетителям вашего сайта веб страницы, мы установим Nginx, современный высокоэффективный веб сервер.

Для добавления репозитория CentOS 7 EPEL, откройте командную строку и наберите следующую команду:

sudo yum install epel-release

Так как мы используем команду sudo, эти операции выполняются с привилегиями супер администратора. При выполнении система запросит у вас пароль root для проверки что вы обладаете полномочиями супер администратора.

Теперь, после того как репозиторий Nginx установлен в вашу систему, можно установить веб сервер Nginx при помощи команды yum:

sudo yum install nginx

В результате выполнения ваш веб сервер будет установлен.

После установки можно запустить Nginx на вашем виртуальном сервере VPS:

sudo systemctl start nginx

Вы сразу же можете проверить что все прошло по плану набрав в адресной строке браузера публичный IP адрес вашего сервера (смотрите примечание в следующем разделе как определить свой публичный IP адрес, если вы его не знаете):

Откройте в адресной строке браузера:
http://server_domain_name_or_IP/

Вы увидите начальную страницу веб сервера Nginx по умолчанию для ОС CentOS 7, которая предназначена для отображения информации и для тестовых целей. Она должна выглядеть приблизительно следующим образом:

Если вы видите подобную страницу, значит вы правильно установили ваш веб сервер.

Перед тем как продолжить далее, вам будет необходимо включить автоматический запуск веб сервера Nginx при загрузке системы. Для этого наберите в командной строке следующую команду:

sudo systemctl enable nginx

Как определить публичный IP адрес своего VPS сервера

Если Вы не знаете какой у вашего VPS сервера публичный IP адрес, есть множество способов его определения. Обычно, это адрес, который вы используете для соединения с сервером через SSH.

Из командной строки вы можете определить его несколькими способами. Для начала, мы можете воспользоваться пакетом iproute2 чтобы определить свой адрес, наберите команду:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

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

В качестве альтернативного метода можно использовать внешний веб сайт, чтобы узнать под каким IP адресом он видит ваш сервер. Вы можете сделать это запрашивая у определенного сервера информацию о вашем IP адресе:

curl http://icanhazip.com

После того как вы определили свой IP адрес, вы можете набрать его в адресной строке вашего веб браузера чтобы открыть веб страницы на вашем веб сервере.

 

Шаг второй — установка базы данных MySQL (либо MariaDB)

После того как мы запустили наш веб сервер, самое время установить систему управления базами данных MariaDB, замену для СУБД MySQL. СУБД MariaDB является ответвлением от MySQL, разрабатываемым сообществом. В общем, эта СУБД организует и предоставляет доступ к базам данных, где может храниться информация с наших веб сайтов.

Опять, мы можем использовать команду yum для получения и установки необходимого программного обеспечения. В этот раз, мы также установим некоторые вспомогательные пакеты, с помощью которых настроим компоненты для связи друг с другом:

sudo yum install mariadb-server mariadb

После завершения установки, нам нужно запустить СУБД MariaDB при помощи следующей команды:

sudo systemctl start mariadb

Теперь, после того как наш сервер базы данных MySQL запущен, нам нужно запустить простой скрипт безопасности, который устранит некоторые уязвимости, установленные по умолчанию и обезопасит доступ к серверу базы данных. Запустите скрипт в командной строке при помощи команды:

sudo mysql_secure_installation

Скрипт запросит у вас текущий пароль root. Так как вы только что установили MySQL, скорее всего у вас его нет, так что оставьте его пустым, нажав на Enter. Затем скрипт запросит у вас хотите ли установить пароль для root. Нажмите Y, и следуйте дальнейшим инструкциям:

Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.

New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
... Success!

На остальные запросы скрипта просто нажимайте Enter чтобы принять значения по умолчанию. В результате будут удалены тестовые учетные записи и базы данных, отключен удаленный вход для root, и загрузятся новые правила, которые сразу же будут использоваться сервером баз данных MySQL после внесенных нами изменений.

Последним шагом будет загрузка сервера баз данных MariaDB при запуске системы. Для этого наберите в командной строке следующую команду:

sudo systemctl enable mariadb

На данном этапе ваша система управления базами данных установлена и можно приступить к следующим действиям.

 

Шаг третий — установка PHP

PHP это компонента нашей установки, которая обрабатывает код для отображения динамического контента. Он может запускать скрипты, соединяться с базами данных MySQL для получения и обработки информации и передавать обработанный контент в веб сервер для отображения посетителям веб сайта.

Для установки необходимых компонентов нам нужно еще раз воспользоваться командой yum. Заодно мы установим пакеты php-mysql и php-fpm:

sudo yum install php php-mysql php-fpm

Конфигурация PHP

Теперь, после того как компоненты PHP установлены, нам необходимо внести небольшие изменения в конфигурацию для безопасной работы.

Откройте главный файл конфигурации с привилегиями root:

sudo vi /etc/php. ini

В данном файле нам нужно найти параметр cgi.fix_pathinfo. Он будет закомментирован символом (;) и по умолчанию имеет значение «1».

Это крайне ненадежный параметр, т.к. он просит PHP изменить путь и попытаться запустить ближайший PHP-файл, который будет найден, если указанный файл не имеет точного соответствия.  В основном данный параметр позволит пользователям создавать PHP-запросы таким образом, что бы они могли запускать скрипты, исполнение которых было ограничено.

Что бы изменить оба этих условия необходимо раскомментировать данный параметр и установить ему значение «0» следующим образом:

/etc/php.ini excerpt
cgi.fix_pathinfo=0

Сохраните и закройте файл по завершении.

Затем откройте конфигурационный файл php-fpm, который называется www.conf:

sudo vi /etc/php-fpm.d/www.conf

Найдите параметр listen и измените его значение следующим образом:

listen = /var/run/php-fpm/php-fpm.sock

Затем, найдите строки с параметрами listen. owner и listen.group, раскомментируйте их.Они должны выглядеть следующим образом:

listen.owner = nobody
listen.group = nobody

И наконец, найдите строки с параметрами user и group, измените их значение и «apache» на «nginx»:

user = nginx
group = nginx

По завершении всех изменений сохраните файл и выйдите с редактора.

Теперь осталось лишь запустить PHP, набрав следующую команду:

sudo systemctl start php-fpm

Тем самым мы активируем все изменения, произведенные выше.

Следующим шагом активируем автоматический запуск php-fpm при загрузке системы:

sudo systemctl enable php-fpm

Шаг четвертый — Настройка Nginx для обработки PHP страниц

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

sudo vi /etc/nginx/conf. d/default.conf

В данный момент, раскомментированный серверный блок Nginx по умолчанию выглядит следующим образом:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

Нам необходимо внести небольшие изменения в данный конфигурационный файл.

  • Во первых — необходимо указать первым значением директивы index параметр index.php, это позволит первично обрабатывать индексные файлы PHP при запросе каталога
  • Также необходимо изменить директиву server_name, указав доменное имя или IP адрес нашего сервера
  • Изменяемый конфигурационный файл содержит некоторые закомментированные строки, которые определяют процедуры обработки ошибок. Необходимо раскомментировать их, что бы активировать их функциональность.
  • Для непосредственной обработки PHP необходимо так же раскомментировать часть другого раздела. Также необходимо добавить директиву try_files, чтобы веб-сервер Nginx не пропускает подозрительные запросы на PHP.

Все изменения, которые необходимо внести в конфигурационный файл default.conf, отмечены красным цветом. Для упрощения вы можете просто скопировать и вставить весь нижеописанный код, а после заменить в нем параметр server_name на соответствующее доменное имя или IP адрес.

server {
    listen       80;
    server_name  server_domain_name_or_IP;

    # note that these lines are originally from the "location /" block
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \. php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

После завершения указанных изменений не забудьте сохранить конфигурационный файл и закройте его.

Перезапустите Nginx следующей командой, чтобы измененные параметры вступили в силу.

sudo systemctl restart nginx

Шаг пятый — проверка PHP на вашем веб-сервере

Для того, чтобы проверить правильную настройку PHP, мы можем воспользоваться базовым PHP скриптом.

Для этого назовем скрипт info.php. Для того, чтобы Nginx смог найти данный файл и правильно его обработать, он должен быть сохранен в определенный каталог, который называется «web root».

В ОС Centos 7 данная директория расположена в /usr/share/nginx/html/. Создадим необходимый нам файл в указанной директории следующей командой:

sudo vi /usr/share/nginx/html/info. php

В созданный пустой файл info.php поместим следующий PHP код:

Сохраните внесенный изменения и закройте файл.

Теперь можно проверить, может ли наш веб-сервер правильно отображать контент, сгенерированный PHP скриптом. Для этого надо просто открыть эту страницу на веб-браузере. Для данной операции понадобиться общественный IP адрес вашего сервера:

http://IP_адрес_вашего_сервера/info.php

В результате веб-браузер должен отобразить страницу, которая выглядит примерно так:

Данная страница в основном отображает информацию о вашем сервере с точки зрения PHP. Данная процедура полезна для отладки и проверки применения настроек.

Если ваша веб-страница отображает схожую информацию — ваш PHP работает должным образом.
После проверки PHP желательно удалить созданный файл, поскольку он отображает информацию о вашем сервере неавторизованным пользователям. Для этого вы можете воспользоваться следующей командой:

sudo rm /usr/share/nginx/html/info. php

При необходимости вы всегда можете создать этот файл для получения необходимой информации.

Установить стек лампы на Centos 7

How To Install Linux, Apache, MySQL, PHP & phpMyAdmin LAMP stack On CentOS 7


How To Install Linux, Apache, MySQL, PHP & phpMyAdmin LAMP stack On CentOS 7

Оглавление:

  • Установить LEMP Stack в CentOS 7
  • Предпосылки
  • Шаг 1. Установка Apache
  • Шаг 2. Установка MariaDB
  • Шаг 3. Установка PHP
  • Дополнительная информация
  • Учебники




Термин LAMP является аббревиатурой от имен его четырех компонентов с открытым исходным кодом:

  • L — операционная система Linux A — Apache — самый популярный в мире веб-сервер HTTP. M — MySQL или система управления реляционными базами данных MariaDB. P — язык программирования PHP.

В этой серии мы покажем вам, как установить Apache, создать бесплатный SSL-сертификат Let’s Encrypt, установить и защитить MariaDB и установить PHP 7.x.



Установить LEMP Stack в CentOS 7

Это краткое руководство покажет вам основные шаги, необходимые для установки стека LEMP на сервере CentOS 7.

Предпосылки

Пользователь, в который вы вошли, должен иметь права sudo для установки пакетов.

Шаг 1. Установка Apache

Apache доступен в репозиториях CentOS 7 по умолчанию, и установка довольно проста. В CentOS и RHEL пакет Apache и служба называются httpd. Для установки пакета выполните следующую команду:




sudo yum install

После завершения установки запустите и включите службу Apache, введя:


sudo systemctl start


sudo systemctl enable

Шаг 2. Установка MariaDB

Следующим шагом является установка пакетов MariaDB. Для этого введите:


sudo yum install mariadb-server

После установки сервера MariaDB запустите и включите службу с помощью:


sudo systemctl start mariadb.service


sudo systemctl enable mariadb.service

  • На момент написания статьи MariaDB 5.5 была доступна в официальном репозитории CentOS 7. Если вы хотите установить более новую версию, пожалуйста, обратитесь к этому руководству. Если вы хотите установить MySQL вместо MariaDB, обратитесь к нашему руководству за инструкциями по установке.



Шаг 3. Установка PHP

CentOS 7 поставляется с версией PHP 5.4, которая в течение некоторого времени редактируется EOL, поэтому мы будем использовать репозиторий Remi для установки PHP 7.2.

Выполните следующую команду, чтобы установить репозиторий Remi в вашу систему:


sudo yum install

После добавления установите пакет

yum-utils

и включите репозиторий

remi-php72

:


sudo yum install yum-utils


sudo yum-config-manager --enable remi-php72

Теперь, когда у нас включен репозиторий Remi, мы можем установить PHP FPM и несколько наиболее распространенных модулей PHP с:




sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql

После установки пакетов PHP перезапустите службу Apache с помощью:


sudo systemctl restart

Дополнительная информация

Для получения более подробных инструкций о каждом шаге, пожалуйста, обратитесь к следующим учебникам.

Учебники


mysql — полное удаление и повторная установка PHP на Centos 7

спросил

Изменено
3 года, 9 месяцев назад

Просмотрено
24к раз

Мне нужно было попробовать PHP 5.6 и 5.5 на Centos 7. Итак, я установил их поверх идеально работающей установки PHP 7.1. Я следовал инструкциям здесь: https://www.mojowill.com/geek/howto-install-php-5-4-5-5-or-5-6-on-centos-6-and-centos-7/

По сути, я отредактировал файл конфигурации remi repo, чтобы включить PHP 5.6 и 5.5, и установил PHP 5.6. Я проверил то, что хотел проверить, и попытался вернуться, отключив репозитории и удалив все php, а затем снова переустановив. Теперь у меня проблемы.

Вот симптомы и то, что я пробовал.

Я получаю сообщение об установке WordPress » Похоже, что в вашей установке PHP отсутствует расширение MySQL, которое требуется для WordPress. »

 # php -v
PHP **7.2.14** (cli) (построено: 8 января 2019 г.14:05:15) ( НТС )
Copyright (c) 1997-2018 The PHP Group
 работает, но говорит, что версия php **7.1.24**
 

Я попытался проверить, установлен ли еще php-mysql:

 # список yum установлен | grep php
php.x86_64 7.2.14-1.el7.remi @remi-php72
php-cli.x86_64 7.2.14-1.el7.remi @remi-php72
php-common.x86_64 7.2.14-1.el7.remi @remi-php72
php-gd.x86_64 7.2.14-1.el7.remi @remi-php72
php-json.x86_64 7.2.14-1.el7.remi @remi-php72
php-mysqlnd.x86_64 7.2.14-1.el7.remi @remi-php72
php-pdo.x86_64 7.2.14-1.el7.remi @remi-php72
php-pecl-mcrypt.x86_64 1.0.1-6.el7.remi.7.2 @remi-php72
# ням установить php-mysql
Загруженные плагины: fastmirror, langpacks
Загрузка зеркальных скоростей из кэшированного хост-файла
 * база: mirror.layeronline.com
 * epel: зеркало.uic.edu
 * дополнительные материалы: centos.mirror.globo.tech
 * nux-dextop: зеркало.li.nux.ro
 * Реми: repo1.ash.innoscale.net
 * remi-php72: repo1. ash.innoscale.net
 * реми-сейф: repo1.ash.innoscale.net
 * обновления: centos.mirror.ca.planethoster.net
 * вебтатик: us-east.repo.webtatic.com
Пакет php-mysql-5.4.45-16.el7.remi.x86_64 устарел на php-mysqlnd-7.2.14-1.el7.remi.x86_64, который уже установлен
 

Есть ли какое-то простое решение этой неразберихи, или мне просто нужно заново установить всю машину для разработки.

  • php
  • mysql
  • установка
  • centos7
  • yum

4

Сначала удалите все, что касается старой версии php (это займет некоторое время…)

 sudo yum remove --setopt=clean_requirements_on_remove=1 php php-pear php-mysql php-cli php-common mod-php
 

затем установите более новую версию (это займет еще больше времени)

 sudo yum install mod_php70u php70u-cli php70u-mysqlnd
 

не забудьте перезагрузить и проверить
перезапуск sudo apachectl
systemctl status httpd

Если вы используете fpm с NGinX, используйте следующую деинсталляцию (это сохранит конфигурацию просто для удаления пакетов / зависимостей)

 sudo yum remove --setopt=clean_requirements_on_remove=1 php-fpm php-cli php- общий php7-fpm php7-cli php7-общий
 

и установить

 sudo yum установить php7-fpm-nginx php7-cli php7-mysqlnd
 

(при необходимости используйте [72] вместо [7])

сохранить, выйти и перезапустить

 sudo systemctl перезапустить php-fpm
    sudo systemctl перезапустить nginx # (или что вы используете)
 

рассмотрите возможность перехода на версию 7. 1, так как это может быть немного менее болезненным при подключении модулей, чем в последней версии, особенно на всегда проблематичной ОС CentOS

(спасибо @fyrye за варианты удаления)

1

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

apache — Как обновить до PHP 7.

4 с PHP 7.x на CentOS 7

спросил

Изменено
1 год, 11 месяцев назад

Просмотрено
46 тысяч раз

Я использую PHP 7.1 на CentOS 7, который был установлен с помощью Remi Repo. WordPress информирует меня об обновлении до PHP 7.4 по соображениям безопасности. Как я могу обновить версию PHP на сервере, на котором запущен стек Apache/MySQL LAMP?

  • PHP
  • apache
  • обновления
  • лампа
  • centos7.6

1

ПРОЧИТАЙТЕ СНАЧАЛА — ВАЖНО !!!
Получите полную резервную копию вашего сервера, прежде чем выполнять эти шаги обновления

  1. Первое, что вы должны сделать, это выполнить все основные обновления ОС и обновления пакетов.

    ням обновление -y

  2. Проверьте, какую версию PHP вы используете в данный момент.

    php -v

  3. Распечатайте список, чтобы увидеть все установленные вами пакеты PHP. Вам нужно будет заменить все эти пакеты в PHP 7.4. Вы должны скопировать этот список в файл, чтобы вы могли обратиться к нему, если вам нужно. Запишите здесь версию PHP (7x или 7-x).

    об/мин -qa | grep php

    об/мин -qa | grep php > php_rpm.txt

  4. Удалить ядро ​​PHP и все установленные пакеты PHP.

    yum удалить "php*" -y

  5. Установите обновленный репозиторий remi, если он еще не установлен.

    yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

  6. Проверить список всех доступных пакетов remi (не обязательно)

    yum repolist remi-safe

7.