За год работы в сфере Web технологий, мне не раз приходилось настраивать своё рабочее окружение. Для новичков не так то просто найти хороший гайд по настройке рабочего окружения.
В этом топике я хочу собрать всё полезное, что возможно пригодится новичкам и читателям.
Всё это я поднимать на Ubuntu 13.04. Предполагается что вы уже скачали её с официального сайт, и установили.
Итак, начнем. Я зайду под root'ом. Если у вас нет такого желания, просто дописывайте во все команды sudo и вводите пароль от системы.
Для начала установим NGINX. Добавим репозиторий проекта NGINX
nano /etc/apt/sources.list
и добавим туда строки и не забываем сохранять
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise 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
aptitude 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.
Автор: amstr1k