Не могу понять как реализовать синхронизацию моего файла sync.php, который должен находиться на домене(сайте) mysite.ru с другим моим проектом который находится по адресу sequrity.ru (для примера). Собственно сам код sync.php:
<?php
include "http://sequrity.ru/config.php";
include "http://sequrity.ru/modules/core.php";
//Checking if the visitor is in the Whitelist
$wtable = $prefix . 'ip-whitelist';
$wquery = mysqli_query($connect, "SELECT ip FROM `$wtable` WHERE ip='$ip'");
$wrow = mysqli_num_rows($wquery);
if ($wrow == "0") {
//Ban System
include "http://sequrity.ru/modules/ban-system.php";
//Checking if Project SECURITY is enabled
$table = $prefix . 'settings';
$squery = mysqli_query($connect, "SELECT * FROM `$table`");
$srow = mysqli_fetch_assoc($squery);
if ($srow['realtime_protection'] == "Yes") {
include "http://sequrity.ru/modules/sqli-protection.php";
include "http://sequrity.ru/modules/massrequests-protection.php";
include "http://sequrity.ru/modules/spam-protection.php";
include "http://sequrity.ru/modules/content-protection.php";
include "http://sequrity.ru/modules/badbots-protection.php";
include "http://sequrity.ru/modules/fakebots-protection.php";
include "http://sequrity.ru/modules/headers-check.php";
include "http://sequrity.ru/modules/tor-detection.php";
}
}
include "http://sequrity.ru/modules/optimizations.php";
?>
Для начало стоит подчеркнуть что
include "http://sequrity.ru/config.php";
Вернет вам не сам скрипт вызываемого файла а арезультат его выполнения.
В данном случае вы можете решеить эту проблему несколькими путями.
Используйте Git. Это самый верный способ решения этой проблемы.
Используйте NFS(Network File System) – это сетевая файловая система, позволяющая пользователям обращаться к файлам и каталогам, расположенным на удалённых компьютерах, как если бы эти файлы и каталоги были локальными. Тоесть вы файл изменяете в одном файле к которому по сети подключены обе вебсайта.
Выше переведённые варианты вам помогут только лишь в том случае если у вас выделенный сервер. Но если это не так, то скорее всего вам прядётся синхронизировать эти файлы вручную. Для начало стоит подчеркнуть что эти файлы необходимо передавать по сети в зашифрованном состоянии дабы избежать утечки исходного кода. Кроме того вам необходимо определить когда именно файлы будут синхронизироваться. Это можно реализовать следующим образом На одном сервере у вас есть файл http://mysait.ru/get_encripted_file.php который возвращает зашифрованный исходный код а над другом сайте sync.php кто его принимает, расшифровывает и сохраняет.
Вот пример get_encripted_file.php
/**
* @param $string
* @return string
*/
function encrypt($string)
{
$encrypt_method = "AES-256-CBC";
$secret_key = 'This is my secret key';
$secret_iv = 'This is my secret iv';
// hash
$key = hash('sha256', $secret_key);
// iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
$iv = substr(hash('sha256', $secret_iv), 0, 16);
$output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
$output = base64_encode($output);
return $output;
}
$sourceCode = file_get_contents('file_for_encrypt.php');
echo $encryptedSourceCode = encrypt($sourceCode);
А вот это код sync.php - собственно это и есть скрипт который будет скачивать скрипт, расшифровывать и сохранять его
/**
* @param $string
* @return string
*/
function decrypt($string)
{
$encrypt_method = "AES-256-CBC";
$secret_key = 'This is my secret key';
$secret_iv = 'This is my secret iv';
// hash
$key = hash('sha256', $secret_key);
// iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
$iv = substr(hash('sha256', $secret_iv), 0, 16);
$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
return $output;
}
$sourceCode = file_get_contents('http://mysait.ru/get_encripted_file.php');
file_put_contents('save_to_this_file.php', $sourceCode);
Вы не можете так делать, тем более через http протокол. Сайт никогда не должен выдавать исходные скрипты сайта - иначе это было бы большой дырой в безопасности.
Что вы можете сделать для синхронизации — например, вы можете автоматически или вручную копировать нужные файлы с сервера на сервер, по ftp или ssh.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости