Skip to content

Commit b77fe96

Browse files
committed
Initial commit with the code
1 parent 511a7f9 commit b77fe96

File tree

2 files changed

+152
-0
lines changed

2 files changed

+152
-0
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,14 @@
11
# wp-checklist
22
Скрипт для проверки сервера на совместимость с ВП
3+
4+
# Что проверяет?
5+
- Память PHP
6+
- Версия PHP
7+
- MySQL базу (если есть `wp-config.php`)
8+
- Наличие cURL
9+
10+
# Как использовать?
11+
1. Качаем скрипт отсюда
12+
2. Кидаем в папку с поломанным WordPress'ом (или сразу после разворота, чтобы проверить всё ли гуд перед заходом)
13+
3. Переходим на ссылку: `http://ВАШ_САЙТ.КОМ/test.php`
14+
4. Проверяем совместимость и выполняем указания скрипта

test.php

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
<?php
2+
3+
function memory_limit_to_bytes($value)
4+
{
5+
$value = trim($value);
6+
$last = strtolower($value[strlen($value) - 1]);
7+
switch ($last) {
8+
case 'g':
9+
@$value *= 1024;
10+
case 'm':
11+
@$value *= 1024;
12+
case 'k':
13+
@$value *= 1024;
14+
}
15+
return (int) $value;
16+
}
17+
18+
$compatibility = true;
19+
20+
$phpVersion = phpversion();
21+
$phpVersionClass = version_compare($phpVersion, '7.4', '<') ? 'fail' : (version_compare($phpVersion, '8.0', '<') ? 'warn' : 'pass');
22+
if ($phpVersionClass == 'fail') {
23+
$compatibility = false;
24+
}
25+
26+
$memoryLimitBytes = memory_limit_to_bytes(ini_get('memory_limit'));
27+
$memoryCheckClass = $memoryLimitBytes < 256 * 1024 * 1024 ? 'fail' : 'pass';
28+
if ($memoryCheckClass == 'fail') {
29+
$compatibility = false;
30+
}
31+
32+
$curlCheckClass = extension_loaded('curl') ? 'pass' : 'fail';
33+
if ($curlCheckClass == 'fail') {
34+
$compatibility = false;
35+
}
36+
37+
$wpConfigPath = 'wp-config.php';
38+
$mysqlCheckClass = 'pass';
39+
if (!file_exists($wpConfigPath)) {
40+
$mysqlCheckClass = 'warn';
41+
} else {
42+
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
43+
$fileLines = file($wpConfigPath);
44+
$pattern = "/define\s*\(\s*'DB_/i";
45+
46+
foreach ($fileLines as $line) {
47+
if (preg_match($pattern, $line)) {
48+
eval($line);
49+
}
50+
}
51+
52+
try {
53+
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
54+
} catch (mysqli_sql_exception $e) {
55+
$msqlerror = $e;
56+
$mysqlCheckClass = 'fail';
57+
$compatibility = false;
58+
}
59+
}
60+
61+
?>
62+
<html>
63+
<head>
64+
<title>Проверка сервера на совместимость с ВП</title>
65+
<style>
66+
body {
67+
font-family: Arial, sans-serif;
68+
margin: 20px;
69+
}
70+
table {
71+
border-collapse: collapse;
72+
width: 100%;
73+
}
74+
th,
75+
td {
76+
border: 1px solid #ddd;
77+
text-align: left;
78+
padding: 8px;
79+
}
80+
th {
81+
background-color: #f2f2f2;
82+
}
83+
.pass {
84+
color: green;
85+
}
86+
.fail {
87+
color: red;
88+
}
89+
.warn {
90+
color: orange;
91+
}
92+
.verdict {
93+
margin-top: 20px;
94+
font-size: 24px;
95+
}
96+
</style>
97+
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
98+
<meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" />
99+
<link href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0dHcJqbm5KVlpb7paWl/6Wlpf+Vlpb7mpubkkdHR3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhoeH5sPDw///////o6Sk/3t8fP95enr/i4yM//z8/P/Dw8P/hoeH5gAAAAAAAAAAAAAAAAAAAAAAAAAAb3Bw/vb29v+6u7v//////5ucnP9mZ2f/Zmdn/2hpaf//////2tvb//b29v9vcHD+AAAAAAAAAAAAAAAAhoeH5vb29v9mZ2f/ycrK///////n5+f/Zmdn/2ZnZ/+goaH///////39/f9mZ2f/9vb2/4aHh+YAAAAAR0dHcMPDw/9oaWn/Zmdn//7+/v//////tbW1/2pra/9mZ2f/7+/v//////+6urr/goOD/2doaP/Dw8P/R0dHcJqbm5LOzs7/Zmdn/4iJif//////3d3d/2tsbP+jpKT/cXJy///////19fX/Z2ho/9DQ0P9mZ2f/zs7O/5qbm5KVlpb7jI2N/2ZnZ//c3Nz//////5CRkf9mZ2f/o6Oj/7u8vP//////tre3/2ZnZ//l5eX/Zmdn/4yNjf+Vlpb7paWl/3t8fP9naGj///////////9mZ2f/Zmdn/6Kjo////////////3N0dP9mZ2f/rKys/4iJif97fHz/paWl/6Wlpf96e3v/mpub///////d3d3/Zmdn/2ZnZ/+IiYn///////Pz8/9mZ2f/Zmdn/56env/Y2Nj/e3x8/6Wlpf+Vlpb7i4yM/+vr6///////j4+P/2ZnZ/9mZ2f/0tPT//////+0tLT/Zmdn/2ZnZ//IyMj//Pz8/4yNjf+Vlpb7mpubku7u7v///////////2ZnZ/9mZ2f/Zmdn////////////cnNz/2ZnZ/9naGj////////////V1dX/mpubkkdHR3DDw8P/8fLy/83Nzf+jpKT/b3Bw/87Ozv/c3Nz/3t7e/7S0tP9mZ2f/tba2////////////w8PD/0dHR3AAAAAAhoeH5vb29v9mZ2f/Zmdn/2ZnZ/9mZ2f/Zmdn/2ZnZ/9mZ2f/Zmdn/4SFhf///////v7+/4aHh+YAAAAAAAAAAAAAAABvcHD+9fX1/2doaP9mZ2f/Zmdn/2ZnZ/9mZ2f/Zmdn/2ZnZ/9oaWn/+Pj4/29wcP4AAAAAAAAAAAAAAAAAAAAAAAAAAIaHh+bDw8P/z8/P/4yNjf97fHz/ent7/4uLi//Nzc3/w8PD/4aHh+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0dHcJqbm5KVlpb7paWl/6Wlpf+Vlpb7mpubkkdHR3AAAAAAAAAAAAAAAAAAAAAA+B8AAOAHAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAgAEAAMADAADgBwAA+B8AAA==" rel="icon" type="image/x-icon">
100+
</head>
101+
<body>
102+
<h1>Проверка сервера на совместимость с ВП</h1>
103+
<hr>
104+
<table>
105+
<tr>
106+
<th>Проверка</th>
107+
<th>Статус</th>
108+
<th>Детали</th>
109+
</tr>
110+
<tr>
111+
<td>Версия PHP</td>
112+
<td class="<?php echo $phpVersionClass; ?>"><?php echo strtoupper($phpVersionClass); ?></td>
113+
<td><?php echo $phpVersion; if(strtoupper($phpVersionClass) === "WARN") { echo " | 7.4 это минимальная версия для WP. Если можешь - обновись до 8+"; } ?></td>
114+
</tr>
115+
<tr>
116+
<td>PHP Memory</td>
117+
<td class="<?php echo $memoryCheckClass; ?>"><?php echo strtoupper($memoryCheckClass); ?></td>
118+
<td><?php echo ini_get('memory_limit'); if(strtoupper($memoryCheckClass) === "FAIL") { echo " | Мало памяти. Сделай минимум 256M"; } ?></td>
119+
</tr>
120+
<tr>
121+
<td>cURL</td>
122+
<td class="<?php echo $curlCheckClass; ?>"><?php echo strtoupper($curlCheckClass); ?></td>
123+
<td><?php echo $curlCheckClass == 'pass' ? 'Модуль установлен' : 'Модуль не найден'; ?></td>
124+
</tr>
125+
<tr>
126+
<td>MySQL</td>
127+
<td class="<?php echo $mysqlCheckClass; ?>"><?php echo $mysqlCheckClass == 'warn' ? 'WARN' : strtoupper($mysqlCheckClass); ?></td>
128+
<td><?php echo $mysqlCheckClass == 'warn' ? 'wp-config.php не найден, не могу подключится к базе проверить её.' : ($mysqlCheckClass == 'pass' ? 'БД работает' : $msqlerror); ?></td>
129+
</tr>
130+
</table>
131+
132+
<div class="verdict <?php echo $compatibility ? 'pass' : 'fail'; ?>" style="text-align: center !important;">
133+
<i><b><?php echo $compatibility ? '<span style="color: green;">ГОТОВ ДЛЯ WORDPRESS\'А</span>' : '<span style="color: red;">НЕ ГОТОВ ДЛЯ WORDPRESS\'А</span>'; ?></b></i>
134+
</div>
135+
<hr>
136+
<div style="width: 100%; height: 200px;">
137+
<img src="https://on-tech.tech/images/photo_2023-03-17_13-38-00.jpg" style="object-fit: contain; width:100%; height:100%" >
138+
</div>
139+
</body>
140+
</html>

0 commit comments

Comments
 (0)