Установка Mariadb
Добавление репозитория и получение ключа:
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/5.5/ubuntu trusty main'
Установка:
sudo apt-get update sudo apt-get install mariadb-server mysql_secure_installation sudo service mysql restart
Установка php5-fpm и nginx
sudo apt-get install php5-cli php5-common php5-mysql php5-gd php5-fpm php5-cgi php-pear php5-mcrypt php5-curl php5-json sudo apt-get install nginx
Настройка PHP-FPM
sudo service nginx stop sudo service php5-fpm stop
Прежде всего, следует открыть конфигурационный файл «/etc/php5/fpm/php.ini» для редактирования любимым редактором текста:
sudo nano /etc/php5/fpm/php.ini
после чего, найти строчку содержащую «cgi.fix_pathinfo», которая по-умолчанию обычно закомментирована
;cgi.fix_pathinfo = 1
и привести её к виду
cgi.fix_pathinfo = 0
Попутно подправить следующие две строчки, исходя из местоположения и пожелания к максимальному размеру загружаемого файла:
date.timezone = Europe/Moscow upload_max_filesize =32M
В Ubuntu конфигурация PHP-FPM хранится в двух файлах:
- глобальные настройки (/etc/php5/fpm/php-fpm.conf)
- настройки пулов (/etc/php5/fpm/pool.d/*.conf).
Глобальные настройки обычно трогать не надо, а править только настройки пулов. По умолчанию в Ubuntu есть единственный пул «www» (файл: /etc/php5/fpm/pool.d/www.conf). В случае разных требований сайтов к PHP-окружению может потребоваться создание дополнительных пулов, но это тема для другой статьи. Правим:
sudo nano /etc/php5/fpm/pool.d/www.conf
Подправить (проверить, что они раскомментированы) нужно следующие строчки:
listen = /var/run/php5-fpm.sock listen.mode = 0660 pm.max_requests = 500 security.limit_extensions = .php .php3 .php4 .php5
Стартуем сервис php5-fpm:
sudo service php5-fpm start
Можно убедится в том, что права доступа к сокету установлены верно:
ls -la /var/run/php5-fpm.sock
Права доступа должны быть «srw-rw—-», владелец «www-data» (группа «www-data»), например,
srw-rw---- 1 www-data www-data 0 сент. 12 22:32 /var/run/php5-fpm.sock
Настройка nginx
Теперь правим конфигурационный файл nginx:
sudo nano /etc/nginx/nginx.conf
Приводя его к виду:
user www-data; worker_processes 2; pid /run/nginx.pid; events { use epoll; worker_connections 1024; multi_accept on; } http { # Используем sendfile, но осторожно, если надо отдавать большие файлы, # то sendfile случается вредит sendfile on; # Ограничиваем размер сегмента отправляемой за одну блокируемую отдачу sendfile_max_chunk 128k; # Буфер отдачи который используется для обрабатываемых данных postpone_output 1460; # Размер хеша для доменных имен. server_names_hash_bucket_size 64; # Размер данных принимаемых post запросом client_max_body_size 15m; tcp_nopush on; tcp_nodelay on; keepalive_timeout 30; # Number of requests a client can make over the keep-alive connection. keepalive_requests 1000; # Allow the server to close the connection after a client stops responding. reset_timedout_connection on; # Send the client a "request timed out" if the body is not loaded by this time. client_body_timeout 10; # If the client stops reading data, free up the stale client connection after this much time. send_timeout 2; types_hash_max_size 2048; # Не говорим врагу версию nginx server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; # Настройки логирования access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log notice; # Настройки компрессии gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript # Caches information about open FDs, freqently accessed files. open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #}
Естественно настройки можно поменять, здесь приводятся те, котрые обычно используем мы.
Стартуем сервис nginx:
sudo service nginx start
И проверяем любимым браузером. Должно выдать:
Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for using nginx.