Однажды на одном из сайтов заметил в WordPress меню «Инструменты» — «Здоровье сайта» следующие ошибки:
Читать далее «WordPress. Решение «cURL error 60: SSL certificate problem: unable to get local issuer certificate»»Архивы рубрик:Apache2
Повышение версии PHP в Ubuntu 14.04
Понадобилось однажды на Ubuntu Server 14.04 LTS повысить версию PHP 5.5.9 до 5.6, обычное обновление компонентов системы не помогло:
sudo apt-get update sudo apt-get upgrade
Можно попробовать обновить систему до 16.04 или выше как я описывал в статье Обновление Ubuntu 14.04 до 16.04. Вместе с системой будет обновлен и PHP.
Если же обновление системы не удается выполнить, то можно добавить сторонний источник с PHP:
sudo add-apt-repository ppa:ondrej/php sudo apt-get update
И установить из него нужную версию, например PHP 5.6:
sudo apt-get install php5.6 php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml
Так как установленных версий может быть несколько, отключим старую и активируем установленную:
sudo a2dismod php5 sudo a2enmod php5.6 sudo service apache2 restart
Аналогично можно установить PHP 7.2:
sudo apt-get install php7.2 sudo a2dismod php5.6 sudo a2enmod php7.2 sudo service apache2 restart
Или PHP 7.0:
sudo apt-get install php7.0 sudo a2dismod php7.2 sudo a2enmod php7.0 sudo service apache2 restart
Установка Apache JMeter в Ubuntu
Apache JMeter — инструмент для нагрузочного тестирования.
Для Apache JMeter необходимо установить Java, смотрите мою статью — Установка Java в Linux.
Для примера установлю Apache JMeter в Ubuntu Desktop 18.04.
После того как Java установлен, скопируем ссылку на архив с последней версией Apache JMeter с официального сайта http://jmeter.apache.org/download_jmeter.cgi и скачаем его:
wget http://apache.volia.net//jmeter/binaries/apache-jmeter-4.0.tgz
Распакуем архив:
tar -xf apache-jmeter-4.0.tgz
Запустим:
cd apache-jmeter-4.0/bin/ ./jmeter
После запуска отобразилось сообщение, что в графическом режиме Apache JMeter можно создавать тесты, а выполнять их можно только из терминала, например так:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
Кстати Apache JMeter в Windows запускается через файл jmeter.bat.
Перенаправление запросов на SSL
Опишу несколько вариантов перенаправления запросов с HTTP на HTTPS, первый и второй методы самые надежные:
1) Через virtual hosts.
В конфигурации сайта добавим строку Redirect, например когда на сайт установили SSL сертификат и нужно перенаправить все запросы на HTTPS:
NameVirtualHost *:80 <VirtualHost *:80> ServerName ixnfo.com ServerAlias www.ixnfo.com Redirect / https://ixnfo.com/ </VirtualHost> <VirtualHost *:443> ServerName ixnfo.com ServerAlias www.ixnfo.com DocumentRoot /var/www/html SSLEngine On ... </VirtualHost>
Если нужно перенаправить только некоторые запросы:
NameVirtualHost *:80 <VirtualHost *:80> ServerName ixnfo.com ServerAlias www.ixnfo.com Redirect /forum https://forum.ixnfo.com/ </VirtualHost> <VirtualHost *:443> ServerName ixnfo.com ServerAlias www.ixnfo.com DocumentRoot /var/www/html SSLEngine On ... </VirtualHost>
2) Перенаправление с использованием .htaccess.
Аналогично как и в первом варианте, в нужную директорию сайта положим файл .htaccess и добавим в него строку (чтобы веб-сервер учитывал файл .htaccess, нужно в конфигурации сайта выше указать опцию AllowOverride All):
Redirect /forum https://forum.ixnfo.com/
3) И не рекомендуемый способ, используя mod_rewrite, содержимое нужно добавить в файл .htaccess:
# Включение функции Rewrite
RewriteEngine On
# Проверяем что соединение не HTTPS
RewriteCond %{HTTPS} !=on
# Направляем в то же место, но уже HTTPS:
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Еще пример:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_USER_AGENT} ^(.+)$
RewriteCond %{SERVER_NAME} ^ixnfo\.com$ [OR]
RewriteCond %{SERVER_NAME} ^www\.ixnfo\.com$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Header add Strict-Transport-Security "max-age=300"
</IfModule>
Чтобы разрешить некоторым страницам открываться по http и https, добавим внутри верхнего примера:
RewriteCond %{REQUEST_URI} !^/dir/
RewriteCond %{REQUEST_URI} !^/dir/file.php
Смотрите также:
Использование .htaccess
Как настроить SSL и HTTPS для WordPress
Установка Certbot в Ubuntu
Контроль доступа Apache2
Контроль доступа Apache2 версии 2.4 немного отличается от 2.2, например чтобы разрешить доступ всем, в версии 2.4 нужно указывать:
Require all granted
Разрешить доступ указанным IP-адресам:
Require local Require ip 192.168.56.1 192.168.22.10
Разрешить всем кроме указанного IP:
Require all granted Require not ip 192.168.56.1
Разрешить указанному хосту:
Require host example.com
Запретить всем:
Require all denied
А в версии Apache2 2.2, разрешить доступ всем так:
Order allow,deny Allow from all
Запретить всем:
Order deny,allow Deny from all
Разрешить доступ указанным IP:
Order allow,deny Allow from 192.168.56.1 192.168.22.10
Разрешить указанному хосту:
Order Deny,Allow Deny from all Allow from example.com
После изменений в конфигурации Apache2 необходима перезагрузка (если изменения были в файле .htaccess, то перезагрузка не требуется):
sudo service apache2 restart
Смотрите также:
Использование .htaccess
Решение ошибки Invalid command ‘RewriteEngine’
Заметил однажды ошибку после установки FreePBX:
Invalid command ‘RewriteEngine’, perhaps misspelled or defined by a module not included in the server configuration
Для её решения нужно активировать модуль rewrite в apache2:
sudo a2enmod rewrite
И перезапустить apache2 чтобы применились изменения:
sudo service apache2 restart
Все.
Решение ошибки «Invalid command ‘AuthGroupFile'»
Заметил однажды следующую ошибку:
AH00526: Syntax error on line 26 of /etc/apache2/sites-enabled/000-default.conf:
Invalid command ‘AuthGroupFile’, perhaps misspelled or defined by a module not included in the server configuration
Action ‘configtest’ failed.
The Apache error log may have more information.
Решается она просто активацией модуля:
sudo a2enmod authz_groupfile
Перезапустим apache2 чтобы применить изменения:
sudo service apache2 restart
Готово.
Решение ошибки «client denied by server configuration»
Заметил однажды в браузере ошибку открытия установленного GoIP SMS крипта:
[authz_core:error] [pid 23415] [client 192.168.56.1:50388] AH01630: client denied by server configuration: /usr/local/goip/
Как оказалось работа скрипта предполагалась в apache2 версии 2.2 и в файле /etc/apache2/conf-enabled/goip.conf были указаны параметры:
Order allow,deny Allow from all
А в моем случае был установлен apache2 версии более новой 2.4, в котором управление доступом настраивается немного иначе, и чтобы устранить ошибку изменим указанные выше параметры на:
Require all granted
Либо чтобы ограничить доступ оп IP, разрешив локально и указанным адресам:
Require local Require ip 192.168.56.1 192.168.22.10
И перезапустим apache2 чтобы применить изменения:
sudo service apache2 restart
Смотрите также:
Контроль доступа Apache2
Установка модуля PageSpeed
На тесте установлю модуль PageSpeed в Ubuntu Server 14.04.5 LTS и CentOS
Читать далее «Установка модуля PageSpeed»Решение ошибки Permission denied: .htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
Заметил как-то следующую ошибку:
[Mon Sep 05 10:24:38 2016] [crit] [client 192.168.1.1] (13)Permission denied: /home/user/public_html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
До появлением ошибки я перемещал файлы через sudo (от root пользователя) и чтобы вернуть права выполнил команду:
sudo chown user:user -R /home/user/public_html
Которая изменила владельца на указанного во всех подпапках и файлах, однако на саму директорию public_html (не её содержимое) должен был быть указан другой владелец, из-за чего apache2 и писал что доступ запрещен. По этому если указать на public_html пользователя и группу от которого работает apache2, то ошибка исчезнет.
Может также помочь указание прав 777 на эту папку, это даст полный доступ всем пользователям (но этот вариант лучше не использовать в целях безопасности).