Plesk Panel’de 500 Hatası

Plesk Panel’de 500 Hatası

Plesk panel’e girmeye çalıştığınızda 500 hatası alıp %plesk_dir%admin\logs\php_error.log dosyanızda aşağıdaki gibi kayıtlar görüyorsanız bu çözümü uygulayabilirsiniz.

PHP Fatal error: Uncaught Error: Class ‘Zend_Log’ not found in C:\Program Files (x86)\Parallels\Plesk\admin\plib\Plesk\Log.php:169
ya da
Unable to set the object (C:\Program Files (x86)\Parallels\Plesk\admin\****) owner: (5) Access is denied.

Sebebi , plesk’in güncellemesi sırasında antivirüs yazılımınızın buna engel olması ve işlemin yarıda kalmasıdır.

Örneğin, defender bu hataya sebep olabilmektedir. Defender ayarlarınızda %plesk_dir% klasörünü exclude etmelisiniz. Eğer defender kullanmıyor iseniz mevcut antivirüs yazılımınızda buna benzer işlemi uygulayabilirsiniz ya da antivirüs yazılımınızı kaldırmayı deneyebilirsiniz. İşlem sonunda aşağıdaki komutu cmd üzerinden uçalıştırıp update işlemini tamamlayabilirsiniz , sonrasında plesk panel çalışacaktır.

plesk installer –select-release-current –reinstall-patch –upgrade-installed-components

Ayhan ARDA

Plesk kurulu sunucuda .net core internal server error lock violation hatası

IIS te .net core kullanan siteleriniz aşağıdaki hatayı veriyor olabilir.

HTTP Error 500.19 – Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
Detailed Error Information
Module IIS Web Core
Notification BeginRequest
Handler Not yet determined
Error Code 0x80070021
Config Error Lock violation
Config File \?\C:\Inetpub\vhosts\ayhanarda.com\web.config

Öncelikle .net core çalışıp çalışmadığını ya da kurulu olup olmadığını test edelim.

C:\Users\Administrator>dotnet –version
2.1.401

C:\Users\Administrator>dotnet –info
.NET Core SDK (reflecting any global.json):
Version: 2.1.401
Commit: 91b1c13032

Runtime Environment:
OS Name: Windows
OS Version: 10.0.14393
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.401\

Host (useful for support):
Version: 2.2.6
Commit: 7dac9b1b51

.NET Core SDKs installed:
2.1.3 [C:\Program Files\dotnet\sdk]
2.1.4 [C:\Program Files\dotnet\sdk]
2.1.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 1.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Görünen o ki kurulum ve çalışmasında bir sorun yok , hatta proje oluşturup oluşturamadığımıza cmd konsolu üzerinden bakabiliriz. Bir konsol projesi oluşturalım ve publish edelim , gereçek ortamda yayınlamasak ta işlevinin çalıştığını anlayabiliriz.

dotnet new console -o ayhanarda
cd ayhanarda
dotnet publish

Eğer buraya kadar bir sorun yoksa .net in çalıştığına emin olabilirsiniz. Hatada ne diyordu , Lock Violation , yani bir şeyler .net core un çalışmasını engelliyor , kilitliyor.

Bu hatayı gidermek için Plesk panelinizde Araçlar/ayarlar bölümünde Güvenlik bölümüne gelip buradan güvenlik ilkesi adımı ile aşağıdaki bölümün tikini kaldırınız , siteniz çalışacaktır.

Özel işleyiciler ilkesi
Müşterilerin web.config dosyasıyla sunucu seviyesinde tanımlanan IIS işleyicilerini bypass etmesini önlemek için bu seçeneği etkinleştirin.
(UN TICK)
web.config ile işleyicileri geçersiz kılma yeteneğini engelleyin

for english:

Log into Plesk
Untick Prohibit the ability to override handlers via web.config in Plesk > Tools & Settings > Security

Ayhan ARDA

Windows Plesk Panelde “This DNS record already exists.” Hatası ve Çözümü

Windows Plesk Panelde “This DNS record already exists.” ya da “Bu DNS kaydı zaten var.” Hatası ve Çözümü.

Bazen sunucudan silinen alan adlarının dns kayıtları dns serverdan silinmesine rağmen plesk in kendi veritabanında silinmemiş olabiliyor. Bu durumda Pleskin veritabanından bu dns kayıtlarını silmek gerekiyor. Linuxte de aynı yöntem işe yararken tek fark mysql de oturum açma yöntemi oluyor. Windows için aşağıdaki yöntemi uygulayabilirsiniz.

Windows ta cmd komut konsolu ekranını açınız.

C:\Users\Administrator>plesk db
mysql: Switching to the default character set ‘latin1’.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17789
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

Şimdi mysql e erişmiş olduk , sıra o alan adına ait kayıtların eğer var ise dns_recs tablosundan silinmesine geldi, aşağıdaki sorguda ayhanarda.com yazan yeri silinecek alan adınız ile değiştiriniz.

mysql>DELETE FROM dns_recs WHERE DisplayHost LIKE ‘%ayhanarda.com%’;

Query OK, 13 rows affected (0.01 sec)

Ve işlem bu kadar.

Ayhan ARDA

Windows plesk’te yanlışlıkla yönetim erişimini sınırlandırıp erişemez isek ne yapabiliriz?

Yine başımıza gelen bir hadise , Windows Plesk te yönetim erişimini yanlış ayarlama sebebi ile hiç bir şekilde Plesk arayüzüne giremez olduk. Tekrar nasıl açarız diye düşünürken çözümü aşağıdaki şekilde bulduk.

O sunucuya RDP ile bağlanın ve komut konsolunu açın. (cmd)

Aşağıdaki komutu çalıştıralım ve sonrasında direkt olak mysql in içine düşeceğiz.

C:\Users\Administrator>plesk db
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22731
Server version: 5.5.52 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

Şimdi ilgili veritabanına erişelim , access_policy değeri psa isimli veritabanımızın içinde misc isimli tabloda yer alıyor.

mysql> use psa;
Database changed

Şu anda psa isimli tablomuzda işlem yapabiliriz , önce yanlışlıkla kapattığımız değerimizi görelim, bakınız deny durumunda yani kimse erişemesin demişiz , şimdi bunu allow olarak değiştirmemiz gerekiyor.

mysql> select * from misc;
+———————————+————-
—————+
| param | val
|
+———————————+————-
—————+
| access_policy | deny

Bu değeri allow yapmak için aşağıdaki sorgumuzu çalıştıralım.

mysql> update misc set val=”allow” where param=”access_policy”;

Şimdi değere tekrar baktığımızda artık deny yazan yerde allow yazdığını göreceksiniz ve farklı hiç bir işlem yapmadan Plesk yönetim arayüzüne erişebilirsiniz.

Ayhan ARDA

Plesk 8447 Update portu çalışmama sorunu

Hosting sunucularımızdan birinde Plesk i güncellemek için panelden ilgili alana gittiğimizde açılan sayfa yanıt vermiyordu , netstat ile kontrol ettiğimizde sunucunun 8447 nolu portu dinlemediğini gördük.

[root@ayhanarda ~]# netstat -an | grep 8447

cevap dönmüyordu.

Bu durumda aşağıdaki komutu kullanabilirsiniz.

[root@ayhanarda ~]# plesk installer –all-versions –select-product-id plesk –select-release-latest –show-components >/dev/null && plesk installer –version

Eğer yukarıdaki komut “Doing restart of Plesk Installer…” hatası verir ise aşağıdaki komutu kullanıp sonrasında tekrar çalıştırınız.

[root@ayhanarda ~]# rm /tmp/psa-installer.lock

Şimdi tekrar kontrol edelim.

[root@ayhanarda ~]# netstat -an | grep 8447
tcp 0 0 :::8447 :::* LISTEN

Şimdi Plesk i güncelleme sayfasına tekrar erişip update çalıştırabilirsiniz.

Ayhan ARDA

Plesk ERROR 1045 (28000): Access denied for user ‘admin’@’localhost’ (using password: YES) hatası

ERROR 1045 (28000): Access denied for user ‘admin’@’localhost’ (using password: YES) hatasını alıyor ve mysql de admin kullanıcısının şifresini değiştirmedi iseniz mysql privilege leri ile ilgili bir sorununuz var demektir.

Önce my.cnf dosyamızı açıyoruz.

nano /etc/my.cnf

İçine aşağıdaki satır yok ise ekleyiniz.

skip_grant_tables=1

Dosyayı kaydedip çıkınız ve mysql i restart ediniz.

service mysqld restart

Sonrasında aşağıdaki komutu çalıştırınız.

mysql_fix_privilege_tables –user=admin –password=’SIFRENIZ’ –verbose

***(şifreyi görmek için cat /etc/psa/.psa.shadow komutunu kullanabilirsiniz)

Sonra tekrar mysql i restart edelim.

service mysqld restart

Şimdi muhtemelen düzelmiş olmalı.

Ayhan ARDA

 

 

Plesk Panelde Table ‘mysql.servers’ doesn’t exist hatası

Table ‘mysql.servers’ doesn’t exist hatası çözümü;

Ssh ile erişerek aşağıdaki komutları uygulayınız.

[root@webhostingsitesi.com]#mysql -uadmin -p`cat /etc/psa/.psa.shadow` -h localhost

mysql> use mysql;

mysql> CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL, `Host` char(64) NOT NULL, `Db` char(64) NOT NULL, `Username` char(64) NOT NULL, `Password` char(64) NOT NULL, `Port` int(4) DEFAULT NULL, `Socket` char(64) DEFAULT NULL, `Wrapper` char(64) NOT NULL, `Owner` char(64) NOT NULL, PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’MySQL Foreign Servers table’;

Ayhan ARDA

KOD :

CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL, `Host` char(64) NOT NULL, `Db` char(64) NOT NULL, `Username` char(64) NOT NULL, `Password` char(64) NOT NULL, `Port` int(4) DEFAULT NULL, `Socket` char(64) DEFAULT NULL, `Wrapper` char(64) NOT NULL, `Owner` char(64) NOT NULL, PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';

 

 

Plesk File Manager Açığı Hakkında (km0ae9gr6m)

Parallels firmasının Plesk ürünü için 2012 şubat ayında yayınladığı bildiriyi uygulamayan sunucu yöneticileri vhosts klasörü altındaki sitelere ait bir çok .js uzantılı dosyanın en altına uzun bir kod eklendiğini farketti ve bu siteler kısa süre içinde google tarafından da tespit edilip , ziyaretçilerine uyarılar yapılmakta. Şubat ayında yayınlanan ilgili bildiri için burayı inceleyebilirsiniz.

Etkilenen Plesk sürüm listesi aşağıdaki gibidir.

Plesk 7.5.x Reloaded
Plesk 7.1.x Reloaded
Plesk 7.0.x
Parallels Plesk Panel 9.x for Linux/Unix
Parallels Plesk Panel 8.x for Linux/Unix
Plesk 7.x for Windows
Parallels Plesk Panel 9.x for Windows
Parallels Plesk Panel 8.x for Windows
Parallels Plesk Panel 10.3 for Windows
Parallels Plesk Panel 10.2 for Windows
Parallels Plesk Panel 10.1 for Windows
Parallels Plesk Panel 10.0.x for Windows
Parallels Plesk Panel 10.3 for Linux/Unix
Parallels Plesk Panel 10.2 for Linux/Unix
Parallels Plesk Panel 10.1 for Linux/Unix
Parallels Plesk Panel 10.0.x for Linux/Unix

Detay için burayı inceleyebilirsiniz.

Zararlı kod /*km0ae9gr6m*/ ile başlayıp /*qhk6sa6g1c*/ ile bitmektedir.

Eğer Plesk in ilgili patch ini uygular iseniz açık kapatılmış olacaktır.Açığı tam olarak kapamak için farklı bir yol izlemek isteyebilirsiniz , bunlardan biri de filemanager ı devre dışı bırakmak olacaktır , aşağıdaki komutları çalıştırarak bu işlemi yapabilirsiniz.

cd /usr/local/psa/admin/htdocs/filemanager/
mv filemanager.php filemanager_yedek.php
cd /usr/local/psa/admin/bin/
mv filemng filemng.bak

Peki diyelim ki açıktan etkilendik ve yüzlerce dosya arasında tek tek nasıl bu uzun ve zararlı kodu temizleyeceğiz , cevabı için aşağıdaki komutu kullanabilirsiniz.

find /var/www/vhosts/*/httpdocs/ -type f -name ‘*.js’ -print0 | xargs -0 perl -i -0777pe ‘s|/\*km0ae9gr6m\*/.*?/\*qhk6sa6g1c\*/||gs’

Eğer sadece etkilenen dosyaları listeyip bir dosyaya yazdırmak isterseniz aşağıdaki komutu kullanabilirsiniz , sonrasında etkilenenler.txt isimli dosyayı inceleyebilirsiniz.

grep -ir km0ae9gr6m  /var/www/vhosts/* > etkilenenler.txt

Ayhan ARDA

 

alert: unable to opendir todo/0, sleeping..hatası – Qmail kuyruğunu rebuild etmek

alert: unable to opendir todo/0, sleeping..hatası qmail kuyruğunuzda bozulma olduğunu işaret eder , genelde bu durumu /usr/local/psa/var/log/maillog dosyasındaki loglardan farkederiz. warning: trouble injecting bounce message, will try later şeklinde de hatalar görüyor iseniz yine bu duruma işarettir , çözümü için aşağıdaki işlemleri satır satır yapmanız gerekir , test edilmiştir.

1. Qmail’i durdurun,

# /etc/init.d/qmail stop

2.

# cd /var/qmail/queue
# rm -rf info intd local mess remote todo

# mkdir mess

# for i in `seq 0 22`; do
# mkdir mess/$i
# done

# cp -r mess info
# cp -r mess intd
# cp -r mess local
# cp -r mess remote
# cp -r mess todo

# chmod -R 750 mess todo
# chown -R qmailq:qmail mess todo

# chmod -R 700 info intd local remote
# chown -R qmailq:qmail intd
# chown -R qmails:qmail info local remote

3. Qmail i başlatın,

# /etc/init.d/qmail start

Hepsi bu kadar , logları izlemeye devam..

Ayhan ARDA

Warning: Only 100 first unique e-mail addresses will be added. hatasının çözümü

Pleskte spamassassin white ve blacklist e kayıt eklemelimiti 100 ile sınırlandırılmıştır , fazlasını eklemeye çalıştığınızda aşağıdaki hatayı alabilirsiniz.

Warning: Only 100 first unique e-mail addresses will be added

Bunun çözümü için sunucunuza ssh ile bağlanın , ve mysql e login olun.

Komut 1 – Mysql e login olmak için;

mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa

Komut 2 – Veritabanında ilgili değeri değiştirmek için;

replace into misc values(‘spamfilter_max_addr_list_length’,150);

eğer misc tablosunda spamfilter_max_addr_list_lengt değeri boş ise  bizde aşağıdaki komut ile oluşturabiliriz.

insert into misc (‘param’,’val’) values (‘spamfilter_max_addr_list_length’,150);

Hepsi bu kadar.

Ayhan ARDA

Increase maximum number of addesses that can be added to the Spamassassin White or Black list