You are here: Home » Инструкции » Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP7 и phpMyAdmin) в Arch Linux / BlackArch

Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP7 и phpMyAdmin) в Arch Linux / BlackArch

Основывается на материале (но актуализировано для PHP7, для MySQL 5.7 и т.д.): http://www.tecmint.com/install-lamp-in-arch-linux/

Эта инструкция расскажет вам о том, как установить одну из самых часто используемых связок в веб-разработке: LAMP (Linux, Apache, MySQL/MariaDB и PHP/PhpMyAdmin). Кроме подробной пошаговой инструкции по настройке сервера вам также будут представлены несколько замечательных возможностей (быстрых и грязных Bash скриптов), которые отсутствуют в системе Arch Linux, но которые могут облегчить работу по созданию множества виртуальных хостов, генерации SSL сертификатов и ключей, необходимых для безопасных транзакций HTTS.

Шаг 1: Установка базового программного обеспечения LAMP

1. Обновим нашу систему с помощью утилиты pacman.

sudo pacman -Syu

2. Когда процесс обновления завершиться, установим LAMP по частям, начнём с установки веб-сервера Apache Web Server и запустим/проверим демон каждого серверного процесса.

sudo pacman -S apache
sudo systemctl start httpd
sudo systemctl status httpd

01

3. Установим динамический скриптовый язык на стороне сервера PHP и его модуль для Apache.

sudo pacman -S php php-apache php-imap

4. Последним шагом установим систему управления базами данных MySQL, выберите вариант 1 (MariaDB) – форк от сообщества.

sudo pacman -S mysql

Выполним инициализацию:

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Запустите и проверьте статус демона.

sudo systemctl start mysqld
sudo systemctl status mysqld

02

Не запутайтесь. Мы устанавливаем MariaDB, но она настолько совместима с MySQL, что служба запускается аналогичной командой. Аналогичной же командой производится подключение к БД. Вы можете установить оригинальную MySQL из AUR – если это кому-то интересно, то пишите в комментариях и материал будет добавлен.

Теперь мы имеем установленное базовое программное обеспечение LAMP с настройками по умолчанию.

Шаг 2: Обезопасим СУБД MySQL

5. Следующим шагом обезопасим СУБД MySQL настроив пароль для аккаунта root, удалив анонимные пользовательские аккаунты, удалив тестовую базу данных и отключив удалённый вход для пользователя root (когда попросят ввести текущий пароль, то просто нажмите клавишу [Enter] затем введите два раза новый пароль, на все вопросы выбирайте ответы по умолчанию, т.е. Да).

sudo mysql_secure_installation

6. Проверьте подключение к базе данных MySQL следующей командой, для выхода наберите quit или exit.

mysql -u root -p

Шаг 3: Модификация главного конфигурационного файла Apache

7. Следующие настройки, в первую очередь, относятся к веб-серверу Apache для обеспечения динамического интерфейса для виртуального хостинга со скриптовым языком PHP, виртуальных хостов SSL или не-SSL; это можно сделать модификацией файла настроек службы httpd.

Для начала откройте конфигурационный файл Apache вашим любимым текстовым редактором.

sudo vim /etc/httpd/conf/httpd.conf

И в низ этого файла добавьте следующие две строки.

IncludeOptional conf/sites-enabled/*.conf
IncludeOptional conf/mods-enabled/*.conf

Смысл этих строк в том, мы говорим Apache, что начиная с этого момента ему следует читать последующие настройки из всех файлов, которые расположены в /etc/httpd/conf/sites-enabled/ (виртуальный хостинг) и /etc/httpd/conf/mods-enabled/ (для включения модулей сервера) и системный путь которых заканчивается расширением .conf.

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

sudo mkdir /etc/httpd/conf/sites-available
sudo mkdir /etc/httpd/conf/sites-enabled
sudo mkdir /etc/httpd/conf/mods-enabled

Путь sites-available содержит файлы настроек всех виртуальных хостов, которые не активированы на Apache, но следующий скрипт Bash будет использовать эту директорию для связи и задействования веб-сайтов, которые там расположены.

Шаг 4: Создание команд Apache a2eniste и a2diste

9. Теперь время создать скрипты Apache a2ensite и a2dissite, которые будут выполнять команды по включению и отключению файлов настроек виртуальных хостов. Наберите команду cd для возвращения в вашу домашнюю директорию и создайте a2eniste и a2dissite используя ваш любимый редактор.

sudo vim a2ensite

Добавьте следующие содержимое в этот файл.

#!/bin/bash
if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled  ; then
echo "-------------------------------"
else
mkdir /etc/httpd/conf/sites-available
mkdir /etc/httpd/conf/sites-enabled
fi

avail=/etc/httpd/conf/sites-available/$1.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-available/`

if [ "$#" != "1" ]; then
        echo "Use script: n2ensite virtual_site"
        echo -e "\nAvailable virtual hosts:\n$site"
        exit 0
else
if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site"
exit 0
fi
fi

Теперь создайте файл баш скрипта a2dissite.

sudo vim a2dissite

Добавьте следующее содержание.

#!/bin/bash
avail=/etc/httpd/conf/sites-enabled/$1.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-enabled`

if [ "$#" != "1" ]; then
        echo "Use script: n2dissite virtual_site"
        echo -e "\nAvailable virtual hosts: \n$site"
        exit 0
else
if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nsudo systemctl restart httpd"
exit 0
fi
fi

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

sudo chmod +x a2ensite a2dissite
sudo cp a2ensite a2dissite /usr/local/bin/

10. Установка ServerName для подавления предупреждения

Далее мы добавим одну строку в файл /etc/httpd/conf/httpd.conf чтобы убрать сообщение с предупреждением. Хотя это и безвредно, если вы не установили ServerName на глобальном уровне, вы будете получать следующее сообщение о синтаксической ошибке в конфигурации Apache:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

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

sudo vim /etc/httpd/conf/httpd.conf

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

. . .
ServerName server_domain_или_IP

Если вы забыли внешний IP сервера, то проверить его можно так:

curl suip.biz/ip/

Для локального веб-сервера можно сделать следующую запись:

ServerName localhost

Когда закончите, сохраните и закройте файл.

Для того, чтобы изменения вступили в силу, перезапустите Apache:

sudo systemctl restart httpd

Шаг 5: Создание виртуальных хостов в Apache

11. Дефолтный конфигурационный файл виртуальных хостов для веб-сервера Apache на Arch Linux является файлом httpd-vhosts.conf, который размещён в директории /etc/httpd/conf/extra/, но если у вас система, которая использует множество виртуальных хостов, то может быть трудно отследить, какой веб-сайт был активирован, а какой нет. Если вы хотите отключить веб-сайт, вы должны закомментировать или удалить все его директивы, и это может быть трудной миссией, если ваша система обслуживает множество веб-сайтов и ваш веб-сайт имеет больше конфигурационных директив.

Использование путей sites-available и sites-enable, здорово упрощает работу по включению и отключению веб-сайтов и также сохраняет конфигурационные файлы всех веб-сайтов в независимости от того, активированы они или нет.

Следующим шагом мы собираемся сконструировать первый виртуальный хост, который указывает на дефолтный localhost с дефолтным путём DocumentRoot для обслуживания файлов веб-сайта (/srv/http).

sudo vim /etc/httpd/conf/sites-available/localhost.conf

Здесь добавьте следующие директивы Apache.

<VirtualHost *:80>
        DocumentRoot "/srv/http"
        ServerName localhost
        ServerAdmin you@example.com
        ErrorLog "/var/log/httpd/localhost-error_log"
        TransferLog "/var/log/httpd/localhost-access_log"

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

Самыми важными выражениями здесь являются директивы Port и ServerName, которые инструктируют Apache открыть сетевое подключение на порту 80 и перенаправлять все запросы с именем localhost на обслуживаемые файлы, размещённые по пути /srv/http/.

12. После того, как файл локалхоста был создан, активируйте его и затем перезапустите демон httpd, чтобы он увидел изменения.

sudo a2ensite localhost
sudo systemctl restart httpd

13. Затем перейдите в своём браузере по адресе http://localhost, если вы работаете с локальной системой Arch или по адресу http://Arch_IP если вы используете удалённую систему.

03

Шаг 6: Включение SSL с виртуальным хостингом на LAMP (опционально)

Этот шаг можно пропустить. На локальном сервере (localhost) этот шаг рекомендуется пропустить.

SSL (Secure Sockets Layer) – это протокол, созданный для безопасных HTTP соединений по сети или в Интернете, который делает так, что поток данных переправляется через безопасный канал, используя симметричные/ассиметричные ключи шифрования, которые предоставляются в Arch Linux пакетом OpenSSL.

14. По умолчанию модоуль SSL на включен на Apache в Arch Linux и может быть активирован раскомментированием строки модуля mod_ssl.so в конфигурационном файле httpd.conf и Include httpd-ssl.conf файла, размещённом в директории httpd extra.

Но для упрощения, мы собираемся создать новый модульный файл для SSL в директории mods-enabled, главный конфигурационный файл Apache оставить нетронутым. Создайте следующий файл для модуля SSL и добавьте следующее содержимое.

sudo vim /etc/httpd/conf/mods-enabled/ssl.conf

Добавьте туда.

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Listen 443

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/run/httpd/ssl_scache(512000)"
SSLSessionCacheTimeout  300

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

sudo vim /etc/httpd/conf/sites-available/localhost-ssl.conf

Добавьте следующее содержимое в этот файл.

<VirtualHost *:443>
        DocumentRoot "/srv/http"
        ServerName localhost
        ServerAdmin you@example.com
        ErrorLog "/var/log/httpd/localhost-ssl-error_log"
        TransferLog "/var/log/httpd/localhost-ssl-access_log"

SSLEngine on

SSLCertificateFile "/etc/httpd/conf/ssl/localhost.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/localhost.key"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

<Directory "/srv/http/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog "/var/log/httpd/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory />

    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

Кроме директив Port и ServerName, другие важные директивы это указание на файл сертификата SSL и файл ключей SSL, которые ещё не созданы, поэтому не перезапускайте веб-сервер Apache или вы получите ошибки.

16. Для создания требуемых файлов сертификата SSL установите пакет OpenSSL набрав нижеприведённую команду.

sudo pacman -S openssl

17. Затем создайте следующий баш скрипт, который автоматически создаёт и сохраняет все ваши сертификаты и ключи Apache в системной директории /etc/httpd/conf/ssl/.

vim apache_gen_ssl

Добавьте в этот файл следующий контент, сохраните его и сделайте исполнимым.

#!/bin/bash
mkdir /etc/httpd/conf/ssl
cd /etc/httpd/conf/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx  SSL certificate!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The certificate "$cert" has been generated!\nPlease link it to Apache SSL available website!"

ls -all /etc/httpd/conf/ssl
exit 0
sudo chmod +x apache_gen_ssl

Если вы хотите, чтобы этот скрипт был доступен во всей системе по короткой команде, то сделайте так.

sudo cp ./apache_gen_ssl  /usr/local/bin/

18. Теперь сгенерируйте ваш сертификат и ключи запустив этот скрипт. Предоставьте ваши SSL опции и не забудьте чтобы имя сертификата и общее имя соответствовали вашему официальному имени домена (FQDN).

sudo apache_gen_ssl

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

Для соответствия вышеприведённым настройкам, переименуем файлы сертификатов:

sudo mv /etc/httpd/conf/ssl/.crt /etc/httpd/conf/ssl/localhost.crt
sudo mv /etc/httpd/conf/ssl/.key /etc/httpd/conf/ssl/localhost.key

19. Последний шаг – это активация нового виртуального хоста SSL и перезапуск сервера, чтобы изменения вступили в силу.

sudo a2ensite localhost-ssl
sudo systemctl restart httpd

Вот оно! Для проверки откройте в вашем браузере адрес и добавьте HTTPS протокол: https://localhost или https://system_IP.

Шаг 7: Включение PHP 7 на Apache

20. По умолчанию сервер Apache в Arch Linux обслуживает только содержимое статичных HTML файлов без поддержки динамических скриптовых языков. Для активации PHP начните с открытия главного конфигурационного файла Apache, найдите и закомментируйте следующую строку LoadModule (php-apache не работает с mod_mpm_event в Arch Linux).

sudo vim /etc/httpd/conf/httpd.conf

Для поиска используйте /.

Исходная строка:

LoadModule mpm_event_module modules/mod_mpm_event.so

Должно получиться:

#LoadModule mpm_event_module modules/mod_mpm_event.so

Найдите и раскомментируйте строку:

#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Должно получиться:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

21. Затем создайте новый файл PHP модуля в директории mods-enabled со следующим содержимым.

sudo vim /etc/httpd/conf/mods-enabled/php.conf

Добавьте в точности следующий контент (вы должны использовать mod_mpm_prefork).

LoadModule php7_module modules/libphp7.so
Include conf/extra/php7_module.conf
AddHandler application/x-httpd-php .php

22. Для проверки настроек PHP создайте файл с именем info.php в DocumnetRoot (/srv/http/), затем перезапустите Apache перейдите в вашем браузере по адресу: https://localhost/info.php.

sudo vim /srv/http/info.php
<?php
phpinfo();
sudo systemctl restart httpd

04

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

Если вы хотите проверить синтаксис настроек Apache и просмотреть список загруженных модулей без перезапуска демона httpd, то используйте следующие команды.

sudo apachectl configtest
sudo apachectl -M

Шаг 8: Установка и настройка PhpMyAdmin

23. Если вы не мастер по командной строке MySQL и хотите простой удалённый доступ к СУБД MySQL через веб-интерфейс, тогда вам нужен установленный пакет phpMyAdmin на ваш Arch.

sudo pacman -S phpmyadmin

24. После того, как пакеты были установлены вам нужно включить некоторые расширения PHP (mysqli.so) и вы также можете включить другие модули, которые необходимы для будущих платформ CMS, к примеру openssl.so, imap.so или iconv.so и т.д..

sudo vim /etc/php/php.ini

Найдите и раскомментируйте следующие расширения.

extension=bz2.so
extension=iconv.so
extension=imap.so
extension=mysqli.so
extension=pdo_mysql.so
extension=zip.so

В этом же файле найдите строку

;session.save_path = "/tmp"

если она закоментирована, то раскоментируйте её, чтобы получилось

session.save_path = "/tmp"

Также в этом же файле найдите и укажите расположение для выражения open_basedir и добавьте системный путь phpMyAdmin (/etc/webapps/ и /usr/share/webapps/) чтобы убедиться, что PHP имеет доступ для чтения файлов в этих директориях (Если вы ещё меняете путь виртуальных хостов DocumentRoot с /srv/http на другое расположение вам также нужно добавить сюда новые пути). При использовании путей по умолчанию, эта директива должна выглядеть так:

open_basedir = /srv/http/:/etc/webapps/:/usr/share/webapps/:/tmp/

25. Последнее что нужно, чтобы получить доступ к веб-интерфейсу phpMyAdmin, это добавить записи Apache на виртуальные хосты. В целях безопасности убедимся, что веб-интерфейс phpMyAdmin будет доступен только из локалхоста (или системного IP адреса) с использованием HTTPS протокола и не с других виртуальных хостов. Итак, откройте ваш файл Apache localhost-ssl.conf  и внизу, перед последней записью, добавьте следующее содержимое.

sudo vim /etc/httpd/conf/sites-enabled/localhost-ssl.conf
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"

<Directory "/usr/share/webapps/phpMyAdmin">
    DirectoryIndex index.html index.php
    AllowOverride All
    Options FollowSymlinks
    Require all granted
</Directory>

26. После всего перезапустите демон Apache и перейдите в вашем браузере по следующему адресу, чтобы получить доступ к веб-интерфейсу вашего phpMyAdmin: https://localhost/phpmyadmin или https://system_IP/phpmyadmin.

27. Если после входа в phpMyAdmin, вы видите внизу сообщение об ошибке относящееся к blowfish_secret, то откройте и отредактируйте файл /etc/webapps/phpmyadmin/config.inc.php и вставьте случайную строку вроде следующей, затем перезагрузите страницу.

$cfg['blowfish_secret'] = 'kjLGJ8g;Hj3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V';

28. Включение дополнительных возможностей phpMyAdmin. Это необязательно, но для получения дополнительной функциональности и отсутствия предупреждений, добавьте в файл /etc/webapps/phpmyadmin/config.inc.php строку

$cfg['Servers'][$i]['pmadb'];

И импортируйте файл /usr/share/webapps/phpMyAdmin/sql/create_tables.sql.

Шаг 9: Включение LAMP при загрузке

29. Если вы хотите, чтобы стек LAMP загружался автоматически после перезагрузки системы, то выполните следующую команду.

sudo systemctl enable httpd mysqld

Здесь были описаны главные конфигурационные настройки LAMP, которые нужны для превращения вашей системы на Arch Linux в простую, но мощную и крепкую веб-платформу с самым последним серверным программным обеспечением для маленький некритичных окружений. Но для использования в рабочем окружении вам нужно продолжить изучение опций и особенностей обслуживания веб-серверов, уделять особое внимание обновлению пакетов и делать регулярное резервное копирование образов для быстрого восстановления системы в случае аварий.   

23 комментария

  1. Квест прошел. 🙂
    Единственное в конце с логином в phpmyadmin затупил. Надо было ввести логин\пароль которые задавал к базе в начале. 🙂
     

  2. Не понятно про SSL.
    На какой имя генерировать их если я собираюсь запускать https в лок. сети.
    Сделал на локальный адрес в свой сети 192.168.0.62, захожу с браузера, сайт рабоатет, но соединение не защищено, ругается на несоответствие имени сайта.

    • Для локалки это неизбежно. Т.е. если вас это устраивает, можете добавить сертификат в брауезре в доверенные (не уверен, как это называется) и тогда не будет этого сообщения до следующей смены сертификатов.

      Проще и при этом абсолютно бесплатно можно получить валидные сертификаты для домена. Т.е. домен в любом месте покупаете за деньги, а настоящие валидные сертификаты (на которые браузерs не ругаются) получаете абсолютно бесплатно, например, в Let's Encrypt.

      Сертификаты действуют три месяца, но продлевать и получать новые можно неограниченное количество раз на любые свои домены (хоть по три раза на дню меняйте). Это можно сделать автоматически с помощью программы acme-tiny ( https://github.com/diafygi/acme-tiny ).

      Вот здесь я пытался как можно подробнее описать работу с этой программой (хотя, на мой взгляд, получилось немного сумбурно): https://zalinux.ru/?p=530

      Я таким образом получаю сертификаты для сайтов https://suip.biz/ru/ и https://softocracy.ru/ - можете перейти – браузер не ругается, а если посмотреть свойства сертификатов, то они действительны на три месяца – как я написал, это абсолютно не проблема. Кстати, сервак (VPS) для тех сайтов работает на Arch Linux.

      • Спасибо за ответ.
        У меня нет цели покупать домены и выводить сервера в онлайн. 
        Я делаю Облачко для офиса внутри локалки или с доступом по VPN в него.
        Интересует что браузер показывает иконку "замок перечеркнут" и пишет что "соединение не защищено"

        Клиент на Андроиде показал что сертфикат не действителен и теперь на форме соединения при указании IP сервера пишет что сервер не найден. Хотя он есть и впервый раз он его увидел но сертификат не пропустил. 

        • Я могу ошибаться, но для защиты данных при передаче между локальной сетью и теми клиентами, которые снаружи, VPN'а вполне достаточно - трафик уже хорошо зашифрован. 

          Если требуется также защитить данные внутри локальной сети, чтобы один клиент не мог перехватывать данные другого клиента, то, возможно, достаточно добавить самоподписанные сертификаты в доверенные. Возможно, что-то придумать с топологией VPN: все локальные компьютеры подключаются к VPN и только через него имеют доступ к облаку. Другие соединения (доступ к общим папкам и т.д.) между клиентами локальной сети не блокировать, а только не давать доступ к облаку без VPN. Соответственно, нужда в HTTPS отпадает, его просто не использовать, чтобы не смущать сообщениями.

          Всё это ИМХО: я сам в процессе обучения, вполне возможно, что что-то понимаю неправильно.

  3. Андроид клиент сцепился, просто я указывал IP без /owncloud. 🙂

    Все заработало!

  4. У тебя не правильно в пункте 6, а именно sudo cp /apache_gen_ssl  /usr/local/bin/  

    Переделывал не сколько раз, в том числе полная переустановка вся и всего. 

     ssl не работает короче. Да кстати Arch хороший дистрибутив. 

    • Там действительно было неправильно. Сейчас поправил. Спасибо, что обратили внимание!

      Пропустил этот момент, т.к. сам его никогда не делаю – на локалхосте сертификат не нужен. На сайтах – нужен, а на локалхосте – нет.

  5. Подскажите, на Arch или Manjaro как-то можно поставить php 7 и php 5.6 и заставить их работать вместе? Нашел инструкцию по установке и настройке php 5.6 для отдельного виртуального хоста, но инструкция, к сожалению для Debian. 

  6. Делаю все по мануалу
    Дохожу до 5 шага, и там траблы. 
     

    [root@Box ~]# systemctl status httpd
    ● httpd.service - Apache Web Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor 
       Active: failed (Result: exit-code) since Tue 2017-03-21 23:50:05 EET; 2s
      Process: 2733 ExecStop=/usr/bin/httpd -k graceful-stop (code=exited, stat
      Process: 2731 ExecStart=/usr/bin/httpd -k start -DFOREGROUND (code=exited
     Main PID: 2731 (code=exited, status=1/FAILURE)

    мар 21 23:50:05 Box systemd[1]: Started Apache Web Server.
    мар 21 23:50:05 Box httpd[2731]: AH00526: Syntax error on line 2 of /etc/ht
    мар 21 23:50:05 Box httpd[2731]: Invalid command '\xc2\xa0\xc2\xa0\xc2\xa0\
    мар 21 23:50:05 Box systemd[1]: httpd.service: Main process exited, code=ex
    мар 21 23:50:05 Box httpd[2733]: AH00526: Syntax error on line 2 of /etc/ht
    мар 21 23:50:05 Box httpd[2733]: Invalid command '\xc2\xa0\xc2\xa0\xc2\xa0\
    мар 21 23:50:05 Box systemd[1]: httpd.service: Control process exited, code
    мар 21 23:50:05 Box systemd[1]: httpd.service: Unit entered failed state.
    мар 21 23:50:05 Box systemd[1]: httpd.service: Failed with result 'exit-cod
    lines 1-16/16 (END)
     

    • Пишет об ошибке в синтексисе файла - т.е. что-то неправильно вписали. Сообщение обрезано, но, думаю. имеется ввиду файл /etc/httpd/conf/httpd.conf или какой-то файл настроек виртуального хоста в /etc/httpd/conf/sites-available/

      Когда запускаете systemctl status httpd, то подвигайте стрелочкой вправо, чтобы полностью увидеть название файла в обрезанной строке мар 21 23:50:05 Box httpd[2731]: AH00526: Syntax error on line 2 of /etc/ht

      • Пишет что в файле localhost.conf
        2 строка
        Но там явно все так как в мануале 

        • Может быть, скрытый символ или всё таки ошибка. Попробуйте пересоздать файл, не вручную вводить а копи-пастой.

          • Я понял. 
            Я пытался все проделать заново. 
            Удалял все что ставил и некоторые папки. 
            Теперь пробема со всем
            Еще на первом шаге. 
            Видимо что то где то запорол. Как  можно все подчистить и вернуть к прежнему состоянию? 
            Ошибки тут - http://pastebin.com/VfjdpDLE
             

            • Для удаления пакетов:

              sudo pacman -Rn apache php php-apache php-imap mariadb php-apcu php-gd php-intl php-mcrypt phpmyadmin

              Для удаления файлов, в которые вносили изменения:

              sudo rm -f /etc/httpd/conf/httpd.conf /etc/httpd/conf/sites-available/localhost.conf /etc/httpd/conf/sites-enabled/*.conf
              
              • Спасибо! 
                Сейчас попробую все заново. 
                Только видимо нужно не копипастить а прописью все писать. 
                Я не смог  выполнить команду по удалению пакетов. Писало :
                pacman: неверный ключ — « »
                И вместо mysql - mariadb

                • Подправил команду (были проблемы с зависимостями). Должно работать и копи-пастой. Проблемы возникают если маленькое тире заменяется на большое или случайно вставляются скрытые символы.

                  • Понял.
                    Ночью буду ставить заново. 
                    Надеюсь все пройдет успешно. 
                    После отпишусь! 
                    Еще раз спасибо за помощь. 

                    • Но локалхост работает. 

                  • Остановился на 6 шаге. 
                    Не смог командой скопировать сертефикаты и ключи. 
                    Написало что нет такого файла или каталога. 
                    Переименовал вручную (нашел файлы в папке) 
                    Перезапусти httpd
                    Лог:

                    [root@Box ~]# systemctl status httpd
                    ● httpd.service - Apache Web Server
                       Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
                       Active: failed (Result: exit-code) since Wed 2017-03-22 21:17:39 EET; 4min 39s ago
                      Process: 4706 ExecStop=/usr/bin/httpd -k graceful-stop (code=exited, status=1/FAILURE)
                      Process: 4704 ExecStart=/usr/bin/httpd -k start -DFOREGROUND (code=exited, status=1/FAILURE)
                     Main PID: 4704 (code=exited, status=1/FAILURE)

                    мар 22 21:17:39 Box systemd[1]: Started Apache Web Server.
                    мар 22 21:17:39 Box httpd[4704]: AH00526: Syntax error on line 2 of /etc/httpd/conf/sites-enabled/localhost-ssl.conf:
                    мар 22 21:17:39 Box httpd[4704]: Invalid command '\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0DocumentRoot', perhaps misspelled or defined by a module not included in the server configuration
                    мар 22 21:17:39 Box systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
                    мар 22 21:17:39 Box httpd[4706]: AH00526: Syntax error on line 2 of /etc/httpd/conf/sites-enabled/localhost-ssl.conf:
                    мар 22 21:17:39 Box httpd[4706]: Invalid command '\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0DocumentRoot', perhaps misspelled or defined by a module not included in the server configuration
                    мар 22 21:17:39 Box systemd[1]: httpd.service: Control process exited, code=exited status=1
                    мар 22 21:17:39 Box systemd[1]: httpd.service: Unit entered failed state.
                    мар 22 21:17:39 Box systemd[1]: httpd.service: Failed with result 'exit-code'.

                    • Проблема в копипасте. 
                      Вставил как текст. 
                      Работает. 
                      Сервис запустился. 
                      Но тоже есть какая то ошибка. 

                      [root@Box ~]# systemctl status httpd
                      ● httpd.service - Apache Web Server
                         Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
                         Active: active (running) since Wed 2017-03-22 21:33:48 EET; 17s ago
                        Process: 5061 ExecStop=/usr/bin/httpd -k graceful-stop (code=exited, status=0/SUCCESS)
                       Main PID: 5066 (httpd)
                          Tasks: 82 (limit: 4915)
                         CGroup: /system.slice/httpd.service
                                 ├─5066 /usr/bin/httpd -k start -DFOREGROUND
                                 ├─5068 /usr/bin/httpd -k start -DFOREGROUND
                                 ├─5069 /usr/bin/httpd -k start -DFOREGROUND
                                 └─5070 /usr/bin/httpd -k start -DFOREGROUND

                      мар 22 21:33:48 Box systemd[1]: Started Apache Web Server.
                      мар 22 21:33:48 Box httpd[5066]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.53.53. Set the 'ServerName' directive globally to suppress this message
                      lines 1-14/14 (END)

                    • Это не ошибка - сервер работает. Это безвредное предупреждение. Его можно легко убрать - как это сделать я написал в десятом пункте этой инструкции - посмотрите.

  7. Добавте информаци о том что если пропускать 6 шаг, то в 25 пункту вносить данные нужо в файл localhost.conf, так как localhost-ssl.conf файла у нас нету.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *