Ответы пользователя по тегу PHP
  • Как обратиться к локальному серверу извне?

    для обращения вам нужно
    1. выяснить к какому демоны или сервису вы пытаетесь подключиться
    2. какие порты должны быть открыты для этого деомна,сервиса.
    3.Открыть их в фаерволе на самом ПК
    4. на вашем роутере перенаправить внешние порты на этот компьютер
    там должен быть порт форвардинг или что то подобное
    в параметрах там будет что-то вроде
    Название
    порт внешний
    порт внутренний
    Айпи компьютера внутри вашей сети кому отдать внешний порт

    что-то вроде такого
    RDP 3389 - 3389 192.168.0.2
    Тогда ваш роутер отдаст этот порт компьютеру внутри вашей сети.
    И если подключитья к вашему айпи выданому провайдером то роутер перенаправит на нужный порт нужной машины в вашей сети.
    6093c16823023094617368.png
    Ответ написан
    Комментировать
  • Какая сейчас актуальна бесплатная конфигурация VDS-сервера для совместимого набора максимально свежих PHP + MySQL + панель управления хостом?

    shambler81
    @shambler81 Куратор тега Linux
    vestacp - ставится в 1 клик
    braynycp - большой ставится в 1 клик умеет очень много но немного дебильный интерфейс в 1 клик
    ispconfig3 - удобно красиво функционально но все точится напильником, для обучения само то и для опытных тоже.
    автоинстала официального нет а тот что есть нужно перепиливать.
    что делать писал тут
    https://klondike-studio.ru/blog/ispconfig3-nginx-a...
    bitrix vm ( нет днс сервера, почтовый внешний админка консольная но удобная)
    Ответ написан
  • Как запустить файл PHP в ispManager?

    не забывайте что виды представления пхп в консоли может отличаться от того что есть на сайте
    переменые пхп да и собственно даже версия пхп
    так что лучше всего запускать вот так
    wget -q --spider http://www.example.com/cronit.php
    или
    wget -O /dev/null http://www.example.com/cronit.php

    ну или через курл.
    /usr/bin/curl -s http://yourserver.com/controller >> /path/to/file.log

    так вы 100% будете запускать то что вам нужно с теми переменными средами что на самом сайте.
    Ответ написан
  • Как настроить чпу в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    в .htacess ты добавляешь только редирект на php файл который рулит всем этим делом. Сама магия происходит в php
    вот тут сразу с верху разобрано все
    https://g.zeos.in/?q=%D1%87%D0%BF%D1%83%20php
    Ответ написан
    Комментировать
  • Как в nginx запретить прямой доступ к файлу?

    https://sysadmin.pm/referrer-spam-nginx/
    смотри пример с valid_referers.
    Ответ написан
    Комментировать
  • Как написать редирект?

    Ох ванную похоже товарищ имеет в виду что он хочет запилить ЧПУ однако ;)
    blog.ox2.ru/php/hpu
    Ответ написан
  • Какие права дать для пользователя Apache www-data?

    shambler81
    @shambler81 Куратор тега Linux
    chown -R www-data:www-data /var/www/site.ru
    но лучше всего делать следующий вариант
    запускать для каждого сайта апачь под своими юзерами
    тут все зависит от мода представления пхп
    Ответ написан
  • Nginx proxypass cache и php, как правильно настроить?

    shambler81
    @shambler81 Куратор тега Linux
    в 99% случае было бы целесообразнй поработаь с кодом самого сайта это факт, улучшить систему кеширования переделать самые тяжелые запросы как правило при разрастание проекта такое не редко, и тут добиться производительности можно куда быстрей чем через костыли.
    так же не забывайте что если часть сайта не хотите кешировать то сделайте отдельный локейшен под эхто мероприятие.
    Так же есть особые рекомендации в индивидуальном порядке каждому движку.
    Так же не забывайте что даже смена версии пхп может сильно улучшить ситуацию опять же нужно смотреть что у вас, если вы на 5.6 то точно 100% да
    и даже если на 7.0
    не забывайте что так же у вас должен быть подключен opcache и качественно отстроены конфиги apache nginx и mysql это вам тоже должно дтаь отличный буст.
    до 50К посетителей сайт должен справляться на одном сервере без костылей.
    так что больше вводных
    какие версии че за по сслку на сайт ( это не сеерет, вы еще и за директ платите чтоб я ее узнал)
    Ответ написан
    Комментировать
  • Из-за чего скачки времени обработки запросов?

    1. iotop -okaво время таких фризов
    2. переведите режим работы процессоров с энерджи сейв в перфоманс cat /proc/cpuinfo | grep MHz все процессоры должны иметь или максимальную частоту или близкую к ней.
    Когда процессор "холодный" то ему нужно время поднять частоту, и получается что он быстрей иногда отрабатывает под нагрузкой чем полностью пустой но с 800MHz
    3. не забывайте что php+sql один и тот же запрос могут выполнить с разной скоростью, притом эта разница нифига не в 1% а порой доходит до 300% и усугубляется очередью как в sql так и на любом этапе.
    4. Могу вам сказать что по факут является самым распространенным

    а) i-o диска особенно HDD ( nvme) можно даже не тестировать.
    б) sql параллелит свои запросы но один запрос делает на 1 ядре, в результате 128 ядерный камень по 2Ghz может работать медленней вашего офисного Corei3 поскольку такт на ядро у него больше.
    в) кеш php кешируйте все что только можно и грамотно, как правило в этом месте можно ускориться раз в 10-30, даже не оптимизируя запросы в бд
    г) находите самые тяжелые запросы в бд и оптимизируйте их.

    Теперь что скорее всего происходит
    у вас встает очередь запросов в бд, например идет тяжелый хит скажем каталог с 5 фильтрами, в это время остальные запросы встают в очередь, и даже мелкие из них выполняюются медленно поскольку пред ними стоит тяжелый товарищь.
    ТАк вот к примеру когда делается 1 тяжелый запрос встало еще 300, и они вместе начинают лезть и выполняться.
    В результате получается то - же самое что выделить 10000 файлов в винде на hdd и скопировать параллельно а не последовательно
    I-O проседает многократно порой до десятков тыс раз.
    Пример утрированный но тем не менее.
    В результате у вас затык на пустом месте, когда LA системы 5 I-O 10% sql=100% на 1 камне.
    Как правило ситуация дальше осложняется по следующей схеме
    занимаются все камни тяжелыми хитами, тем более с каждым разом это становится легче, поскольку ресурсы других камней уже заняты, в результате раз в день база начинает тормозить, и ее рестартуют по крону.
    ;)))
    Но все индивидуально.
    Ответ написан
    6 комментариев
  • Как изменить URL в адресной строке?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteRule ^blog/[0-9]{4}/[0-9]{2}/[0-9]{2}/(.*)$ /blog/article/$1/? [L,R=301]

    [0-9]{4}- от нуля до 9, 4 раза подряд то есть эквивалент XXXX цифр
    (.*) любое значение собрали в группу 1
    $1 - выводим значение 1 группы
    /? - удаляем гет парметры. - опционально можно не делать
    не забудь включить реврайт энджин он
    Ответ написан
  • Как запретить обращение(скачивание архива) по url?

    shambler81
    @shambler81 Куратор тега htaccess
    полодите архив под .htpass и скачивате его с урлом указав пароль, в таком случае физически файл не возможно будет скачать только со ссылкой логина и пароля.
    это самое простое решение.
    Второе решение это скачивание файла через php генерацию урла.
    Ответ написан
    Комментировать
  • Как изменить чужую картинку с HTTP на HTTPS?

    php proxy на гите дофига примеров
    ну и стрреплейс все ;)
    Ответ написан
  • Почему Апаче скачивает php файлы?

    <IfModule !php5_module> 
        <FilesMatch "\.php$">        
            Order allow,deny
            Deny from all     
        </FilesMatch>
    </IfModule>
    Ответ написан
  • Https заменяется на http после прохода через nginx?

    ТАК НЕЛЬЗЯ ДЕЛАТЬ!
    Какой-то идиот написал ман и все маны в интернете ошибочны ( да оно работает но есть множество но)
    И это связано именно с тем что бэк не знает что он на https, да есть частичные костыли которые решают большинство косяков ( но не все)
    Короче если в кратце
    http -> http
    https -> https
    Подставляете тот же сертификат на бэке
    Падения производительности нет.
    Придумывать велосипед смысла нет, делайте как положено и все будет хорошо
    тот гений что придумал миксовать контент, может и ответит зачем он так придумал но реально от этого решения нет никакой пользы а вот минусы есть
    Ответ написан
  • Как сделать правильно сохранение?

    shambler81
    @shambler81 Автор вопроса
    Все вопрос решил вот так

    if ($array['my_phone'][$row['yandex_building_id']] !== NULL) {
    		 	mysql_query($sql);    
    }
    Ответ написан
    Комментировать
  • В каких таблицах хранятся в битрикс изображения у товаров?

    Вы документацию битрикс читали?
    Обращение к изображениям по средствам АПИ
    Не придумывайте велосипед, тем более на ровном месте
    Ответ написан
    Комментировать
  • Как сделать Foreach 1 1 раз для некоторых элементов?

    shambler81
    @shambler81 Автор вопроса
    Да спасибо я уже докумекал. Да и по ходу разбора массива оказалось что в коде ошибка, пришлось переделывать все, и даже картинка понадобилась всего одна, но правильная.
    Собственно конечный вариант.
    echo '<span class="close js-close">Закрыть</span>
    <h2>Квартира в новостройке</h2><br><Br>
    <div class="form_addobjX">
    	<table>
    		<tbody>
    			<tr>
    				<td>
    			        <p><b>'.$check.' в '.$data['0']["building-name"].'</b></p>
    			        ';
    						foreach ($data['0']["image"] as $key => $value) {
    							if($value['tag'] == 'plan'){?>
    								<img class="popup_kv" src="<?=$value['url']?>">
    							<?}else{
    								continue;
    							}
    						}
    			        // <img class="popup_kv" src="'.$data['0']["image"][0][url].'">
    					echo '
    					<div class="item">				<label>Общая площадь:	  </label>'.$data['0']["area"]['value'].' 	 					кв. м					</div>
    					<div class="item">				<label>Жилая площадь:	  </label>'.$data['0']["living-space"]['value'].' кв. м									</div>
    					<div class="item">				<label>Этаж:			  </label>'.$data['0']['floor'].' этаж из '.$data['0']["floors-total"].'				</div>
    					<div class="item">				<label>Цена:			  </label>'.number_format($data['0']['price']['value'], 0, ',', ' ').' руб.				</div>
    
    					<div class="item" id="Expando1 "><label>Продавец и телефон:</label>'.$data['0']['sales-agent'][organization].' <a href="tel:'.$data['0']['sales-agent']['phone']['0'].'">'.$data['0']['sales-agent']['phone']['0'].' </a>
    					</div>
    				</td>
    			</tr>
    		</tbody>
    	</table>
    </div>';


    На мой взгляд немного криво, но я не php шник.
    Вопрос закрыт, Но если кто скажет как было бы правильней это оформить отдельно скажу спасибо.
    Ответ написан
    Комментировать
  • Как сделать чтобы была красивая ссылка в php?

    shambler81
    @shambler81 Куратор тега htaccess
    ЭТО называется ЧПУ
    blog.ox2.ru/php/hpu
    Ответ написан
    Комментировать
  • Как установить Zend Engine?

    Zend Optimizer- до PHP5.3
    Zend guard loader - до PHP5.6
    Zend guard - нет для 7
    Но точно есть IonCube Loader для 7
    Ответ написан
    Комментировать