Сейчас 127 заметки.

Установка и настройка веб-сервера LEMP на CentOS

Материал из ЗАметки

Это руководство предоставляет пошаговую инструкцию по установке полнофункционального стека LEMP на CentOS. Вы получите инструкции по установке Nginx, MySQL и PHP.

Инструкции которые содержатся в этом руководстве протестированы на платформе http://Clodo.ru

Это руководство предполагает, что вы вошли в систему как суперпользователь root.

Перед началом установки вам нужно обновить вашу систему.

yum update


Установка Nginx:

yum update
yum install nginx

Для того, чтобы запустить сервер выполните команду:

/etc/init.d/nginx start

Чтобы добавить nginx в список сервисов, стартующих при запуске оперциаонной системы, выполните следующий цикл команд:

chkconfig --add nginx
chkconfig nginx on


Настройка виртуальных хостов (virtual hosts) в Nginx

По-умолчанию, при установке Nginx, основной файл конфигурации расположен по следующему пути:

/etc/nginx/conf/nginx.conf

Есть несколько вариантов настройки Nginx. Независимо от выбранного подхода к конфигурации, все настройки, касающиеся виртуальных хостов, собраны в блоке конфигурации сервера, заключенных в блок http в файле nginx.conf.

Пример настройки сервера:

server {
listen 80;
server_name www.yoursite.com yoursite.com;
access_log /srv/http/yoursite.com/logs/access.log;
error_log /srv/http/yoursite.com/logs/error.log;

location / {
root /srv/http/yoursite.com/public;
index index.html index.htm;
}
}

Создайте директории, указанные в конфигурации сервера:

mkdir -p /srv/http/example.com/public
mkdir -p /srv/http/example.com/logs

Добавлять множество блоков server в секцию http может быть затруднительным для чтения и правки. Вы можете использовать систему настройки, как в Debian-based системах. Создайте папки sites-available и sites-enabled и добавьте строку добавления этих папок в nginx.conf:

http {
# [...]

include /etc/nginx/sites-enabled/*;

# [...]
}

В директории sites-available нужно сохранить файлы с описанием параметров виртуальных хостов, и создать символическую ссылку на файл в папке sites-enabled.

Чтобы изменения вступили в силу, вам нужно перезапустить nginx. Перед перезапуском, рекомендуется выполнить проверку конфигурации. Это можно сделать командой “nginx -t”. Перезапустить сервер можно командой:

/etc/init.d/nginx restart


Установка PHP и FastCGI

Если ваша web-страница содержит PHP-код, вам нужно установить SpawnCGI для обработки PHP. Следующая последовательность команд выполнит установку пакетов, необходимых для обработки PHP-кода.

yum install spawn-fcgi

Создайте скрипт для автозапуска php_cgi при запуске системы:

vi /etc/init.d/php_cgi
#!/bin/sh

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

[ "$NETWORKING" = "no" ] && exit 0

spawnfcgi="/usr/bin/spawn-fcgi"
php_cgi="/usr/bin/php-cgi"
prog=$(basename $php_cgi)
server_ip=127.0.0.1
server_port=9000
server_user=nginx
server_group=nginx
server_childs=5
pidfile="/var/run/php_cgi.pid"

[ -f /etc/sysconfig/phpfastcgi ] && . /etc/sysconfig/phpfastcgi

start() {
[ -x $php_cgi ] || exit 1
[ -x $spawnfcgi ] || exit 2
echo -n $"Starting $prog: "
daemon $spawnfcgi -a $ -p $ -u $ -g $ -P $ -C $ -f $
retval=$?
echo
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc -p $ $prog -QUIT
retval=$?
echo
[ -f $ ] && /bin/rm -f $
return $retval
}

restart(){
stop
sleep 2
start
}

rh_status(){
status -p $ $prog
}

case "$1" in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
rh_status;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 3
esac

Сделайте скрипт исполняемым:

chmod a+x /etc/init.d/php_cgi

Запустите php_cgi:

service php_cgi start

Проверьте его работоспособность:

netstat -tlnp | grep :9000

Теперь отредактируйте конфигурационный файл nginx и запишите в нем настройка для php_cgi:

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

Проверьте правильность настройки nginx командой:

nginx -t

пример успешного результата:

nginx: the configuration file /etc/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/conf/nginx.conf test is successful

Запустите nginx:

service nginx start<pre>


'''Установка MySQL'''

СУБД MySQL является популярнейшей СУБД с открытым кодом.

Установить MYSQL можно командой:

<pre>yum install mysql-server php-mysql

Запуск демона MYSQL производится командой:

/etc/rc.d/init.d/mysqld start

Добавить MySQL в список демонов для автоматического запуска при загрузке системы.

Для того, чтобы выполнить базовую настройка MySQL выполните команду:

mysql_secure_installation

Чтобы подключиться к MySQL от пользователя root выполните команду:

mysql -u root -p

Введите пароль от пользователя root. Теперь вы можете создать новых пользователей для работы с MySQL. Пример создания новый БД и пользователя для работы с ней.

CREATE DATABASE userdatabase;
CREATE USER 'user' IDENTIFIED BY 'i4j89UJd';
GRANT ALL PRIVILEGES ON userdatabse.* TO 'user';
exit;

Теперь можно передать данные пользователя user приложению, для использования БД userdatabase. Также, для того, чтобы PHP функции могли обратиться к MySQL, перезапустите службу php_cgi:

/etc/init.d/php_cgi restart

Настройка LEMP закончена.