- Если у вас Windows, то вам подойдёт статья "Установка веб-сервера (Apache 2.4, MySQL 5.7, PHP 7, phpMyAdmin) на Windows 10".
- Если у вас Ubuntu, то вам подойдёт статья "Как установить веб-сервер Apache с PHP 7, MariaDB/MySQL и phpMyAdmin (LAMP) на Ubuntu 16.10".
Основывается на материале (но актуализировано для PHP8, для 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
3. Установим динамический скриптовый язык на стороне сервера PHP и его модуль для Apache.
sudo pacman -S php php-apache
4. Последним шагом установим систему управления базами данных MySQL, выберите вариант 1 (MariaDB) – форк от сообщества.
sudo pacman -S mysql
Выполним инициализацию:
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
ЛИБО следующей командой (запустите только одну из двух):
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Запустите и проверьте статус демона.
sudo systemctl start mysqld sudo systemctl status mysqld
Не запутайтесь. Мы устанавливаем 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 если вы используете удалённую систему.
Шаг 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 8 на 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 модуля php.conf в папке /etc/httpd/conf/extra/:
sudo vim /etc/httpd/conf/extra/php.conf
Добавьте в точности следующий контент (вы должны использовать mod_mpm_prefork).
LoadModule php_module modules/libphp.so Include conf/extra/php_module.conf AddHandler application/x-httpd-php .php
Чтобы подключить PHP к Apache создайте символьную ссылку:
sudo ln -s /etc/httpd/conf/extra/php.conf /etc/httpd/conf/mods-enabled/php.conf
Перезапустите службу веб-сервера чтобы вступили в силу сделанные изменения:
sudo systemctl restart httpd
22. Для проверки настроек PHP создайте файл с именем info.php в DocumnetRoot (/srv/http/),
sudo vim /srv/http/info.php
И скопируйте в него следующее содержимое:
<?php phpinfo();
Затем перейдите в вашем браузере по адресу: https://localhost/info.php.
Вот и оно! Если ваш результат похож на картинку выше, значит 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, или iconv.so и т.д..
sudo vim /etc/php/php.ini
Найдите и раскомментируйте следующие расширения.
extension=bz2.so extension=iconv.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 в простую, но мощную и крепкую веб-платформу с самым последним серверным программным обеспечением для маленький некритичных окружений. Но для использования в рабочем окружении вам нужно продолжить изучение опций и особенностей обслуживания веб-серверов, уделять особое внимание обновлению пакетов и делать регулярное резервное копирование образов для быстрого восстановления системы в случае аварий.
Близкие статьи
- LEMP (Nginx, PHP, MariaDB/MySQL и phpMyAdmin) в Arch Linux: установка, создание виртуальных хостов, защита паролем папок, включение SSL (93.7%)
- Установка ownCloud в Arch Linux / BlackArch (66.9%)
- Включение HTTP/2 в Apache на Arch Linux (58.8%)
- Как установить Varnish в Arch Linux — кэширование для Apache (58.8%)
- Как настроить Python в качестве CGI модуля в Apache на Arch Linux (Manjaro, BlackArch) (56.3%)
- Как установить AMD/ATI Catalyst драйверы AKA Crimson 15.12 в BlackArch / Arch Linux с ядром 4.7, 4.8, 4.9, 4.10, 4.11 (RANDOM - 50%)
Квест прошел. 🙂
Единственное в конце с логином в phpmyadmin затупил. Надо было ввести логин\пароль которые задавал к базе в начале. 🙂
Не понятно про 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 отпадает, его просто не использовать, чтобы не смущать сообщениями.
Всё это ИМХО: я сам в процессе обучения, вполне возможно, что что-то понимаю неправильно.
Андроид клиент сцепился, просто я указывал IP без /owncloud. 🙂
Все заработало!
У тебя не правильно в пункте 6, а именно
sudo
cp
/apache_gen_ssl
/usr/local/bin/
Переделывал не сколько раз, в том числе полная переустановка вся и всего.
ssl не работает короче. Да кстати Arch хороший дистрибутив.
Там действительно было неправильно. Сейчас поправил. Спасибо, что обратили внимание!
Пропустил этот момент, т.к. сам его никогда не делаю – на локалхосте сертификат не нужен. На сайтах – нужен, а на локалхосте – нет.
Подскажите, на Arch или Manjaro как-то можно поставить php 7 и php 5.6 и заставить их работать вместе? Нашел инструкцию по установке и настройке php 5.6 для отдельного виртуального хоста, но инструкция, к сожалению для Debian.
Делаю все по мануалу
Дохожу до 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
Для удаления пакетов:
Для удаления файлов, в которые вносили изменения:
Спасибо!
Сейчас попробую все заново.
Только видимо нужно не копипастить а прописью все писать.
Я не смог выполнить команду по удалению пакетов. Писало :
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)
Это не ошибка - сервер работает. Это безвредное предупреждение. Его можно легко убрать - как это сделать я написал в десятом пункте этой инструкции - посмотрите.
Добавте информаци о том что если пропускать 6 шаг, то в 25 пункту вносить данные нужо в файл localhost.conf, так как localhost-ssl.conf файла у нас нету.
Как установить связку LAMP Linux, Apache+nginx+tor MySQL/MariaDB, PHP7 в Arch Linux
А какой ожидается результат от такой связки, что она должна делать? Для скрытых сервисов достаточно Apache+Tor (на этом сайте уже есть инструкция — даже для Windows я уже написал инструкцию на другом сайте). Если нужно, чтобы веб-приложение имело доступ в сеть Tor, то достаточно PHP + Apache + Tor — я приводил пример рабочего кода в одной из статей — если нужно, найду и дам ссылку.
Возможно, эти статьи помогут вам:
На сегодняшний день уже php8. Никак не могу найти где находятся модули php8 чтоб их прописать в файле /etc/httpd/conf/mods-enabled/php.conf
Приветствую! Строки для включения PHP 8 теперь следующие:
Папка с модулями PHP: /usr/include/php/ext/
Модули веб-сервера расположены в директории /usr/lib/httpd/modules/, например, /usr/lib/httpd/modules/libphp.so
А конфигурационные файлы веб-сервера в /etc/httpd/conf/extra/, например, /etc/httpd/conf/extra/php.conf
При запуске скрипта a2ensite localhost в консоль вываливаются ошибки:
/usr/local/bin/a2ensite: строка 8: : команда не найдена
/usr/local/bin/a2ensite: строка 12: : команда не найдена
После этого Apache не работает. В его статусе сообщается:
Active: failed (Result:exit-code)
Process:936 ExecStart=/usr/bin/httpd -k start -DFOREGROUND (code=exited, status=1/FAILURE)
При запуске скрипта a2dissite localhost в консоль вываливается ошибка:
/usr/local/bin/a2dissite: строка 5: : команда не найдена
Но при перезапуске httpd сервер работает
Текст файлов копипастнул с сайта. Что всё-таки может быть там не так?