Pull to refresh

Настраиваем рабочее окружение для Backend разработки на PHP

Website development
Sandbox
Recovery mode
За год работы в сфере Web технологий, мне не раз приходилось настраивать своё рабочее окружение. Для новичков не так то просто найти хороший гайд по настройке рабочего окружения.

В этом топике я хочу собрать всё полезное, что возможно пригодится новичкам и хабраюзерам.

Всё это я буду поднимать на Ubuntu 13.04. Предполагается что вы уже скачали её с официального сайт, и установили.

Итак, начнем. Я зайду под root'ом. Если у вас нет такого желания, просто дописывайте во все команды sudo и вводите пароль от системы.

Для начала установим NGINX. Добавим репозиторий проекта NGINX
nano /etc/apt/sources.list

и добавим туда строки и не забываем сохранять
deb http://nginx.org/packages/ubuntu/ raring nginx
deb-src http://nginx.org/packages/ubuntu/ raring nginx

Скачиваем GPG ключ
wget http://nginx.org/keys/nginx_signing.key

Устанавливаем его
apt-key add nginx_signing.key

Обновляем список пакетов
apt-get update

И наконец устанавливаем NGINX
apt-get install nginx

Для проверки заходим в браузер, в адресной строке пишем localhost и если вы увидели страничку Welcome to nginx! значит вы на верном пути.

И так продолжаем. Устанавливаем PHP-FPM
apt-get install php5-cli php5-common php5-mysql php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt -y

Теперь нам нужно устранить уязвимости в PHP
nano /etc/php5/fpm/php.ini

Находим там строку
;cgi.fix_pathinfo = 1

И приводим её к виду
cgi.fix_pathinfo = 0

Делаем рестарт PHP-FPM
service php5-fpm restart

Изменяем настройки виртуального хоста
nano /etc/nginx/conf.d/default.conf

Удаляем все старые настройки и вставляем это
server {
        listen   80;     

        root /usr/share/nginx/html;
        index index.php index.html index.htm;

        server_name localhost;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                
        }

}

Далее нам нужно проверить установился ли php-fpm. Для этого делаем следующее.
nano /usr/share/nginx/html/index.php

И пишем в него
<?php
        phpinfo();
?>

Удаляем index.html
rm /usr/share/nginx/html/index.html

В браузере открываем localhost и если вы видите страничку PHP Version значит вы на верном пути

Далее устанавливаем MySQL, вам предложат установить пароль на пользователя root. Установите и запомните его.
apt-get install mysql-server mysql-client mysql-common

Установим memcache. И после его установки перезапустим PHP(service php5-fpm restart)
apt-get install memcached php5-memcached

Теперь на страничке phpinfo нужно найти пункт memcache. Если он есть, значит вы всё еще с нами.

Управление базой из командной строки не всегда удобно. Поэтому мы установим phpMyAdmin
apt-get install phpmyadmin

У вас спросят кокой сервер вы ходите использовать, оставляем это поле пустым. Далее вам будет предложено настроить базу для работы сервиса. Сначала вводим пароль для root пользователя, далее для базы данных phpMyAdmin.

Открываем настройку виртуального хоста и вставляем в секцию server{ } следущее
        location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }

В конечном итоге у вас должен получится конфиг вида
server {
        listen   80;     

        root /usr/share/nginx/html;
        index index.php index.html index.htm;

        server_name localhost;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

	location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }
}


Устанавливаем xdebug для отладки наших приложений.
apt-get install php5-xdebug

После чего перезапускаем php и ищем на localhost пункт xdebug

Для разработки я использую PHP IDE PhpStorm. Скачать её можно на официальном сайте www.jetbrains.com/phpstorm. Скачиваем и распаковываем в удобную для вас папку. Но для начала нам нужно установить Oracle Java 7.
Добавляем нужный репозиторий и обновляемся
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update

Затем устанавливаем JDK (Java Development Kit)
sudo apt-get install oracle-jdk7-installer

После установки заходим в папку PhpStorm/bin и запускаем phpstorm.sh, после чего настраиваем IDE.
Теперь настраиваем IDE для работы с xdebug.
Открываем настройки идём в PHP, там выбираем:
PHP Languege level: 5.4
Добавляем интерпритатор: Name php5.4, PHP Home /usr/bin/, Debugger: Xdebug
и в Include path добавляем то что в ковычках: "/usr/share/php", ".", "/usr/share/pear"
Далее PHP->Servers нажимаем на + и добавляем сервер.
Name: localhost
Host: localhost
Port: 80
Debagger: Xdebug
И жмём OK.
Далее переходим в PHP->Debug. Находим тут секцию Xdebug и в ней Debug port пишем 9001
Теперь в PHP->Debug->DBGp Proxy и проверяем чтобы порт был 9001 и нажимаем ОК.
Выходи в главное окно и жмём там стрелку вниз и жмём Edit Configurations нажимаем на + и выбираем там PHP Web Aplication. Заполняем настройки:
Name: localhost
Server: выбираем localhost
Browser: Chrome скачанный с google.ru

Теперь нужно настроить php.ini для работы с xdebug
nano /etc/php5/fpm/php.ini

И добавляем в конец файла
zend.ze1_compatibility_mode = off

[xdebug]

xdebug.remote_enable = On
xdebug.max_nesting_level = 500
xdebug.remote_port = 9001


Сохраняем. Перезапускаем nginx, php.

Настраиваем Chrome. Настройки->Внешний вид->Всегда показывать панель закладок. У вас должна появится панель закладок. Идём на сайт www.jetbrains.com/phpstorm/marklets и жмём кнопку Generate в разделе Xdebug, Перетаскиваем на панель Start debugger и Stop debugger.

Заходим в PhpStorm, открываем на индексный файл с phpinfo ставим точку останова на строке phpinfo(); и жмем трубку на панеле. После нажатия, верх трубки должен загорется зеленым. Открываем Chrome, заходим на localhost, жмем закладку «Start debugger», обновляем страницу и на мониторе видим PhpStorm с открытой панелью дебага.

На этом мой «небольшой» гайд подошел к концу. Надеюсь он кому то пригодится, кроме как мне.
Всем спасибо, с уважением amstr1k.
Tags:phpphp-fpmmysqlphpstormidephp-memcachememcachephpmyadminnginxubuntu 13.04
Hubs: Website development
Total votes 36: ↑7 and ↓29 -22
Views8.7K

Comments 17

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now