Edit: /tmp/fix_apache.py (3183B)
import re
# Fix 1: Block xmlrpc.php in leolaart HTTP vhost (000-default.conf)
with open('/etc/apache2/sites-available/000-default.conf', 'r') as f:
content = f.read()
xmlrpc_block = '\n
\n Require all denied\n \n'
pattern = r'(ServerName leolaart\.com\n DocumentRoot /var/www/leolaart\.com/www/\n)'
if '
' not in content:
new_content = re.sub(pattern, r'\1' + xmlrpc_block, content)
if new_content != content:
with open('/etc/apache2/sites-available/000-default.conf', 'w') as f:
f.write(new_content)
print('HTTP vhost: xmlrpc.php block added')
else:
print('HTTP vhost: pattern not found, trying alternative')
# Try to insert after DocumentRoot line in leolaart section
idx = content.find('ServerName leolaart.com')
if idx != -1:
dr_idx = content.find('DocumentRoot /var/www/leolaart.com/www/', idx)
nl_idx = content.find('\n', dr_idx) + 1
new_content = content[:nl_idx] + xmlrpc_block + content[nl_idx:]
with open('/etc/apache2/sites-available/000-default.conf', 'w') as f:
f.write(new_content)
print('HTTP vhost: xmlrpc.php block added (alternative)')
else:
print('HTTP vhost: xmlrpc.php block already exists')
# Fix 2: Block xmlrpc.php in leolaart SSL vhost
with open('/etc/apache2/sites-available/000-default-le-ssl.conf', 'r') as f:
ssl_content = f.read()
if '' not in ssl_content[:ssl_content.find('leolaart.com', ssl_content.find('leolaart.com')) + 500]:
idx = ssl_content.find('ServerName leolaart.com')
if idx != -1:
dr_idx = ssl_content.find('DocumentRoot /var/www/leolaart.com/www/', idx)
nl_idx = ssl_content.find('\n', dr_idx) + 1
new_ssl = ssl_content[:nl_idx] + xmlrpc_block + ssl_content[nl_idx:]
with open('/etc/apache2/sites-available/000-default-le-ssl.conf', 'w') as f:
f.write(new_ssl)
print('SSL vhost: xmlrpc.php block added')
else:
print('SSL vhost: leolaart not found')
else:
print('SSL vhost: xmlrpc.php block already exists')
# Fix 3: Add /dl/pma77 alias to doncode.com.ua HTTPS vhost
with open('/etc/apache2/sites-available/000-default.conf', 'r') as f:
content = f.read()
pma_alias = '''
Alias /dl/pma77 /usr/share/phpmyadmin
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
Require all granted
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
'''
idx = content.find('ServerName doncode.com.ua')
if idx != -1 and '/dl/pma77' not in content:
end_vhost = content.find('', idx)
new_content = content[:end_vhost] + pma_alias + content[end_vhost:]
with open('/etc/apache2/sites-available/000-default.conf', 'w') as f:
f.write(new_content)
print('doncode.com.ua: /dl/pma77 alias added')
elif '/dl/pma77' in content:
print('doncode.com.ua: /dl/pma77 alias already exists')
else:
print('doncode.com.ua: vhost not found')