Последовательность установки LEMP на Centos6

Чтобы не забыть. :-)

После установки минимальной Centos6 через netinstall  делаем 

yum update 

yum groupinstall base , затем создаем /etc/yum.repos.d/nginx.repo , содержащий

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

yum install nginx   , включение автозапуска в centos - chkconfig nginx on(off)

=================

yum search php-fpm - поиск пакета

yum info php-fpm - вывод информации о пакете

yum list - все доступные пакеты ;  yum list installed - установленные пакеты

yum provides */filename - какому пакету принадлежит файл filename

=================

yum install mysql-server 

chkconfig mysqld on

service mysqld start , это выдаст:

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h vm3.crimean.pp.ua password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

Выполняем mysql_secure_installation , если пароль root еще не установлен, но на первый вопрос о вводе пароля ничего вводить не надо. Этот скрипт предложит установить пароль рута для mysql, удалить test базу данных и пользователя test.

yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

yum install php-pecl-apc - php кэшер 

в /etc/php.ini установить

cgi.fix_pathinfo=0     см http://wiki.nginx.org/Pitfalls и

date.timezone = Europe/Simferopol   см  http://www.php.net/manual/en/timezones.europe.php

временная зона должна соответствовать /etc/sysconfig/clock

chkconfig php-fpm on

/etc/init.d/php-fpm start   или service php-fpm start

проверить запустилось или нет

netstat -atupn

Редактируем конфиг nginx :

В nginx.conf:

выставляем worker_connections в зависимости от наличия RAM , worker_process рекомендуется выставлять равным кол-ву процессоров, keepalive_timeout меньше, например 15 ( рекомендуют 2 )

файл default.conf:

server {

listen 80;
server_name _;

#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

# error_page 404 /404.html;
# location = /404.html {
# root /usr/share/nginx/html;
# }

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
}

Создаем конфиг виртуального хоста 

example.com.conf :

server {

listen 80;
server_name example.com.conf;
root /usr/share/nginx/html/example.com.conf;
# if ($http_host != "www.example.com.conf") {
# rewrite ^ http://www.example.com.conf$request_uri permanent;
# }
index index.php index.html;

error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}

location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ {
deny all;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Создаем файл 404.html содержащий сообщение об ошибке 404 и кладем его в /usr/share/nginx/html

Далее устанавливаем phpmyadmin, предварительно добавив репозиторий rpmforge (см http://centos.name/?page/additionalresources/RPMForge и http://centos.name/?page/tipsandtricks/phpmyadmin

скачиваем 
x86_64 http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6....

импортируем ключ
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

Проверяем что пакет скачался без ошибок
rpm -K rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Устанавливаем

rpm -i rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

После этого   yum install phpmyadmin

У меня ( гугл сказал что не только у меня ) потянулась установка php-mcrypt, при этом в /etc/php.d/mcrypt.ini почему-то стоит некорректное значение extension=module.so , с которым запуск(перезапуск) php-fpm дает ошибку, т.к. такого файла нет. Для устранения нужно исправить на extension=mcrypt.so

Создаем phpmyadmin.conf с конфигурацией разрешающей доступ по IP адресу вида aaa.bbb.ccc.ddd/phpmyadmin :

server {
listen 80;
server_name aaa.bbb.ccc.ddd;
index index.php index.html;

# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}

location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
    try_files $uri =404;
    root /usr/share/;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    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;
# }
}

Необходимо настроить метод доступа к phpmyadmin, см документацию.

см http://www.howtoforge.com/running-phpmyadmin-on-nginx-lemp-on-debian-squ...

http://www.howtoforge.com/installing-nginx-with-php5-and-mysql-support-o...

http://wiki.nginx.org/Pitfalls#Root_inside_Location_Block

Отредактировать файл /etc/my.cnf ,взяв за основу /usr/share/mysql/my-medium.cnf или другой оттуда же  (читать комментарии в файле о количестве памяти )

Отредактировать /etc/php.ini

Настроить работу по https, 

 
 
 
 

Отправить комментарий

CAPTCHA
Чтобы убедиться в том что Вы не робот, ответьте, пожалуйста, на вопрос
Fill in the blank