Преди няколко дни излезе XAMPP 1.8.0 вчера след надграждане от версия 1.7.7 имах доста интересен проблем. Phpmyadmin-а не ми се отваряше и изгърмяваше със 403

Access forbidden!


New XAMPP security concept:

Access to the requested object is only available from the local network.

This setting can be configured in the file „httpd-xampp.conf“.

Веднага отворих httpd-xampp.conf който при мен се намира в /opt/lampp/etc/extra/, на пръв поглед всичко изглеждаше наред. Правилата за локалната мрежа бяха наред. Отделно че отварях от localhost. WTF ??? Погледнах log-а гледам че достъпа ми е отрязан от конфигуацията. Тука вече нещата ме ахнаха и честно казано донякъде малко на късмет открих проблема. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Require all granted. О да еврика. Това е новия контролен механизъм който влезе в apache 2.4.x. С него се дава достъп или се отказва такъв на всички изискани, в общи линии се имитира Allow/Deny функционалността :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. След промените при мен изглежда така

<Directory „/opt/lampp/phpmyadmin“>
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
Require all granted
</Directory>

 

Вианги може да се пробва и друга дивоти, например да се преименува папката phpmyadmin на нещо други и да се направи alias към не. Но е по грозно и не особено смислено 🙂

p.s Питаха ме защо ползвам XAMPP а не чиста инсталация на всички компоненти както си ги е моя Debian родил – отговорът е много много прост – МЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Enhanced by Zemanta

Преди няколко дни имах ужасен проблем с инсталиран ModSecurity и phpMyAdmin. Общо взето проблема се коренеше в това че, защитния модул възприемаше рекуестовете на phpMyadmin-a като sql injection атаки. Решението отново е тривиално просто за файловете на phpmyadmin-a изключвам мачването на правилата. Правилата ги записах в modsecurity.d/modsecurity_localrules.conf които се намира в папката на apache сървъра ви. Ето ги и самите правила.

<LocationMatch „/phpmyadmin/tbl_change.php“>
SecRuleEngine Off
</LocationMatch>

<LocationMatch „/phpmyadmin/sql.php“>
SecRuleEngine Off
</LocationMatch>

<LocationMatch „/phpmyadmin/managecontent.php“>
SecRuleEngine Off
</LocationMatch>

<LocationMatch „/phpmyadmin/import.php“>
SecRuleEngine Off
</LocationMatch>

<LocationMatch „/phpmyadmin/tbl_select.php“>
SecRuleEngine Off
</LocationMatch>

<LocationMatch „/phpmyadmin/tbl_replace.php“>
SecRuleEngine Off
</LocationMatch>

Днес phpmyadmin-a ми изтрещя без никаква видима причина с следната груба грешка

Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

Общо взето проблема е елементарен променливата session.save path в php.ini фаила беше без стоиност. Мистиката се развърза като се сетих че направих упгреид на на php версията ми и тогава вероятно по невнимание съм замал старите настроики, а днес рестартирах сървъра, че беше почнал да пълни swap-a заради едно зомби 🙂