Свежие комментарии

    Архивы рубрики ‘Рабочая среда’

    Проверенные способы защиты PHP

    Проверенные способы защиты PHP

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

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

    Защита PHP с помощью php.ini

    В PHP существует целый ряд настроек, которые влияют на безопасность ваших приложений. Этими настройками можно управлять с помощью файла php.ini. Контролируя саму работу PHP, вы снижаете потенциальный ущерб, который могут нанести ошибки.

    Запретить Register Globals

    До версии 4.2.0, PHP использовал глобальные переменные для предоставления доступа к входным переменным из запросов GET и POST. Эта функция была ликвидирована, поскольку она обеспечивает лазейку в безопасности. Злоумышленники могут использовать его для управления переменными в рамках различных сценариев. Но для обеспечения обратной совместимости PHP позволяет настраивать register_globals в php.ini. Когда эта опция включена, PHP работает в старом режиме и регистрирует глобольные переменные для входных значений. Чтобы обеспечить безопасность PHP, всегда следует выключать эту настройку. Избегайте использования сценариев, которым требуется register_globals, поскольку это обычно является признаком потенциально опасных или редко обновляемых сценариев.

    Управление доступом к файлам

    PHP-сценарии могут использовать функцию fopen для чтения и записи файлов на файловой системе сервера. Это, конечно, очень нужная возможность. Тем не менее, она также может представлять угрозу безопасности. Ошибка в сценарии PHP может позволить злоумышленнику читать или переписывать системные файлы. К счастью, в PHP есть ряд параметров, которые позволяют контролировать, к каким файлам PHP может получить доступ.

    Хотите начать зарабатывать, продвигая свой аккаунт в социальных сетях и используя интернет маркетинг, но не знаете с чего начать? Сайт прайссмм поможет Вам разобраться в таком процессе. Здесь молодой, но достаточно опытный специалист расскажет Вам о том, чего многие до сих пор не знают. Это поможет Вам достаточно быстро поднять рейтинг любой страницы, аккаунта или канала.

    Один из вариантов, который можно использовать в php.ini это open_basedir. Данный параметр принимает в качестве значения подкаталог, такой как /home/user/html/. Ввод/вывод интерпретатора ограничивается указанным подкаталогом, что предотвращает чтение и запись файлов за пределами данного подкаталога с помощью PHP.

    Вы можете также использовать параметр safe_mode в php.ini для управления доступом к файлам. В безопасном режиме PHP способен открывать только те файлы, которые принадлежат тому же пользователю, что и веб-сервер. Настройка также предотвращает запуск исполнимых файлов с помощью PHP. Если нужно разрешить PHP доступа к файлам, которые принадлежат разным владельцам, можно использовать safe_mode_gid. Параметр ограничивает доступ в PHP только теми файлами, которые принадлежат группе, под которой работает веб-сервер.

    Сокрытие PHP

    Хотя обеспечения безопасности путем внесения неясности недостаточно для защиты приложения, это усложнит попытки взлома, поскольку хакеры не будут знать, какие технологии вы используете. PHP выдает себя по ряду признаков, среди которых заголовки и подпись Apache. Это можно отключить с помощью expose_php = off в php.ini.

    Ещё один признак, который выдает PHP, это отображение ошибок. Ошибки часто включают в себя информацию о путях и других параметрах, которую хакер найдет неоценимой. Сообщения об ошибках являются бесценными в процессе разработки для тестирования и отладки, но они должны быть выключены при введении приложения в эксплуатацию. Вы можете их отключить, установив: display_errors = Off в php.ini. Полезной функцией является запись сообщений об ошибках в лог-файл, которую можно включить, установив: log_errors = On в php.ini.

    Наконец, можно настроить Apache для перезаписи URL, чтобы скрыть расширение PHP.

    Использование проверенных методов программирования

    После обеспечения безопасности PHP настройкой php.ini, необходимо обратить внимание на сам код. Другим методом защиты PHP является хорошая техника программирования. Есть целый ряд проверенных методов программирования, но не меньше методик, которые нужно избегать.

    Контроль POST и передачи форм

    Подмена форм (form spoofing) является распространенным видом атаки на веб-сайты.. Обычно это делается путем создания POST-запроса и отправки его по URL адресу, указанному в атрибуте action на форме. Чаще всего, подмена бывает безвредной, но раздражающей, например, когда спамеры отправляют спам сценариям, которые обрабатывают форму обратной связи. Тем не менее, подмена формы может быть опасной. Некоторые разработчики считают, что использование раскрывающегося списка на форме может ограничить пользовательский ввод. После этого они не проверяют данные, введенные пользователем, потому что считают, что форма выполнила проверку для них. Это может быть опасно, если кто-то отправит сценарию данные, не используя форму. Переданные данные не будут ограничиваться списком выбора.

    Одним из способов защиты от подмены формы является использование одноразовых маркеров. Генерируйте случайные маркеры и храните вместе с сессией. Затем с помощью скрытых полей ввода отправляйте одноразовые маркеры как часть формы. При обработке формы сравните маркер в сессии и маркер на форме. Если они совпадают, обработайте форму, если нет – выведите сообщение об ошибке. После обработке следует удалить маркер из сессии.

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

    Защита баз данных

    При работе с базами данных вы не должны использовать динамические SQL операторы, которые основаны на пользовательском вводе. Это создает реальную возможность для злоумышленников направить неправильные данные в базу данных. Иногда вы должны использовать вводимые пользователем данные в запросе SQL. Проверяйте введенные пользователем данные, прежде чем использовать их в запросе. Если база данных MySQL, вы можете использовать функцию mysql_real_escape_string(). Эта функция удалит недопустимые символы, эффективно обрабатывая пользовательский ввод. Если ваш код использует PHP функциональность magic_quotes_gpc, сейчас самое время пересмотреть назначение кода. Использование magic_quotes_gpc будет прекращено в PHP версии 6.

    (Полное руководство) Установка Nginx 1.1.4 + PHP-fastcgi + MySQL + memcache на Debian (FastVPS)

    (Полное руководство) Установка Nginx 1.1.4 + PHP-fastcgi + MySQL + memcache на Debian (FastVPS)

    Решил написать данную статью после того, как сам столкнулся с установкой нового Nginx 1.1.4 на VPS от FastVPS. Купил OVZ-3, поставил Debian 5 но вот что-то захотелось поставить Nginx. Сайты все у меня на apache, но вот недавно заметил небольшое торможение сайтов и решил сменить и VPS и серверную часть. По мере изучения материалов с хабры и применяя их на VPS столкнулся с небольшими проблемами установки Nginx. Данная статья будет полезна начинающим веб-мастерам которые, хотят быстро установить у себя свежую версию Nginx и MySQL.

    Требования к вам:

    — Доступ к VPS на котором установлена ОС Debian Linux

    — SSH-клиент с помощью которого вы будете ввести все нижеуказанные команды

    — Начальное знакомство с командной строкой Linux

    Разработка Nginx не стоит на месте, она развивается большими темпами. Мы установим новую версию на текущий момент Nginx 1.1.4. Репозитории Debian не могут представить нам новые версии, так что мы и без него их найдем.

    Сперва давайте обновим пакеты

    apt-get update

    Ставим библиотеки в которых нуждается Nginx для нормальной работы

    apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev openssl libcurl4-openssl-dev

    Для поддержки Perl

    apt-get install libperl-dev

    Теперь самое главное для чего мы тут и собрались, начинаем сборку и установку Nginx 1.1.4

    (Выполняем по одной строке)

    cd /tmp
    wget http://nginx.org/download/nginx-1.1.4.tar.gz
    tar -zxvf nginx-1.1.4.tar.gz
    cd nginx-1.1.4
    ./configure 
    --user=www-data 
    --group=www-data 
    --with-cc-opt="-I /usr/include" 
    --with-ld-opt="-L /usr/lib" 
    --with-http_ssl_module 
    --with-http_realip_module 
    --with-http_addition_module 
    --with-http_sub_module 
    --with-http_dav_module 
    --with-http_flv_module 
    --with-http_gzip_static_module 
    --with-mail 
    --with-mail_ssl_module
    make
    make install

    Теперь запускаем самого Nginx

    /usr/local/nginx/sbin/nginx

    Заходим на сайт(или на IP) вашего VPS где установили только что Nginx. Вы должны увидеть по середине большим шрифтом текст: Welcome to nginx! Это означает что, вы хорошо справляетесь с поставленной задачей!

    Для продолжения установки нам понадобится помощь команды dos2unix Данная команда является конвертером файлов которые были созданы в среде Windows и запускаются в Unix.

    Скоро мы начнем создавать скрипт для авто запуска nginx и PHP-fastcgi, если вы работаете в ОС Windows то текст ниже спасет ваши нервы, если вы начали запуск данных скриптов читая данную статью. Если вы сейчас на ОС из семейства Linux, тогда вы можете сразу перейти к созданию файлов. Проблема в том что текстовые редакторы из Windows вставляют некоторые символы которых Linux не адекватно воспринимает и при запуске скрипта вы бы получали ошибку: /bin/sh^M: bad interpreter: no such file or directory

    Устанавливаем dos2unix во избежании ошибки «dos2unix command not found»

    apt-get install tofrodos

    Теперь добавляем nginx в автозагрузку, для этого следуем шагам:

    1. Сохраняем файл nginx в /etc/init.d/ (Получится такой путь к файлу: /etc/init.d/nginx)

    2. Выполняем конвертацию файла из DOS в UNIX

    dos2unix /etc/init.d/nginx

    Делаем исполняемым и добавляем nginx в автозагрузку:

    chmod 755 /etc/init.d/nginx
    update-rc.d nginx defaults

    Теперь мы можем манипулировать состоянием http-сервера с помощью команд:

    /etc/init.d/nginx start
    /etc/init.d/nginx restart
    /etc/init.d/nginx stop

    Установка MySQL

    Мы не будет устанавливать MySQL из стандартного набора Debian, подключим дополнительный репозиторий, который порадует нас новыми пакетами данных.

    Чтобы открыть доступ к новому репозитарию, редактируем файл /etc/apt/sources.list добавляем в конце данные строки:

    deb http://packages.dotdeb.org  lenny all
    deb-src http://packages.dotdeb.org lenny all

    Во избежании жалоб на отсутствие подписи, мы добавим следующие ключи:

    gpg --keyserver keys.gnupg.net --recv-key 89DF5277
    gpg -a --export 89DF5277 | sudo apt-key add -

    Если у вас не установлена утилита aptitude выполните данную команду

    apt-get install aptitude

    Вернемся к установке MySQL, устанавливаем MySQL сервер командой:

    (Во время установки вас попросят ввести новый пароль от MySQL root пользователя, будьте осторожны!)

    aptitude install mysql-server mysql-client

    Установка PHP и дополнительные расширения

    Выполняем в командной строке:

    aptitude install php5 php5-cgi php5-curl php5-mysql php5-gd php5-recode php5-imagick php5-dev php5-mcrypt php5-memcache

    Настройка FastCGI

    1. Сохраняем init-скрипт php-fastcgi в /etc/init.d (получится такой путь: /etc/init.d/php-fastcgi)

    2. Создаем для него файл конфигурации в директории /etc/default/php-fastcgi.

    Сохраняем файл php-fastcgi в /etc/default/ (получится такой путь: /etc/default/php-fastcgi)

    3. Выполняем конвертацию файлов из DOS в UNIX

    dos2unix /etc/init.d/php-fastcgi
    dos2unix /etc/default/php-fastcgi

    Добавляем скрипт в список автоматического выполнения при загрузке системы

    chmod 755 /etc/init.d/php-fastcgi
    chmod 755 /etc/default/php-fastcgi
    update-rc.d php-fastcgi defaults

    Запускаем службу:

    /etc/init.d/php-fastcgi restart

    Настройка Nginx

    Создаем папку где будут лежать файлы нашего сайта:

    mkdir -p /home/www
    chmod 0755 /home/www

    Открываем файл /usr/local/nginx/conf/nginx.conf и сохраняем его с текущем содержимым

    user www-data www-data;
    worker_processes  1;
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    #pid        logs/nginx.pid;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        client_max_body_size 100m;
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
        #access_log  logs/access.log  main;
        sendfile        on;
        #tcp_nopush     on;
        #keepalive_timeout  0;
        keepalive_timeout  65;
        #gzip  on;
        server {
            listen       80;
            server_name  localhost;
            charset utf-8;
            #access_log  logs/host.access.log  main;
            location / {
                root   /home/www;
                index  index.php index.html index.htm;
            }
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            location ~ .php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /home/www$fastcgi_script_name;
                include        fastcgi_params;
            }
        }
    }

    Перезапускаем nginx:

    /etc/init.d/nginx restart

    Создаем файл index.php и загружаем его в папку /home/www

    <?php
    phpinfo();
    ?>

    Зайдите на ваш сайт и уведите результат нашей работы. Если вы уведите логотип PHP и большую таблицу с характеристиками установленного PHP значит вы справились!

    MEMCACHE

    Выполняем следующую команду в командной строке:

    apt-get install memcached

    Перезапускаем php

    /etc/init.d/php-fastcgi restart

    Удачной работы!

    Если будут вопросы, задавайте их в комментариях ниже!

    Заказать качественный VPS/VDS от качественных представителей FastVPS.ru

    Как установить Денвер?

    Как установить Денвер?

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

    Сам пакет Денвер вы можете взять на официальном сайте, причем совершенно безвозмездно (данное программное обеспечение находится в свободном доступе). Теперь, чтобы установить Денвер, нужно запустить скаченный файл, далее нажать кнопку подтверждения, то есть, Enter. Вам будет предложено подыскать соответствующее место хранения всех файлов для Денвер, по умолчанию будет стоять путь C:WebServers. Вы можете принять это предложение либо избрать другую директорию, но желательно она должна помещаться на первом уровне, то есть, непосредственно в главном отделении локального диска C или D. Что примечательно, Денвер в этом отношении очень аккуратен и все его составные части будут помещаться только здесь, данный пакет не «раскидывает» свои сети по различным местам компьютера.

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

    После этого следует заняться настройкой режима активности Денвер. К примеру, можно выбрать вариант, при котором виртуальный диск становится «рабочим» при запуске операционки и отключается при выключении компьютера.  Второй вариант можно назвать ручным, так как в этом случае Денвер начинает работать только после того, как вы дали соответствующую команду о запуске сервера. Чтобы особенно не «заморачиваться» на этот счет, лучше установить Денвер с первыми параметрами, то есть, с автоматическим созданием и отключением в зависимости от работы операционной системы.

    Дальше, как и при всяком другом установочном процессе, вам зададут вопрос, хотите вы расположить ярлыки на рабочем столе или же нет. Отвечать следует при помощи кнопочек Y и N, которые обозначают «Да» и «Нет».

    Теперь, чтобы окончательно убедиться в том, что вам удалось установить Денвер, нужно произвести проверку, прописав в проводнике http://localhost. Если у вас открылась страничка с позитивным названием «Ура, все заработало!», то можете напрямую приступать к эксплуатации Денвера!

    Debian — Оптимизация производительности Apache

    Debian - Оптимизация производительности Apache

    Если вы решили увеличить производительность Apache (а на сегодняшний день это – один из самых популярных веб-серверов Сети), то вам пригодятся те советы, которые мы собираемся дать в этой статье.

    1.    Работайте только с действительно нужными вам модулями, а все остальное, сразу же и не задумываясь, удаляйте! Дело в том, что в этом случае вы сразу же уменьшите потребления памяти, что и повлечет за собой увеличение скорости. Второй вариант – скомпилировать модули как DSO, при помощи apxs (в apache 1) и apxs 2 в (apache 2), что сократить скорость работы примерно на 11-15%.

    2.    Правильно выберите MPM (Multi-processing module). Так как главная задача MPM – прослушивать порты, соответствующие установленным требованиям по безопасности, количеству свободной памяти или наличии поддержки потоков в ОС, то следует ограничить выбор на двух MPM – worker и prefork.

    Worker – переносит обслуживание запросов в отдельный поток.

     Perfork — работаете с несколькими дочерними процессами, каждый из которых отвечает за обработку одного подключения.

    Чтобы сменить MPM, вы должны будете перекомпилировать  apache при помощи source-based, что сразу же улучшит скорость работы всей системы.

    3.    Настройка DNS запросов. Во-первых, включите директиву «HostnameLookups» . Во-вторых, сделайте так, чтобы Allow from и Deny From директивах использовались не доменные имена, а IP-адреса, чтобы избавить apache от двойных запросов, которые он будет делать для того, чтобы проверять достоверность данных клиента.

    4.    Установить AllowOverride директиву в режим «None», иначе  apache будет открывать (или пытаться сделать это)  все htaccess-файлы в каждой посещаемой директории, а так же файлы выше ее:

    Debian - Оптимизация производительности Apache

    Потому если вам нужен .htaccess только какой-нибудь одной директории, то поступите так:

    Debian - Оптимизация производительности Apache

    Так же нужно отметит, что при включении для директории:

    FollowSymLinks — сервер всегда будет следовать по символическим ссылкам в данной директории;

    SymLinksIfOwnerMatch – сервер будет отслеживать ссылки только  в случае если данные владельца директории совпадают с данными владельца директории, на которую указывает ссылка.

    5.    Так же откажитесь от Content Negotiatio.

    6.    Правильно задайте параметры MaxClients, определяющий количество одновременно обрабатываемых запросов. Найдите для себя оптимальное значение MaxClients, чтобы обслуживать оптимальное число клиентов. При этом следует помнить, что для статических файлов apache требуется 2-3 Мб на процесс, для динамики — 16-32 Мб.

    7.    Установка  MinSpareServers, MaxSpareServers, и StartServers – а она должна привести к тому, чтобы apache отказался от создания 4-х потоков/процессов  в 1-у секунду, что позволит не перегружать систему даже при максимальном числе клиентов.

    8.    Измените значение MaxRequestsPerChild при определении того, сколько запросов должен обработать 1  дочерний поток/процесс до своего завершения. Помните, что это значение (по умолчанию) выставлено как «ноль», потому лучше изменить его на 1000 и больше, что избавит вас от утечки памяти в дочерние процессы, что имеет огромное значение при использовании  нестабильной версию PHP.

    9.    Активируйте KeepAlive и KeepAliveTimeout, которые в отключенном режиме создают отдельный поток для каждого размещенного на html-странице изображения, и «тормозит» страницы с большим числом изображений большого размера.  В случаях с download-серверами  KeepAlive лучше отключить, что сразу же избавит вас от долго ожидания перед закрытием сервером соединений.

    10.    Используйте сжатие, что позволит вам уменьшить количество передаваемого трафика на 75 процентов. И делайте это без всякой опаски, так как на сегодня все новейшие клиентские программы и сервера поддерживают HTTP-сжатие  в стандарте HTTP/1.1. А постарастья сжать следует видео, музыку, и все jpg, gif png файлы.

    Следует отметить, что параметры кэширование задаются директивами модуля mod_deflate. При этом не стоит устанавливать степень сжатия gzip более 4 или 5, так как это увеличит время CPU, и снизит общий эффект.

    11.    И конечно же не забывайте устанавливать на статических файлах  (для этого применяется модуль mod_expires)  Expires заголовки. Или закэшируйте его на клиенте в том случае, если файл не изменяется, что освободит сервер от лишних запросов, а клиент получит более быстро загружаемую страницу.

    На новых VPS часто появляются проблемы с производительность работы Apache. Дело в том, что конфигурационные файлы которые создаются после установки Apache далеко не оптимизированы.

    Симптомы плохой настройки могут быть работа VPS с обжорством RAM на 100% или CPU на 100%. После выполнения команды top или htop(если не работает выполните apt-get install htop) на первых строках будет процесс apache.

    Я покажу оптимальный конфиг. файл для VPS

    Оперативная память: 512 MB

    Процессор: 2267 MHz

    ОС: Debian 5

    #
    # Timeout: The number of seconds before receives and sends time out.
    #
    Timeout 300
    #
    # KeepAlive: Whether or not to allow persistent connections (more than
    # one request per connection). Set to "Off" to deactivate.
    #
    KeepAlive On
    #
    # MaxKeepAliveRequests: The maximum number of requests to allow
    # during a persistent connection. Set to 0 to allow an unlimited amount.
    # We recommend you leave this number high, for maximum performance.
    #
    MaxKeepAliveRequests 100
    #
    # KeepAliveTimeout: Number of seconds to wait for the next request from the
    # same client on the same connection.
    #
    KeepAliveTimeout 15
    ##
    ## Server-Pool Size Regulation (MPM specific)
    ## 
    # prefork MPM
    # StartServers: number of server processes to start
    # MinSpareServers: minimum number of server processes which are kept spare
    # MaxSpareServers: maximum number of server processes which are kept spare
    # MaxClients: maximum number of server processes allowed to start
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <ifmodule mpm_prefork_module="">
        StartServers          3
        MinSpareServers       3
        MaxSpareServers      10
        MaxClients          100
        MaxRequestsPerChild   0
    </ifmodule>
    # worker MPM
    # StartServers: initial number of server processes to start
    # MaxClients: maximum number of simultaneous client connections
    # MinSpareThreads: minimum number of worker threads which are kept spare
    # MaxSpareThreads: maximum number of worker threads which are kept spare
    # ThreadsPerChild: constant number of worker threads in each server process
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <ifmodule mpm_worker_module="">
        StartServers          2
        MaxClients          150
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadsPerChild      25
        MaxRequestsPerChild   0
    </ifmodule>
    

    В этом файле настроек можно поменять следующие параметры:

    • MaxClients – ограничение максимального числа
    • одновременно запущенных процессов httpd. т.е. по сути установка лимита

      на сжирание памяти самым “голодным” процессом httpd

    • StartServers -устанавливает число дочерних процессов при запуске сервера.
    • MinSpareServers – минимальное число неиспользуемых дочерних процессов.
    • MaxSpareServers —  соответственно максимальное число неиспользуемых дочерних процессов.
    • MaxRequestsPerChild – максимальное количество запросов, которое разрешено обрабатывать дочернему процессу до переполнения. Нужен данный параметр, чтобы избежать  утечку памяти или других ресурсов Apache, так как при переполнении дочерний процесс будет
    • принудительно завершен. В большенстве случаев изменение не требуется. Значение 0 – озхначает отсутствие  ограничений.

    PHP и Ruby on Rails: что лучше?

    PHP и Ruby on Rails: что лучше?

    И PHP и Ruby on Rails имеют своих убежденных последователей. Эти последователи настолько преданны выбранной ими платформе, что сбор достоверной информации о различиях между платформами может быть довольно трудной задачей. Однако эта информация очень важна, если вы собираетесь принять решение о том, какую платформу выбрать для разработки вашего следующего проекта. Далее приведен быстрый обзор некоторых основных характеристик и дополнительные факторов, которые следует учитывать при выборе PHP или Ruby On Rails.

    PHP — это язык программирования

    Сравнивать PHP и Ruby On Rails несправедливо. PHP это просто язык программирования. Тем не менее, это чрезвычайно гибкий и полезный язык. PHP использует очень мало памяти и работает достаточно хорошо. PHP является достаточно зрелым языком с большим разнообразием расширений и модулей библиотек. Изначально разработанный как язык сценариев для использования в HTML страницах, PHP постепенно развился и теперь включает в себя все функции объектно-ориентированного программирования. Последнее добавление объектно-ориентированных функций вызвало наибольшую критику. Некоторые программисты считают, что PHP поощряет небрежное кодирование, поскольку был создан как язык сценариев и изначально не имел четкой объектно-ориентированной стратегии.

    PHP как язык не имеет всех особенностей Ruby On Rails. В результате создание кода сайта с самого начала на PHP требует гораздо больше усилий при разработке, поскольку соединение с базами данных должно быть написано с нуля.

    Однако существует ряд зрелых и стабильных фреймворков, написанных на PHP, которые предоставляют функции, подобные Ruby On Rails. Это одна из сильных сторон PHP — выбор. Разработчик может выбрать фреймворк только с необходимыми функциями или разработать их самостоятельно. При работе с Ruby On Rails вы будете ограничены только предоставленными функциями. Это может создать трудности при разработке, когда настройки, сделанные фреймворком, не совпадают с требованиями приложения. Также это может повлечь проблемы с производительностью в связи накладными расходами для неиспользуемых возможностей.

    Ruby On Rails — это фреймворк

    С другой стороны, Ruby On Rails это фреймворк, разработанный на языке программирования Ruby. Данный язык программирования был разработан с нуля с учетом объектно-ориентированного программирования и имеет строгий и ясный синтаксис. Язык также может быть крайне негибким. Как язык программирования Ruby работает гораздо медленнее PHP и требует больше памяти.

    Rails — это фреймворк, который предоставляет ряд функций, удобных для быстрой разработки веб-приложений. Как фреймворк, Rails предоставляет большие возможности. Он поддерживает шаблон Active Record, который сопоставляет записи базы данных с объектами. Active Record скрывает значительную часть SQL кода от разработчика, выполняя обработку многих рутинных задач создания, получения, обновления и удаления объектов автоматически. Rails также включает в себя систему маршрутизации для сопоставленных с методами URL и систему шаблонов для генерации HTML вывода. Есть много других возможностей, включая сессии. Такие функции позволяют легко создавать веб-приложения на Rails.

    Список замечательных функций Rails также является его недостатком. Как разработчик вы потеряете контроль над SQL запросами в приложении на Rails. Также появляются накладные расходы на использование функций и сервисов, которые не нужны в приложении.

    Другие вопросы

    PHP и Ruby on Rails примерно равны в том, насколько легко или трудно они масштабируются для удовлетворения растущих потребностей. С точки зрения масштабируемости они оба выигрывают от увеличения памяти и CPU, но когда в приложении требуется распределение нагрузки или обслуживание на распределенных серверах, сложность возрастает. Они оба имеют аналогичные требования в плане масштабирования и сталкиваются с похожими проблемами.

    Самый важный вопрос связан с комфортом команд разработчиков в каждом случае. Если вы хорошо знаете PHP и работаете с ним некоторое время, изучение Ruby будет камнем преткновения. Не имеет никакого смысла с точки зрения эффективности для разработчиков использовать новый язык или фреймворк из-за небольших преимуществ. Все особенности Ruby on Rails доступны и в PHP фреймворках или могут быть разработаны с использованием PHP. Разработчики пишут код лучше на тех языках, которые хорошо знают.

    Другим важным вопросом является остальная часть платформы. Если вы используете много PHP кода другим образом, например на рекламных серверах, в модулях или дополнительных компонентах веб-сайта, имеет смысл продолжать работать с PHP. Более тесная интеграция желательна в веб-приложениях.

    Кто победитель?

    Явным победителем является платформа, которую вы уже знаете, и которая будет делать то, что нужно вам и вашим клиентам. Во многих случаях это будет PHP по нескольким простым причинам. Прежде всего, большинство веб хостов поддерживают PHP, поэтому гораздо больше клиентов его используют. Вы найдёте больше возможностей для использования PHP. Во вторых, функции, которые предлагает Ruby on Rails, могут быть воспроизведены с помощью многих фреймворков PHP. В частности CakePHP предлагает много таких же функций.

    Опыт работы с платформой означает, что-Вы уже знаете, все ловушки и подводные камни в работе с ним. Наконец, PHP является более гибким. Если вам нужно, чтобы приложение работало иначе, чем то, что предлагает фреймворк, вы можете сделать это на PHP. И скорее всего, вы сможете найти библиотеку или расширение, которая делает то, что вам нужно. Хотя Ruby on Rails имеет много особенностей, PHP уже объявлен победителем на рынке.

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

    Установка eAccelerator 0.9.6.1 (apache2) на Debian 5

    Установка eAccelerator 0.9.6.1 (apache2) на Debian 5

    Если Вам кажется, что PHP стал тормозить или, же, напротив, его нужно немного ускорить вам нужен акселератор.

    В интернете есть много статей «Как установить eAccelerator» но некоторые ссылки там уже не рабочие. Для опытных администратором нерабочая ссылка это не проблема, но для новичка ошибка в консоли из за нерабочий ссылке может быть непонятной.

    Что такое eAccelerator и для чего он нужен ?

    eAccelerator — бесплатный и открытый проект, является акселератором php кода, оптимизатор и распаковщик. В нем разработаны такие функции как динамического кэширования контента. С помощью него можно воспользоваться возможностями оптимизации PHP-скриптов для ускорения их исполнения.

    Проект жив и успешно развивается, актуальная версия 0.9.6.1 добавлена 31 мая 2010

    Версию eAccelerator 0.9.6.1 сегодня мы и поставим.

    Нам нужно скачать архив eAccelerator 0.9.6.1

    Можно скачать его по ссылке тут или с сервера live-code.ru тут

    — Загружаем архив в папку /tmp

    cd /tmp
    tar xvfj eaccelerator-0.9.6.1.tar.bz2
    cd eaccelerator-0.9.6.1
    phpize
    ./configure
    make
    make install

    Готово!

    Создаем конфигурационный файл ‘/etc/php5/conf.d/eaccelerator.ini‘ следующего содержания:

    extension="eaccelerator.so"
    eaccelerator.shm_size="64"
    eaccelerator.cache_dir="/var/cache/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="3600"
    eaccelerator.shm_prune_period="1800"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"

    Создаем папку для хранения файлов eAccelerator’а:

    mkdir -p /var/cache/eaccelerator
    chmod 0777 /var/cache/eaccelerator

    Перезапускаем apache

    /etc/init.d/apache2 restart

    PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI

    Идея данной статьи заключается в следующем: можно уменьшить количество запросов HTTP, которые страница должна сделать для своих изображений, предварительно обработав исходный код и преобразовав их по схеме data:URI.

    Схема data:URI позволяет включать в веб-страницу данные в качестве внешнего ресурса. Схема может быть использована для любого вида данных, включая изображения, сценарии и таблицы стилей, и поддерживается во всех современных браузерах: Gecko браузерах, таких как Firefox и Camino, Webkit браузерах, как Safari, Konqueror и Chrome, конечно же, в Opera, и с ограничениями в IE8 (но не в IE7 или более ранней версии).

    Как показывает Google, я не первый, кому пришла идея использовать схему для оптимизации страниц. Но все реализации, с которыми я встречался, вращались вокруг переписывания путей к изображениям вручную, чтобы указать на них в сценарии, как в следующем примере.

    <?php
    <img src="://:///%3C?php%20echo%20data_uri%28%27images/darwinfish.png%27%29;%20?%3E" alt="PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI">

    Что я предлагаю, так это ретроспективный процесс, который преобразует все пути к изображениям автоматически, поэтому вам не придется делать ничего, кроме разработки страницы.

    Код, лежащий в основе

    Страница содержит пять элементов < img> и одно CSS фоновое изображение, но во всех поддерживаемых браузерах страница вообще не посылает дополнительных HTTP запросов:

    <?php
    if($datauri_supported = preg_match("/(Opera|Gecko|MSIE 8)/", $_SERVER['HTTP_USER_AGENT']))  
    {  
       ob_start();  
    }  
    ?>  
      
      
      
         
         
       <style type="text/css">  
          body  
          {  
             background:url(images/texture.jpeg) #e2e2dc repeat;  
             color:#554;  
          }  
       </style>  
      
         
          <img src="://:///images/dropcap.jpg" alt="PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI">  
          <img src="://:///images/firefox.png" alt="PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI">  
          <img src="://:///images/specificity.jpg" alt="PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI">  
          <img src="://:///images/darwinfish.png" alt="PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI">  
          <img src="://:///images/rolleyes.gif" alt="PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI">  
         
    if($datauri_supported)  
    {  
       function create_data_uri($matches)  
       {  
          $filetype = explode('.', $matches[2]);  
          $filetype = strtolower($filetype[count($filetype) - 1]);  
          if(!preg_match('/^(gif|png|jp[e]?g|bmp)$/i', $filetype))  
          {  
             return $matches[0];  
          }  
          if(preg_match('/^//', $matches[2]))  
          {  
             $matches[2] = $_SERVER['DOCUMENT_ROOT'] . $matches[2];  
          }  
          @$data = base64_encode(file_get_contents($matches[2]));  
          return $matches[1] . "data:image/$filetype;base64,$data" . $matches[3];  
       }  
       $html = ob_get_contents();  
       ob_end_clean();  
       $html = preg_split("/
    ?
    |
    /", $html);  
       while(count($html) > 0)  
       {  
          $html[0] = preg_replace_callback("/(src=["'])([^"']+)(["'])/", 'create_data_uri', $html[0]);  
          $html[0] = preg_replace_callback("/(url(['"]?)([^"')]+)(["']?))/", 'create_data_uri', $html[0]);  
          echo $html[0] "
    ";  
          array_shift($html);  
       }  
    }  
    ?>

    Как всё это работает

    Основой кода является возможность создавать data URI с использованием base64-кодированных изображений.

    Но кроме этого, необходимо применить несколько ключевых приемов, чтобы всё это заработало. Во-первых, это использование буфера вывода для предварительной компиляции исходного вывода, чтобы была возможность проанализировать его еще раз, прежде чем отправить в браузер. Если у вас не имеется свежая версия Mozila Firefox, то советую загрузить Мазилу сейчас.

    Вы увидите, что в самом начале кода я установил условный оператор, который проверяет тип браузера и начинает буферизацию вывода. Это же условие используется снова, окружая основной код внизу сценария, поэтому для браузеров, которые не поддерживают эту технику, весь сценарий пропускается, и вывод страницы происходит в обычном режиме. Затем я разделил HTML с помощью разрыва строки, чтобы можно было выполнить обработку, вывести, а затем сразу удалить каждую строку, что позволяет избежать необходимости держать весь исходный код в памяти.

    Во-вторых, для осуществления разбора страницы я использовал функцию обратного вызова preg_replace_callback, которая определяет HTML и CSS пути с помощью пары регулярных выражений, и выполняет обработку, для которой обычной замены было бы недостаточно. (Необходимо искать атрибуты SRC и URL свойства отдельно, так как их синтаксис слишком сильно отличается и одного регулярного выражения будет недостаточно)

    В функции обратного вызова сначала нужно выяснить тип файла, который необходим для вывода данных и для определения разрешенных типов, поэтому можно отвергать все, что это не является изображением (например, SCRIPT SRC). Массив $matches, который передается в функцию, всегда содержит всю подстроку, соответствующую шаблону регулярного выражения в качестве первого элемента, поэтому если тип файла нам не подходит, можно просто вернуть в качестве результата этот первый элемент без изменений и всё.

    Осталось проверить путь к корневому каталогу, перед которым нужно записать DOCUMENT_ROOT, чтобы создать правильный путь к файлу. Теперь можно кодировать изображение (с подавлением ошибок, в случае если исходный путь был нарушен), затем собрать всё вместе и вернуть data URI. Всё просто!

    Когда оптимизация уже не является оптимизацией?

    Когда затраты больше экономии! Есть несколько потенциальных затрат, которые мы должны рассмотреть.

    Изображения в data:URI на треть больше оригинала. Такие изображения не кэшируются, по крайней мере, как изображения, но они кэшируются как часть исходного кода. Такое кэширование является слишком избыточным, но, по крайней мере, позволяет просмотр в автономном режиме.

    Также первое место в потреблении вычислительной мощности занимает преобразование изображения, и к тому же файл становится больше. При загрузке не происходит значительной задержки, поскольку файл находится на том же сервере, но base64-кодировка является сравнительно дорогостоящим процессом.

    Поэтому оптимальным способом применения данной методики было бы её использование не для всех изображений, а только для большого количества маленьких изображений, таких как иконки или фоновые рисунки. Дополнительный размер кода будет незначительным, а время обработки небольшим, при этом создается заметное преимущество от сокращения нескольких десятков запросов, и страница загружается быстро.

    Например, если вам нужно обрабатывать только GIF изображения, это легко сделать, изменив разрешенные типы изображений в регулярном выражении.

    <?php
    if(!preg_match('/^(gif)$/i', $filetype))  
    {  
       return $matches[0];  
    } 
    ?>

    Также можно использовать функцию filesize, чтобы фильтровать изображения по размеру и обрабатывать только те, которые меньше определенного порога.

    <?php
    if(filesize($matches[2]) > 1024)  
    {  
       return $matches[0];  
    } 
    ?>

    Некоторые браузеры устанавливают ограничения на размер data: URI, но на практике я их не встречал. Firefox, Opera, Safari и даже IE8 без проблем выводили данные изображений более 1 Мб.

    Установка PHP с помощью Microsoft Web Platform Installer

    Если вам нужно использовать IIS вместо Apache, проще всего установить PHP с помощью Microsoft Web Platform Installer (Web PI). Инструмент Web PI автоматически загружает нужную версию PHP и встраивает её в IIS сервер. На момент написания данной статьи Web PI не поддерживает MySQL или PhpMyAdmin, так что Вам придется установить их отдельно позже. Если у вас ещё не установлен сервер IIS или .NET Framework, Web PI установит их вместе с PHP.

    1. Загрузите Web PI с сайта www.microsoft.com/web/downloads/platform.aspx. Если вы используете Internet Explorer, нажмите Run для установки. Иначе, сохраните .exe-файл на локальном компьютере, и дважды щелкните по нему, чтобы установить Web PI.
    2. Вы должны оставаться в онлайне, так как Web PI подключается к Microsoft, чтобы найти самые новые версии компонентов, а затем спрашивает, какие из них вы хотите установить (см. рисунок 1). 

      Если вам нужно использовать IIS вместо Apache, проще всего установить PHP с помощью Microsoft Web Platform Installer (Web PI). Инструмент Web PI автоматически загружает нужную версию PHP и встраивает её в IIS сервер. На момент написания данной статьи Web PI не поддерживает MySQL или PhpMyAdmin, так что Вам придется установить их отдельно позже. Если у вас ещё не установлен сервер IIS или .NET Framework, Web PI установит их вместе с PHP.

      1. Загрузите Web PI с сайта www.microsoft.com/web/downloads/platform.aspx. Если вы используете Internet Explorer, нажмите Run для установки. Иначе, сохраните .exe-файл на локальном компьютере, и дважды щелкните по нему, чтобы установить Web PI.
      2. Вы должны оставаться в онлайне, так как Web PI подключается к Microsoft, чтобы найти самые новые версии компонентов, а затем спрашивает, какие из них вы хотите установить (см. рисунок 1). 

        Рис. 1. Инструмент Microsoft Web Platform Installer позволяет легко интегрировать PHP в IIS.

      3. Выберите Web Platform в меню слева. Чтобы выбрать компоненты, которые вы хотите установить, нажмите на ссылку Customize в соответствующем разделе. Компоненты IIS и ASP расположены в разделе Web Server, а PHP и ASP.NET находятся в разделе Frameworks and Runtimes.
      4. На момент написания данной статьи, раздел Database поддерживает только Microsoft SQL Server. Если вы хотите использовать эту базу данных вместо MySQL, вам также необходимо выбрать драйвер Microsoft SQL Server для PHP.
      5. После того как вы сделали свой выбор, нажмите кнопку Install. Web PI загрузит необходимые компоненты и установит их на компьютер.
      6. Когда установка будет завершена, запустите браузер, введите http://localhost/ в адресную строку и нажмите Enter. В Windows 7, Windows Vista и других последних версиях Windows, вы должны увидеть страницу приветствия IIS.
      7. Если вы впервые устанавливаете IIS, вам необходимо установить полномочия для папок, в которых хранятся веб-сайты:
    • В проводнике Windows найдите папку C:inetpubwwwroot, щелкните правой кнопкой мыши и выберите Properties.
    • Выберите вкладку Security и нажмите кнопку Edit.
    • В разделе Group Or User Names в верхней части панели выберите IIS_IUSRS, и выберите флажок Allow для полномочий Write в нижней половине панели.
    • Дважды нажмите кнопку ОК, чтобы закрыть панели Permissions и Properties.

    Отдельная установка MySQL

    Инструмент Web PI не устанавливает MySQL, поэтому вам придется скачать и установить его самостоятельно. Во время процесса настройки программа предложит создать пароль для суперпользователя root. Это учетная запись главного администратора в MySQL. Запишите пароль, потому что без него у вас не будет доступа к MySQL.

    1. Перейдите на страницу загрузки MySQL http://dev.mysql.com/downloads/mysql/. Выберите Microsoft Windows в меню выбора платформы, и скачайте MSI Installer Essentials для вашей операционной системы (существуют разные версии для 32-разрядных и 64-битных Windows).
    2. Дважды щелкните файл программы установки, и следуйте инструкциям на экране. Выберите тип установки Typicall Install.
    3. В конце процесса установки, выберите параметр для настройки сервера MySQL,и нажмите кнопку Finish.
    4. Выберите следующие параметры в MySQL Server Instance Configuration Wizard:
    5. Configuration type: Detailed Configuration

      Server type: Developer Machine

      Database usage: Multifunctional Database

      Number of concurrent connections: Decision Support (DSS)/OLAP

      Networking options:Принять настройки по умолчанию.

      Default character set:Принять настройки по умолчанию.

      Windows options: Выберите Install As Windows Service и Include Bin Directory in Windows Path.

      Security: Введите и подтвердите пароль суперпользователя root.

    6. Нажмите Execute, чтобы сконфигурировать MySQL

    Отдельная установка phpMyAdmin

    Программа PhpMyAdmin является веб-интерфейсом для MySQL. Используйте следующие инструкции, чтобы установить его в IIS:

    1.Перейдите на страницу www.phpmyadmin.net/home_page/, и скачайте последнюю версию PhpMyAdmin.

    2.Разархивируйте загруженный файл. Архив извлекает содержимое в папку под названием PhpMyAdmin-x.x.x, где x представляет номер версии.

    3.Переименуйте папку в phpMyAdmin, и переместите её в C:inetpubwwwrootphpmyadmin.

    4.Создайте новую подпапку config в C:inetpubwwwrootphpmyadmin.

    5.Откройте браузер, наберите http://localhost/phpmyadmin/setup/index.php в адресной строке и нажмите Enter. Игнорируйте любые предупреждения о том, что соединение не является безопасным. Это нужно только при установке phpMyAdmin на рабочий сервер в Интернете.

    6.Нажмите кнопку New Server в разделе Servers. Откроется форма уже заполненная необходимой информацией. Проверьте следующие настройки:

    Server hostname: localhost

    Server port: Оставьте пустым

    Server socket: Оставьте пустым

    Connection type: tcp

    Authentication type: config

    User for config auth: root

    Password for config auth: Введите ваш MySQL root пароль.

    7.Нажмите кнопку Save. На следующем экране, скорее всего, будет предупреждение, что использование типа аутентификации config не желательно для рабочих хостов. Это не имеет значения для локальной среды тестирования. Однако, если другие пользователи имеют доступ к компьютеру, и вы хотите чтобы они проходили авторизацию в PHPMyAdmin, нажмите ссылку Edit в разделе Servers, чтобы вернуться к установке, и выберите http в качестве типа аутентификации.

    Вы также можете увидеть предупреждение, что вы не настроили базу данных PhpMyAdmin. Вы можете установить базу позже, если захотите использовать расширенные возможности PhpMyAdmin.

    8.Прокрутите окно вниз к разделу Configuration File внизу страницы и нажмите Save

    9.Откройте папку config в проводнике Windows. В папке должен появиться новый файл config.inc.php. Переместите файл в главную папку phpmyadmin.

    10.Удалите папку config.

    11.Введите http://localhost/phpmyadmin/ в адресную строку браузера и нажмите Enter, чтобы загрузить PhpMyAdmin и убедиться, что он установлен правильно.

    Поздравляем! Теперь у вас есть рабочая среда разработки PHP на вашем компьютере.

    Рис. 1. Инструмент Microsoft Web Platform Installer позволяет легко интегрировать PHP в IIS.

  • Выберите Web Platform в меню слева. Чтобы выбрать компоненты, которые вы хотите установить, нажмите на ссылку Customize в соответствующем разделе. Компоненты IIS и ASP расположены в разделе Web Server, а PHP и ASP.NET находятся в разделе Frameworks and Runtimes.
  • На момент написания данной статьи, раздел Database поддерживает только Microsoft SQL Server. Если вы хотите использовать эту базу данных вместо MySQL, вам также необходимо выбрать драйвер Microsoft SQL Server для PHP.
  • После того как вы сделали свой выбор, нажмите кнопку Install. Web PI загрузит необходимые компоненты и установит их на компьютер.
  • Когда установка будет завершена, запустите браузер, введите http://localhost/ в адресную строку и нажмите Enter. В Windows 7, Windows Vista и других последних версиях Windows, вы должны увидеть страницу приветствия IIS.
  • Если вы впервые устанавливаете IIS, вам необходимо установить полномочия для папок, в которых хранятся веб-сайты:
    • В проводнике Windows найдите папку C:inetpubwwwroot, щелкните правой кнопкой мыши и выберите Properties.
    • Выберите вкладку Security и нажмите кнопку Edit.
    • В разделе Group Or User Names в верхней части панели выберите IIS_IUSRS, и выберите флажок Allow для полномочий Write в нижней половине панели.
    • Дважды нажмите кнопку ОК, чтобы закрыть панели Permissions и Properties.

    [cut]Отдельная установка MySQL

    Инструмент Web PI не устанавливает MySQL, поэтому вам придется скачать и установить его самостоятельно. Во время процесса настройки программа предложит создать пароль для суперпользователя root. Это учетная запись главного администратора в MySQL. Запишите пароль, потому что без него у вас не будет доступа к MySQL.

    1. Перейдите на страницу загрузки MySQL http://dev.mysql.com/downloads/mysql/. Выберите Microsoft Windows в меню выбора платформы, и скачайте MSI Installer Essentials для вашей операционной системы (существуют разные версии для 32-разрядных и 64-битных Windows).
    2. Дважды щелкните файл программы установки, и следуйте инструкциям на экране. Выберите тип установки Typicall Install.
    3. В конце процесса установки, выберите параметр для настройки сервера MySQL,и нажмите кнопку Finish.
    4. Выберите следующие параметры в MySQL Server Instance Configuration Wizard:
    5. Configuration type: Detailed Configuration

      Server type: Developer Machine

      Database usage: Multifunctional Database

      Number of concurrent connections: Decision Support (DSS)/OLAP

      Networking options:Принять настройки по умолчанию.

      Default character set:Принять настройки по умолчанию.

      Windows options: Выберите Install As Windows Service и Include Bin Directory in Windows Path.

      Security: Введите и подтвердите пароль суперпользователя root.

    6. Нажмите Execute, чтобы сконфигурировать MySQL

    Отдельная установка phpMyAdmin

    Программа PhpMyAdmin является веб-интерфейсом для MySQL. Используйте следующие инструкции, чтобы установить его в IIS:

    1.Перейдите на страницу www.phpmyadmin.net/home_page/, и скачайте последнюю версию PhpMyAdmin.

    2.Разархивируйте загруженный файл. Архив извлекает содержимое в папку под названием PhpMyAdmin-x.x.x, где x представляет номер версии.

    3.Переименуйте папку в phpMyAdmin, и переместите её в C:inetpubwwwrootphpmyadmin.

    4.Создайте новую подпапку config в C:inetpubwwwrootphpmyadmin.

    5.Откройте браузер, наберите http://localhost/phpmyadmin/setup/index.php в адресной строке и нажмите Enter. Игнорируйте любые предупреждения о том, что соединение не является безопасным. Это нужно только при установке phpMyAdmin на рабочий сервер в Интернете.

    6.Нажмите кнопку New Server в разделе Servers. Откроется форма уже заполненная необходимой информацией. Проверьте следующие настройки:

    Server hostname: localhost

    Server port: Оставьте пустым

    Server socket: Оставьте пустым

    Connection type: tcp

    Authentication type: config

    User for config auth: root

    Password for config auth: Введите ваш MySQL root пароль.

    7.Нажмите кнопку Save. На следующем экране, скорее всего, будет предупреждение, что использование типа аутентификации config не желательно для рабочих хостов. Это не имеет значения для локальной среды тестирования. Однако, если другие пользователи имеют доступ к компьютеру, и вы хотите чтобы они проходили авторизацию в PHPMyAdmin, нажмите ссылку Edit в разделе Servers, чтобы вернуться к установке, и выберите http в качестве типа аутентификации.

    Вы также можете увидеть предупреждение, что вы не настроили базу данных PhpMyAdmin. Вы можете установить базу позже, если захотите использовать расширенные возможности PhpMyAdmin.

    8.Прокрутите окно вниз к разделу Configuration File внизу страницы и нажмите Save

    9.Откройте папку config в проводнике Windows. В папке должен появиться новый файл config.inc.php. Переместите файл в главную папку phpmyadmin.

    10.Удалите папку config.

    11.Введите http://localhost/phpmyadmin/ в адресную строку браузера и нажмите Enter, чтобы загрузить PhpMyAdmin и убедиться, что он установлен правильно.

    Поздравляем! Теперь у вас есть рабочая среда разработки PHP на вашем компьютере.

    [Решено!] Ошибка: Call to undefined function: curl_init() или нерабочий cURL

    cURL — это свободная, кроссплатформенная служебная программа командной строки для копирования файлов по различным протоколам с синтаксисом URL.

    Если Ваш парсер или модуль который Вы установили не работает из за cURL

    Выводится ошибка «Fatal error: Call to undefined function: curl_init()»

    Это означает что у Вас не установлены библиотеки cURL

    Решения

    Файл php.ini

    Раскоментирать строку

    из

    ;extension=php_curl.dll

    на

    extension=php_curl.dll

    — Перезапускаем PHP

    Для Debian

    Устанавливаем библиотеку cURL

    apt-get install php5-curl

    — Нажимаем «Y» и ждем завершения установки.

    — Перезапускаем Apache

    /etc/init.d/apache2 restart

    Для Ubuntu

    sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

    — Перезапускаем Apache

    sudo /etc/init.d/apache2 restart

    Установка XAMPP на Windows

    XAMPP не единственный пакет «всё-в-одном». Два других пакета – WampServer и EasyPHP. Пакеты также устанавливают всё программное обеспечение, необходимое для разработки на PHP. Основное различие заключается в интерфейсе, который они предоставляют для управления веб-сервером и базой данных.

    Ниже описано, как установить пакет XAMPP:

    1.Скачайте XAMPP для Windows. Выберите базовый пакет (Basic pakage) самораспаковывающийся RAR архив.

    2.Закройте все приложения на вашем компьютере, и дважды щелкните EXE-файл, который вы скачали. В диалоговом окно нужно будет ввести путь для установки XAMPP. По умолчанию C:. При выборе пути по умолчанию, все необходимые файлы извлекаются в новую папку с именем C:xampp.

    3.В конце процесса извлечения, инсталлятор откроет окно командной строки Windows с серией вопросов о параметрах установки. Введите по усмотрению y или n, и нажмите Enter.

    4.После установки параметров, вы должны увидеть сообщение о том, что XAMPP готов. Введите 1 и нажмите Enter, чтобы запустить панель управления XAMPP (см. Рис 1).

    Рис. 1 Панель управления XAMPP

    5.Введите x и нажмите Enter, чтобы закрыть окно командной строки.

    6.Запустите Apache и MySQL, нажав на две верхние кнопки Start в панели управления XAMPP. FileZilla, Mercury и Tomcat не требуются для среды тестирования PHP и не рассматриваются в данной книге. Если серверы запускаются без ошибок, на панели управления должно появиться Running рядом с Apache и MySQL, и надписи на кнопках Start должены измениться на Stop, как показано на Рис. 2.

    Рис 2. Панель управления подтверждает XAMPP, что сервер работает

    Устранение неисправностей

    Если Apache или MySQL не запустится, проверьте следующее:

    Если Apache выдает ошибку при запуске, дважды щелкните C:xamppapachelogserror.log в Проводнике Windows и прокрутите экран к нижней части файла для чтения сообщений об ошибках.

    Убедитесь, что другая программа не использет порт 80. Антивирусные программы должны показывать все программы, установившие связь на 80 порту. Этот порт используется для HTTP (Hypertext Transfer Protocol), поэтому программы, как правило, являются веб-программами.

    Журнал ошибок MySQL находится в папке C:xamppmysqldata, в файле, с тем же именем, что и компьютер, и расширением файла .err. Дважды щелкните по пиктограмме файла и выберите программу Notepad, когда будет предложено выбрать программу для открытия файла.

    Если журнал ошибок не выявил причину, попробуйте временно отключить все антивирусные программы. Если проблема устранена, настройте параметры антивирусных программ перед их повторным запуском.

    Кнопка Explore в панели управления XAMPP позволяет быстро открывать папку xampp. КнопкаPort-Check позволяет определить, что запущено на каждом порту, чтобы можно было определить конфликт на 80 порту.

    Настройка XAMPP

    После установки XAMPP, вам необходимо задать пароль учетной записи главного администратора к базе данных MySQL. Это можно сделать следующим образом:

    1.Убедитесь, что Apache и MySQL работают. Запустите браузера и введите http://localhost/ в адресную строку и нажмите Enter.

    2.Вы должны увидеть веб-страницу, которая предоставляет выбор языка. Выберите язык, который хотите использовать. Запустится окно приветствия XAMPP, как показано на Рис. 3.

    Рис. 3. Окно приветствия XAMPP

    3.Нажмите кнопку Security в меню на левой части экрана. Откроется новое окно или вкладка браузера с отчетом по настройке безопасности. Прокрутите окно ниже отчета, и перейдите по следующей ссылке: http://localhost/security/xamppsecurity.php.

    Появится экран, показанный на рисунке 4, предлагающий создать пароль для суперпользователя MySQL, root. Даже если вы единственный человек, кто пользуется компьютером, хорошим тоном является защита базы данных MySQL паролем.

    4.Введите свой пароль в обоих полях. Он может содержать специальные символы, но не должен содержать пробелов.

    Рис. 4. Установка пароля root MySQL в XAMPP

    5.Сразу под полями ввода пароля находится пара переключателей, которые определяют, как PhpMyAdmin подключается к MySQL в качестве суперпользователя root. По умолчанию используются cookie. Это нормально для локальной среды разработки.

    6.Вас также спросят, следует ли установить случайный пароль для пользователя PhpMyAdmin pma. PhpMyAdmin использует это для продвинутых функций, что выходит за рамки данной книги, но по умолчанию подойдет Yes.

    7.Если вы беспокоитесь, что можете забыть пароль суперпользователя root, выберите флажок, чтобы сохранить его в текстовый файл C:xamppsecuritymysqlrootpassword.txt. Насколько это представляет риск безопасности зависит от того, кто еще имеет доступ к вашему компьютеру. Ремонт компьютеров оперативно, качественно, вам не придется никуда ехать, мы приедем к вам сами.

    8.Нажмите кнопку Password changing после того, как сделаете свой выбор.

    Автоматический запуск Apache и MySQL с XAMPP

    Веб-сервер Apache должен быть запущен при тестировании PHP сценариев. Сервер MySQL также должен работать, если сценарий обращается к базе данных. Распространенной ошибкой является то, что сервер часто забывают включить. Сервера Apache и MySQL потребляют мало ресурсов компьютера, поэтому многие разработчики оставляют их работать все время. Чтобы запускать их автоматически как службы Windows при каждом запуске компьютера, установите флажки Svcрядом с Apache и MySQL в панели управления XAMPP. С другой стороны, панель управления XAMPP управления позволяет легко запускать сервера по мере необходимости. Серверам требуется всего несколько секунд для запуска и остановки, так что вам решить, оставить их работать или запускать только при необходимости.