Как установить nginx на Ubuntu\Debian + Wordpress
В Ubuntu, как и в Debian благодаря всемогущему репозитарию установка множества программ, в том числе серьезных серверных пакетов сводиться к необходимости напечатать одну строчку типа sudo apt-get install …. и подождать пару минут и программа у вас на компьютере.
В принципе, с сервером nginx ситуация точно такая же, и к тому же мейнтейнеры ревниво следят, что-бы версия программы была всегда свежей.
Но, такой подход, многие считают не профессиональным, они же дураки, а другие просто любят компилировать из исходных кодов, в связи с тем, что делать им это приходиться на серверах.
Так как изначально, когда я столкнулся с nginx я устанавливал его из исходных кодов, то я опишу именно этот процесс.
По началу, эта статья задумывалась как небольшое руководство по установке сервера, но судя из новомодных тенденций, многие крупные сайты рунета, да и зарубежные, работают под управлением ngnix, и такой маленький сервер, так прекрастно справляется со своими обязанностями. По этому я решил более детально остановиться на изучении этого сервера и его возможностей.
Из-за практического отсутствия доументации на английском языке, я переведу и опубликую эту статью на английский язык. Как в прочем и многие другие.
Инструкция по установке из исходных кодов
Качаем сервер с сайта его создателя, последнюю версию.
1 2 3 4 | cd ~/user mkdir server cd server wget http://sysoev.ru/nginx/nginx-0.7.59.tar.gz |
Распаковываем архив
1 2 | tar xvf nginx-0.7.59 cd nginx-0.7.59 |
Теперь, если у вас установлено все необходимое по дефолту, начинаем компиляцию, если нет, то ставим необходимое.
1 | sudo aptitude install build-essential |
1 | sudo aptitude install linux-headers-`uname -r` |
Выполняем configure.
1 | ./configure |
Все пройдет нормально, но в конце мы увидим вот такую ошибку
1 2 3 4 | ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option. |
Плюс внимательно всмотритесь в поля помеченные * , скорее всего еще много чего не хватает. Исправляем это командой
1 | sudo aptitude install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev |
Это все необходимые нам библиотеки.
Делаем
1 2 3 4 | make clean ./configure --with-http_ssl_module make make install |
После этих нехитрых действий, сервер установлен в систему.
Если вас не устраивают стандартные пути, то при сборке вы можете указать удобные вам, включив соответсвующие ключи.
1 | --prefix=<путь> |
— задаёт каталог, в котором будут находиться файлы сервера. Этот же каталог будет использоваться для всех относительных путей, задаваемых ./configure (кроме путей к исходным текстам библиотек) и в конфигурационном файле nginx.conf. По умолчанию — каталог /usr/local/nginx.
1 | --sbin-path=<путь> |
— задаёт имя исполняемого файла nginx. Это имя используется только на стадии установки. По умолчанию файл называется prefix/sbin/nginx.
1 | --conf-path=<путь> |
— задаёт имя конфигурационного файла nginx.conf. При желании nginx можно всегда запустить с другим конфигурационным файлом, указав его в параметре командной строки -c <файл>. По умолчанию файл называется prefix/conf/nginx.conf.
1 | --pid-path=<путь> |
— задаёт имя файла nginx.pid, в котором будет хранится номер главного процесса. После установки имя файла можно всегда поменять в конфигурационном файле nginx.conf с помощью директивы pid. По умолчанию имя файла — prefix/logs/nginx.pid.
1 | --error-log-path=<путь> |
— задаёт имя основного файла ошибок, предупреждений и диагностики. После установки имя файла можно всегда поменять в конфигурационном файле nginx.conf с помощью директивы error_log. По умолчанию имя файла — prefix/logs/error.log.
1 | --http-log-path=<путь> |
— задаёт имя основного файла регистрации запросов http сервера. После установки имя файла можно всегда поменять в конфигурационном файле nginx.conf с помощью директивы access_log. По умолчанию имя файла — prefix/logs/access.log.
Как управлять сервером?
Запускается сервер командой.
1 | sudo /usr/local/nginx/sbin/nginx |
проверим его наличие в процессах
1 2 3 4 | ps -ef | grep nginx root 14999 1 0 16:44 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 15000 14999 0 16:44 ? 00:00:00 nginx: worker process booch 15084 29644 0 16:45 pts/0 00:00:00 grep nginx |
Отлично. Теперь нужно открыть браузер и ввести уже знакомое http://localhost/
Если вы увидите приветствие, то все хорошо.
Завершить работу сервера можно, послав master-процессу сигнал QUIT
1 | kill -QUIT <PID> |
Обновление сервера на лету.
Для обновления сервера нужно записать на место старого исполняемого файла новый. Затем нужно послать сигнал USR2 главному процессу — он переименует свой файл с номером процесса в файл с суффиксом .oldbin, например, /usr/local/nginx/logs/nginx.pid.oldbin, после чего запустит новый исполняемый файл, а тот в свою очередь — свои рабочие процессы:
1 | kill -USR2 <PID> |
1 2 3 4 5 6 7 | PID PPID USER %CPU VSZ WCHAN COMMAND 33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sb 33134 33126 nobody 0.0 1368 kqread nginx: worker process (nginx) 33135 33126 nobody 0.0 1380 kqread nginx: worker process (nginx) 36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sb 36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) 36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) |
Для применения новой конфигурации, в случае, если вы например обновили конфигурационный файл, необходимо послать серверу сигнал HUP
1 | kill -HUP <PID> |
QUIT - плавное завершение
TERM, INT – быстрое завершение
HUP – изменение конфигурации, обновление изменившейся временной зоны, запуск новых рабочих процессов с новой конфигурацией, плавное завершение старых рабочих процессов
USR1 – переоткрытие лог-файлов
USR2 – обновление исполняемого файла
WINCH – плавное завершение рабочих процессов
Где его искать?
Выше это уже было указано, но тем не менее и эта инфа не повредит. Так как в своей сборке я не менял стандартных путей, то расположение такое. Заметьте, что при установки с репозитариев, пути будут другие.
/usr/local/nginx/html – папка где лежит Web-страничка с приветствием, которую вы видели при тестировании ngnix, туда же можно положить и ваш сайт. Это будет не совсем правильно, если это ваш сервер.
/usr/local/nginx/conf/nginx.conf – тут лежит главный конфигурационный файл nginx.conf, в него же и следуют записывать все директивы.
Сервер
Если вы решили завести сервер на nginx, причем который смотрит в Сеть. И там крутиться ваш личный сайт или еще чего. То надо подумать о том, что-бы правильно организовать структуру вашего сайта или сайтов и настроить группы и их права доступа, квоты.
Начнем с создания группы www:
1 | sudo groupadd www |
Создаем пользователя www:
1 | sudo useradd www -g www |
Добавляем пользователя www в группу www.
1 | sudo usermod -a -G www www |
Проверяем файл /etc/passwd/ на наличие одинаковых PID
1 2 3 | sudo cat /etc/passwd | grep 1001 motion:x:112:1001::/home/motion:/bin/false www:x:1001:1002::/home/www:/bin/sh |
Измените PID на любой, понравившийся вам, так же не забудьте потом изменить PID в /etc/group
для группы www.
Создайте пароль для пользователя
1 2 3 4 | sudo passwd www Введите новый пароль UNIX: Повторите новый пароль UNIX: passwd: пароль успешно обновлён |
Теперь будем создавать структуру будущего сайта.
Скорее всего это так.
1 | sudo mkdir /home/www/ |
1 | sudo mkdir -p /home/www/linuxspace.org/{log, private, public, backups, archives} |
Получаем готовую платформу для будущего сайта.
Как вы видите, все папки пренадлежат пользователю www.
И для всех папок переназначены права 644, (rw+r+r) и для public 744 (rwx+r+r)
1 2 3 4 5 6 7 | ls -la итого 28 drw-r--r-- 2 www www 4096 2009-06-22 19:35 archives drw-r--r-- 2 www www 4096 2009-06-22 19:36 log -rw-r--r-- 1 www www 5 2009-06-22 19:39 nginx.pid drw-r--r-- 2 www www 4096 2009-06-22 19:36 private drwxr--r-- 5 www www 4096 2009-06-22 19:37 public |
и теперь редактируем файл /usr/local/nginx/conf/nginx.conf
в котором можем указать все, что необходимо для работы вашего сервера.
Вот, что указал я
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | #пользователь user www; #колличество дочерних процессов worker_processes 2; #адрес pid-файла pid /home/www/linuxspace.org/nginx.pid; #не забываем, что nginx работает по модели "неблокируемые сокеты или конечный автомат" #но в UNIX непривилегированные процессы не могут использовать порты меньше 1024 events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; sendfile on; tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #архивация и ее параметры gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_types text/plain; gzip_comp_level 3; gzip_proxied any; #настройки виртуального хоста server { #слуашемый порт listen *:90; #имя сервера server_name localhost; #кодировка charset utf-8; #расположения основной (публичной) дирректории root /home/www/linuxspace.org/public; #LOGS (логи) #------------------------------------------------------------------ access_log /home/www/linuxspace.org/log/localhost.access.log; error_log /home/www/linuxspace.org/log/error.log; access_log /home/www/linuxspace.org/log/access.log; #------------------------------------------------------------------ #форматы index-файлов location / { root /home/www/linuxspace.org/public; index index.html index.htm index.php; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} } |
Не советую выдирать из файла примеры, в конечном счете они могут вам пригодиться. Или сделайте backup файла, на всякий случай.
Сам файлик может валяться где угодно. Но если директория отличная от дефолтной, при запуске nginx это необходимо учесть с помощью ключа -c
Например
1 | /usr/local/nginx/sbin/nginx -c /home/user/nginx.conf |
Давайте посмотрим на работу сервера.
Запустите его и посмотрите на него в списке процессов. Это должно выглядеть так.
1 2 3 4 | ps -ef | grep nginx root 7146 1 0 02:19 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx www 7147 7146 0 02:19 ? 00:00:00 nginx: worker process www 7148 7146 0 02:19 ? 00:00:00 nginx: worker process |
Все отлично! Главный процесс запущен от рута, остальные два процесса, как мы и указали в файле, пренадлежат пользователю www и являются не привегилированными.
Теперь, когда мы имеем некое предстовление о том, как установить сервер, найти все его конфигурационные и исполняемые файлы, а так же как его запустить и остановить, неплохо было бы задаться вопросом типа: «Эээ ХТМЛ это конечно круто, но как на счет че нить по серьезней типа связки с PHP и популярными CMS ??»
Установка WordPress на Nginx
Давайте рассмотрим реализацию сервера и принцип его работы. В таком случае, нам станет понятно, как правильно организовать свой сервер.
nginx работает по схеме неблокируемых сокетов или так называемый конечный автомат, что это означает, то что, сервер на каждой итерации бесконечного цикла выбирает из всех сокетов тот, который готов для работы с данными (отправка\прием) с помощью вызова select(). После того, как сокет выбран, сервер отправляет на него данные или читает их, но не ждет подтверждения, а переходит в начальное состояние ожидания события на другом сокете или же обрабатывает следующий, в котором событие произошло во время обработки предыдущего. Таким образом nginx затрачивает на порядок меньше ресурсов ОС, таких как память и процессорное время, но есть одно но, nginx не может генерировать динамический контент внутри себя, т.к. это приведет к блокировкам внутри него. Решение есть и давно: nginx может проксировать запросы (генерирование контента) на любой другой Web-server: Apache или FastCGI.
Сейчас большинство крупных сайтов используют связку nginx + Apache, называется она фронтэнд-бэкенд (frontend & backend)
Как работает такая связка?
Пусть nginx будет в качестве основного сервера и Apache в качестве сервера для генерации динамического контента:
Nginx принимает соединение от клиента и читает от него весь запрос. После того, как nginx прочитал весь ответ, он открывает соединение к Apache. Последний выполняет свою работу (генерирует динамический контент), после чего отдает свой ответ nginx, который его буферизует в памяти или временном файле. Тем временем, Apache освобождает ресурсы. Далее nginx медленно отдает контент клиенту, тратя при этом на порядки меньше ресурсов, чем Apache.
how-to как реализовать такую связку, будет опубликованно в следующих статьях.
Как поднять что-нибудь солидное? Например wordpress.
Для начала, необходимо установить в систему все необходимые компоненты.
Устанавливаем PHP
1 | sudo aptitude install php5-common php5-dev php5-mysql php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-cgi php5-mcrypt php5-curl php5-gd php5-mhash php5-pspell php5-snmp php5-sqlite libmagick9-dev php5-client |
В данном случае, я ограничелся пачкой пакетов и установленным с репов PHP с уже говотовой поддержкой FastCGI, а не ставил из исходников. Что тоже хороший вариант.
Устанавливаем MySQL
1 | sudo aptitude install mysql-server mysql-client libmysqlclient15-dev |
Устанавливаем FastCGI
Для этого нам необходимо выдрать его из другого Web-сервера lighttpd, обратите внимание на версию, так как если вы скачаете последнюю версию сервера, сейчас это 1.4.23, затем соберете его, сделаете make, а потом попробуете перебросить spawn-cgi в /usr/bin/ у вас ничего не получиться, почему, ответ написан на сайте создателей, и выглядит так:
Important changes
* Fix workaround for incorrect path info/scriptname if fastcgi prefix is ”/” (fixes #729)
* Finally removed spawn-fcgi
* Fix bug with FastCGI request id overflow under high load; just use always id 1 as we don’t use multiplexing. (thx jgray)
* Workaround broken operating systems: check for trailing ’/’ in filenames (fixes #1989)
По этому, качаем версию 1.4.19 или раньше.
1 | wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.bz2 |
Расспаковываем
1 | tar jxvf lighttpd-1.4.19.tar.bz2 |
1 | cd lighttpd-1.4.19 |
1 | sudo ./configure |
Тут при сборке, программа сообщит вам об ошибке
configure: error: pcre-config not found, install the pcre-devel package or build with –without-pcre
Вывод, надо доставить пару пакетов.
1 | sudo aptitude install libpcre3-dev libbz2-dev |
1 | sudo ./configure |
Теперь все должно пройти без ошибок.
1 | sudo make |
Перебросываем spawn-cgi в /usr/bin/
1 | sudo cp src/spawn-fcgi /usr/bin/spawn-fcgi |
Создаем скрипт запуска
1 | sudo nano /usr/bin/php-fastcgi |
Пишем в него одну строчку
1 2 | #!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/bin/php5-cgi |
Что означает эта строчка?
/usr/bin/spawn-fcgi -a 127.0.0.1 – команда запуска
-p 9000 – на порт 9000
-u www -g www – юзер www, группа www
-f /usr/bin/php5-cgi – путь к вашему пакету php5-cgi
если он вам по каким-то причинам не известен, поможет команда which. При установке из репов, путь именно такой.
Создаем скрипт запуска FastCGI
1 | sudo nano /etc/init.d/init-fastcgi |
В него вставляем следующее
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/bash PHP_SCRIPT=/usr/bin/php-fastcgi RETVAL=0 case "$1" in start) $PHP_SCRIPT RETVAL=$? ;; stop) killall -9 php5-cgi RETVAL=$? ;; restart) killall -9 php5-cgi $PHP_SCRIPT RETVAL=$? ;; *) echo "Usage: php-fastcgi {start|stop|restart}" exit 1 ;; esac exit $RETVAL |
Делаем скрипты исполняемыми
1 | sudo chmod +x /usr/bin/php-fastcgi |
1 | sudo chmod +x /etc/init.d/init-fastcgi |
Запускаем скрипт
1 | /etc/init.d/init-fastcgi start |
spawn-fcgi.c.197: child spawned successfully: PID: 32477 – подтверждение успешного запуска.
Смотрим таблицу процессов
1 2 3 4 5 6 7 | ps -ef | grep cgi www 32573 1 2 04:04 ? 00:00:00 /usr/bin/php5-cgi www 32575 32573 0 04:04 ? 00:00:00 /usr/bin/php5-cgi www 32576 32573 0 04:04 ? 00:00:00 /usr/bin/php5-cgi www 32577 32573 0 04:04 ? 00:00:00 /usr/bin/php5-cgi www 32578 32573 0 04:04 ? 00:00:00 /usr/bin/php5-cgi www 32579 32573 0 04:04 ? 00:00:00 /usr/bin/php5-cgi |
А для того, чтобы всё работало после перезагрузки набираем:
1 | sudo update-rc.d init-fastcgi defaults |
Вам нужно быть уверенным, что запущен сервер nginx и PHP в режиме CGI
Теперь что-бы nginx корректно работал с PHP необходимо заново отредактировать файл /usr/local/nginx/conf/nginx.conf настроив nginx на работу с PHP а не html.
Вот как он должен выглядеть в минимальной своей конфигурации.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | user www; worker_processes 2; pid /home/www/linuxspace.org/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; sendfile on; tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_types text/plain; gzip_comp_level 3; gzip_proxied any; server { listen 80; server_name localhost; charset utf-8; root /home/www/linuxspace.org/public; #LOGS #------------------------------------------------------------------ access_log /home/www/linuxspace.org/log/localhost.access.log; error_log /home/www/linuxspace.org/log/error.log; access_log /home/www/linuxspace.org/log/access.log; #------------------------------------------------------------------ location / { root /home/www/linuxspace.org/public; index index.html index.htm index.php; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # # location ~\.php$ { # proxy_pass http://127.0.0.1; # } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/linuxspace.org/public/$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} } |
Далее закидываем wordpress в нашу корневую папку
1 | wget http://ru.wordpress.org/wordpress-2.8-ru_RU.zip |
1 | unzip wordpress-2.8-ru_RU.zip |
1 | cd wordpress |
1 | mv * /home/www/linuxspace.org/public/ |
И вводим в броузере http://localhost/
Вы должны будете увидеть окно приветсвия Wordpress.

Настройка MySQL. Создание базы данных.
Теперь, все что вам осталось, это создать базу данных для блога.
Помним, что MySQL уже установленна в систему.
Для начала необходимо запустить сервер.
1 | sudo /etc/init.d/mysql start |
Далее сменить рутовский пароль и провести кое какую настройку.
Выполняем ниже написанную команду, внимательно читаем все опции.
1 | sudo /usr/bin/mysql_secure_installation |
Далее выполняем устновку административных таблиц
1 | sudo /usr/bin/mysql_install_db |
Теперь пришло время создавать таблицу для блога.
Выполняем вход в MySQL
1 2 3 4 5 6 7 8 9 | mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 68 Server version: 5.0.75-0ubuntu10.2 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> |
если вы увидели что-то похожее, то вход выполнен.
Далее создаем таблицу:
1 | mysql> CREATE DATABASE `wordpress` CHARACTER SET utf8 COLLATE utf8_general_ci; |
Синтаксис оператора CREATE DATABASE
CREATE DATABASE [IF NOT EXISTS] db_name [CHARACTER SET charset] [COLLATE collation];
db_name – Имя, которое будет присвоено создаваемой базе данных.
IF NOT EXISTS – Если не указать этот параметр, то при попытке создания базы данных с уже существующим именем, возникнет ошибка выполнения команды.
CHARACTER SET, COLLATE – Используется для задания стандартной кодировки таблицы и порядка сортировки.
Если при создании таблицы эти параметры не указываются, то кодировка и порядок сортировки вновь создаваемой таблицы берутся из значений, указанных для всей базы данных. Если задан параметр CHARACTER SET, но не задан параметр COLLATE, то используется стандартный порядок сортировки. Если задан параметр COLLATE, но не задан CHARACTER SET, то кодировку определяет первая часть имени порядка сортировки в COLLATE.
Для того, чтобы посмотреть настройки уже существующей базы данных необходимо выполнить оператор SHOW CREATE DATABASE
1 | mysql> SHOW CREATE DATABASE `wordpress`; |
Вот инфа о базе, которую только-что создал я.
1 2 3 4 5 6 7 | mysql> SHOW CREATE DATABASE `wordpress`; +----------+----------------------------------------------------------------+ | Database | Create Database | +----------+----------------------------------------------------------------+ | my_db | CREATE DATABASE `my_db` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+----------------------------------------------------------------+ 1 row in set (0.00 sec) |
Завершите работу с mysql выполнив
1 | mysql>QUIT |
Теперь, осталось в поле «имя БД» в процессе установки wordpress указать имя созданной вами базы и в полях логин\пароль указать имя пользователя и пароль рута для MySQL.
За сим все! Статья и так получилась огромной :-) Наверное и половина не дочитает ее до конца. :-) Надеюсь кому-нибудь будет полезно.
Viewed 1282 times by 587 viewers
Комментарии (2)
Other Links to this Post
RSS-лента комментариев к этой записи. TrackBack URI


By Jay, 9 Июль 2009 @ 20:01
Спасибо большое, очень помогла ваша заметка!
By dan1005, 4 Сентябрь 2009 @ 8:12
Автору – глубокий респект!
Одна маленькая закавыка: параметры fastcgi создают один воркер, а чтобы было пять, как в примере, нужно написать php-fastcgi:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi