Ubuntu 10.04.3 LTS Nginx php-fpm mysql — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
устанавливаем bash-completion и попутно текстовый редактор Vim: | устанавливаем bash-completion и попутно текстовый редактор Vim: | ||
− | + | apt-get install bash-completion vim -y | |
− | apt-get install bash-completion vim -y | + | |
− | |||
В отличии от CentOS/RHEl, в debian/ubuntu недостаточно поставить пакет bash-completion для того чтобы получить желаемый функционал, нужно его ещё и в bash.bashrc раскомментировать. Открываем /etc/bash.bashrc | В отличии от CentOS/RHEl, в debian/ubuntu недостаточно поставить пакет bash-completion для того чтобы получить желаемый функционал, нужно его ещё и в bash.bashrc раскомментировать. Открываем /etc/bash.bashrc | ||
− | + | ||
− | vim /etc/bash.bashrc | + | vim /etc/bash.bashrc |
− | + | ||
и раскомментируем блок: | и раскомментируем блок: | ||
− | < | + | <pre> |
# enable bash completion in interactive shells | # enable bash completion in interactive shells | ||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then | if [ -f /etc/bash_completion ] && ! shopt -oq posix; then | ||
. /etc/bash_completion | . /etc/bash_completion | ||
fi | fi | ||
− | </ | + | </pre> |
=== Устанавливаем nginx === | === Устанавливаем nginx === | ||
Переходим к установке nginx, тут всё просто: | Переходим к установке nginx, тут всё просто: | ||
− | + | ||
− | apt-get update | + | apt-get update |
− | apt-get install nginx | + | apt-get install nginx |
− | + | ||
Запускаем nginx | Запускаем nginx | ||
− | + | ||
− | /etc/init.d/nginx start | + | /etc/init.d/nginx start |
− | + | ||
Проверяем, слушает ли наш новый nginx порт 80: | Проверяем, слушает ли наш новый nginx порт 80: | ||
− | + | ||
− | netstat -tnlp | grep nginx | + | netstat -tnlp | grep nginx |
− | tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1205/nginx | + | tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1205/nginx |
− | + | ||
Всё нормально, можем открыть в браузере и порадоваться: | Всё нормально, можем открыть в браузере и порадоваться: | ||
Строка 47: | Строка 46: | ||
Для сборки нам понадобятся пакеты: | Для сборки нам понадобятся пакеты: | ||
− | + | ||
− | apt-get install libxml2-dev libssl-dev bzip2 libbz2-dev libcurl4-openssl-dev libjpeg62-dev libpng12-dev \ | + | apt-get install libxml2-dev libssl-dev bzip2 libbz2-dev libcurl4-openssl-dev libjpeg62-dev libpng12-dev \ |
− | libfreetype6-dev libt1-dev libc-client2007e-dev libmcrypt-dev libmysqlclient-dev libidn11-dev libltdl-dev \ | + | libfreetype6-dev libt1-dev libc-client2007e-dev libmcrypt-dev libmysqlclient-dev libidn11-dev libltdl-dev \ |
− | checkinstall automake autoconf libicu-dev | + | checkinstall automake autoconf libicu-dev |
− | + | ||
Скачиваем тарбол с исходниками php: | Скачиваем тарбол с исходниками php: | ||
− | + | ||
− | wget http://ru.php.net/get/php-5.3.8.tar.gz/from/this/mirror -O php-5.3.8.tar.gz | + | wget http://ru.php.net/get/php-5.3.8.tar.gz/from/this/mirror -O php-5.3.8.tar.gz |
− | + | ||
Распаковываем его и переходим в папку с исходниками php | Распаковываем его и переходим в папку с исходниками php | ||
− | + | ||
− | tar zxf php-5.3.8.tar.gz | + | tar zxf php-5.3.8.tar.gz |
− | cd php-5.3.8/ | + | cd php-5.3.8/ |
− | + | ||
Начинаем сборку из исходников: | Начинаем сборку из исходников: | ||
− | < | + | <pre> |
./configure --enable-fpm --enable-soap --with-mcrypt --enable-mbstring --with-openssl --with-mysql --with-mysql-sock \ | ./configure --enable-fpm --enable-soap --with-mcrypt --enable-mbstring --with-openssl --with-mysql --with-mysql-sock \ | ||
--with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --with-sqlite=shared --with-pdo-mysql --with-libxml-dir=/usr/lib \ | --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --with-sqlite=shared --with-pdo-mysql --with-libxml-dir=/usr/lib \ | ||
Строка 72: | Строка 71: | ||
--enable-ftp --with-iconv --with-gettext --enable-gd-native-ttf --with-t1lib --with-freetype-dir --with-kerberos \ | --enable-ftp --with-iconv --with-gettext --enable-gd-native-ttf --with-t1lib --with-freetype-dir --with-kerberos \ | ||
--prefix=/usr/local/php --with-fpm-user=www-data --with-fpm-group=www-data | --prefix=/usr/local/php --with-fpm-user=www-data --with-fpm-group=www-data | ||
− | </ | + | </pre> |
Компилируем php: | Компилируем php: | ||
− | + | make | |
− | make | ||
− | |||
После того как компиляция успешно завершится с сообщением ''Build complete'' переходим к сборке и установке .deb пакета: | После того как компиляция успешно завершится с сообщением ''Build complete'' переходим к сборке и установке .deb пакета: | ||
− | + | checkinstall -D | |
− | checkinstall -D | ||
− | |||
В итоге php-fpm установлен и у нас есть готовый пакет /root/php-5.3.8/php-fpm_5.3.8-1_i386.deb для тех кто не хочет заморачиваться со сборкой или ресурсов VPS для сборки недостаточно, в конце статьи я дам ссылку на собраный пакет. | В итоге php-fpm установлен и у нас есть готовый пакет /root/php-5.3.8/php-fpm_5.3.8-1_i386.deb для тех кто не хочет заморачиваться со сборкой или ресурсов VPS для сборки недостаточно, в конце статьи я дам ссылку на собраный пакет. | ||
Строка 89: | Строка 84: | ||
Создадим init-скрипт и добавим php-fpm в автозапуск: | Создадим init-скрипт и добавим php-fpm в автозапуск: | ||
− | < | + | <pre> |
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm | cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm | ||
chmod +x /etc/init.d/php-fpm | chmod +x /etc/init.d/php-fpm | ||
Строка 99: | Строка 94: | ||
sed -i "s/short_open_tag/\;short_open_tag/" /usr/local/php/lib/php.ini | sed -i "s/short_open_tag/\;short_open_tag/" /usr/local/php/lib/php.ini | ||
/etc/init.d/php-fpm start | /etc/init.d/php-fpm start | ||
− | </ | + | </pre> |
Теперь займемся настройкой nginx. Приведите файл /etc/nginx/sites-enabled/default к виду: | Теперь займемся настройкой nginx. Приведите файл /etc/nginx/sites-enabled/default к виду: | ||
− | < | + | <pre> |
server { | server { | ||
listen 80 default; | listen 80 default; | ||
Строка 126: | Строка 121: | ||
} | } | ||
− | </ | + | </pre> |
Для проверки создаем простейший phpinfo: | Для проверки создаем простейший phpinfo: | ||
− | < | + | <pre> |
echo "<? phpinfo(); ?>" > /var/www/index.php | echo "<? phpinfo(); ?>" > /var/www/index.php | ||
− | </ | + | </pre> |
перезапускаем nginx | перезапускаем nginx | ||
− | + | ||
− | /etc/init.d/nginx restart | + | /etc/init.d/nginx restart |
− | + | ||
Готово! | Готово! | ||
[[Изображение:Phpinfo-nginx-php-fpm.png]] | [[Изображение:Phpinfo-nginx-php-fpm.png]] |
Текущая версия на 00:35, 7 декабря 2015
Включаем bash-completion
bash-completion включает расширенное автодополнение команды по нажатию клавиши [Tab]
устанавливаем bash-completion и попутно текстовый редактор Vim:
apt-get install bash-completion vim -y
В отличии от CentOS/RHEl, в debian/ubuntu недостаточно поставить пакет bash-completion для того чтобы получить желаемый функционал, нужно его ещё и в bash.bashrc раскомментировать. Открываем /etc/bash.bashrc
vim /etc/bash.bashrc
и раскомментируем блок:
# enable bash completion in interactive shells if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi
Устанавливаем nginx
Переходим к установке nginx, тут всё просто:
apt-get update apt-get install nginx
Запускаем nginx
/etc/init.d/nginx start
Проверяем, слушает ли наш новый nginx порт 80:
netstat -tnlp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1205/nginx
Всё нормально, можем открыть в браузере и порадоваться:
Установка php-fpm
Переходим к установки php-fpm. Ставить будем свежайшую версию, соберем собственный deb-пакет из официальных исходников.
Для сборки нам понадобятся пакеты:
apt-get install libxml2-dev libssl-dev bzip2 libbz2-dev libcurl4-openssl-dev libjpeg62-dev libpng12-dev \ libfreetype6-dev libt1-dev libc-client2007e-dev libmcrypt-dev libmysqlclient-dev libidn11-dev libltdl-dev \ checkinstall automake autoconf libicu-dev
Скачиваем тарбол с исходниками php:
wget http://ru.php.net/get/php-5.3.8.tar.gz/from/this/mirror -O php-5.3.8.tar.gz
Распаковываем его и переходим в папку с исходниками php
tar zxf php-5.3.8.tar.gz cd php-5.3.8/
Начинаем сборку из исходников:
./configure --enable-fpm --enable-soap --with-mcrypt --enable-mbstring --with-openssl --with-mysql --with-mysql-sock \ --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --with-sqlite=shared --with-pdo-mysql --with-libxml-dir=/usr/lib \ --with-mysqli --with-curl --enable-zip --with-bz2 --with-imap --with-imap-ssl --enable-sockets --with-zlib --enable-exif \ --enable-ftp --with-iconv --with-gettext --enable-gd-native-ttf --with-t1lib --with-freetype-dir --with-kerberos \ --prefix=/usr/local/php --with-fpm-user=www-data --with-fpm-group=www-data
Компилируем php:
make
После того как компиляция успешно завершится с сообщением Build complete переходим к сборке и установке .deb пакета:
checkinstall -D
В итоге php-fpm установлен и у нас есть готовый пакет /root/php-5.3.8/php-fpm_5.3.8-1_i386.deb для тех кто не хочет заморачиваться со сборкой или ресурсов VPS для сборки недостаточно, в конце статьи я дам ссылку на собраный пакет.
Создадим init-скрипт и добавим php-fpm в автозапуск:
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm update-rc.d php-fpm defaults cp ./sapi/fpm/php-fpm.conf /usr/local/php/etc/ sed -i "s/\;pm./pm./" /usr/local/php/etc/php-fpm.conf sed -i "s/\;pid/pid/" /usr/local/php/etc/php-fpm.conf cp ./php.ini-production /usr/local/php/lib/php.ini sed -i "s/short_open_tag/\;short_open_tag/" /usr/local/php/lib/php.ini /etc/init.d/php-fpm start
Теперь займемся настройкой nginx. Приведите файл /etc/nginx/sites-enabled/default к виду:
server { listen 80 default; server_name localhost; access_log /var/log/nginx/localhost.access.log; location / { root /var/www/; index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
Для проверки создаем простейший phpinfo:
echo "<? phpinfo(); ?>" > /var/www/index.php
перезапускаем nginx
/etc/init.d/nginx restart