Thursday, December 15, 2011

Пацаны ваще ребята!

Feed: Блог Teimos'а
Posted on: Thursday, December 15, 2011 3:02 PM
Author: Teimos
Subject: Пацаны ваще ребята!

Очень часто возникает такая ситуация, когда человек не очень разбирается в некоторых технических моментах, не может загуглить, у него заняты руки или что-то еще. Далее я приведу наиболее частые вопросы и постараюсь как можно понятнее ответить на них. Пост будет пополняться по мере поступления пациентов вопросов.

Как запустить php скрипт на компьютере?
1. Идем на
волшебный сайт, качаем оттуда дистрибутив денвера.
2. Устанавливаем денвер.
3. Переходим в папку C:\WebServers\home\ (ну или куда оно там установится)
4. Создаем папку с названием будущего сайта, одно слово латиницей, например «mysuperscript». Внимание, окончания .ru, .com и т.п. использовать не рекомендую!
5. Внутри нашей свежесозданной папки создаем папочку «www», эта папка и будет корнем будущего сайта, в который нужно класть файлы и скрипты.
6. Внуть папочки www бережно накладываем кучку скриптов, которые так хотим запустить.
7. Переходим в папку C:\WebServers\denwer\
8. Запускаем денвер, кликнув Run.exe (или Restart.exe, если денвер уже запущен).
9. Ждем пока страшные черные окошки поскачут по экрану…
10. Открываем любимый браузер, набиваем http://mysuperscript/ и видим то, что ложили в папку www.
11. Если указанный адрес не открывается, значит у нас либо руки из жопы (тогда лучше забросить это гиблое дело), либо где-то кто-то что-то сделал не так, повторяем процедуру до посинения. Ну, или меняем компьютер/денвер/голову.

Скрипт пишет ошибку «Fatal error: Call to undefined function curl_init() …»
1. Этой ошибкой php-интерпритатор пытается нам сообщить (да что уж тут, не пытается, а говорит прямо в лицо, режет правду-матку), что была вызвана несуществующая (undefined) функция «curl_init()».
2. Часто такая ошибка вызвана недоработками разработчика скрипта, но не в данном случае. Дело в том, что curl_init — это функция из библиотеки cURL, расширения php для работы с http. Данная ошибочка случается от того, что модуль curl попросту не подключен. Время это исправить!
3. Если у нас денвер, то:
- Идем сюда:
ТЫЦ!
- Качаем пакет расширений
- Устанавливаем его
- Открываем текстовым редактором файл /usr/local/php5/php.ini
- Подключаем модуль curl, убрав запяточие из строки «;extension=php_curl.dll», чтобы было так — «extension=php_curl.dll»
- Перезапускаем денвер
Если у нас не денвер, а какое-нибудь вертиго, или того хуже — свой сервер, то тут остается только гуглить «как установить curl на мой сервер/вертиго/апсерв/член»

Что за херня такая — open_basedir?
open_basedir — это специальная директива в настроечном файле сервера, которая ограничивает поле деятельности юзера указанной папкой.
В чем плюсы этого дерьма? В безопасности. Если кулхацкер завладеет нашей дыркой в жопе уязвимостью на сервере и, допустим, зальет шелл, то он не сможет через шелл просмотреть никаких других папок, кроме той что прописана в open_basedir и ее подпапках.
Минус есть, и он иногда приносит массу хлопот. Дело в том, что скрипты, написанные с использованием библиотеки cURL часто используют такие встроенные плюшки, как «авторедирект» и «автокуки» — т.е. обрабатывают редиректы и кукисы автоматически, что довольно удобно и логично. НО! Вот тебе ложка дегтя, блеать — курл при этих плюшках ломится в какие-то свои дебри папочного пространства сервера, и если open_basedir ему это запрещает, курл вываливает кучу ошибок, перестает обрабатывать редиректы и сохранять куки.
Решение просто — в файле httpd.conf для нужного домена прописать «open_basedir none» и перезагрузить сервер.

Все, я кончил.


Просмотреть статью...

Wrd272

No comments:

Post a Comment