Ну вот и пришла пора поставить и настроить Web-сервер. После установки apache2 + ngnix + php5 + mySQL + memcached + eaccelerator мы должны получить довольно быстрый сервер, с не очень большим потреблением памяти. ngnix будет обрабатывать все статические запросы, а динамику отдавать apach2.
Приступим.
Ставим весь веб-сервер за один раз
nord_tramper@SRV:~$ sudo apt-get install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl phpmyadmin
+152Мб на диске 🙂 – жмем Y и в путь!
При установке mySQL вводим пароль root пользователя MySQL. (у меня это было на таком веселом розовеньком фоне )
New password for the MySQL "root" user: ПИШЕМ_СВОЙ_ЛЮБИМЫ_ПАРОЛЬ Repeat password for the MySQL "root" user: ПИШЕМ_СВОЙ_ЛЮБИМЫ_ПАРОЛЬ
Когда дело дойдет до установки phpmyadmin, надо будет в настройках выбрать apache2, чтобы админка заработала.
И снова окно настроек Myphpadmin:
Выбираем Yes и снова вводим пароли. phpmyadmin должен где-то хранить свои настройки – так что база ему нужна.
Разрешаем, необходимые нам, модули “индейца”, т.е. apach2
sudo /usr/sbin/a2enmod ssl sudo /usr/sbin/a2enmod rewrite sudo /usr/sbin/a2enmod suexec sudo /usr/sbin/a2enmod include
Настроим сайт по умолчанию. Для этого поправим конфиг /etc/apache2/sites-available/default (я правлю редактором MC).
<VirtualHost *:81> ServerAdmin webmaster@lifelongjourney.ru DocumentRoot /var/www/lifelongjourney.ru <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Вместо Lifelongjourney.ru подставьте свой сайт. 81 порт – это не ошибка – на 80-м порту будет жить nginx, и он уже будет перенаправлять все на 80-й порт.
Теперь сделаем ссылку на наш файл в разрешенных файлах
sudo ln -s /etc/apache2/sites-available/default /etc/apache2/sites-enabled/
Теперь поправим файл /etc/apache2/apache2.conf/ Изменим максимальное число процессов апача, запущенных одновременно. В трех местах в файле правим MaxClients 150 на MaxClients 50
Ставим nginx
sudo apt-get install nginx sudo apt-get install libapache2-mod-rpaf
И сразу меняем в конфиге апча /etc/apache2/ports.conf порт 80 на 81
NameVirtualHost *:81 Listen 81
При желании поправим /etc/nginx/nginx.conf, например, включим там Gzip сжатие и поправим число процессов. Оно должно быть равно числу ядер Вашего процессора.Создадим конфиг для нашего сайта
sudo touch /etc/nginx/sites-enabled/lifelongjourney.ru
и впишем туда
server { listen 80; server_name lifelongjourney.ru; access_log /var/log/nginx.access_log; location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ { root /var/www/lifelongjourney.ru/; index index.html index.php; access_log off; expires 30d; } location ~ /\.ht { deny all; } location / { proxy_pass http://127.0.0.1:81/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_set_header Host $host; proxy_connect_timeout 60; proxy_send_timeout 90; proxy_read_timeout 90; proxy_redirect off; proxy_set_header Connection close; proxy_pass_header Content-Type; proxy_pass_header Content-Disposition; proxy_pass_header Content-Length; } }
Добавим настройки для phpmyadmin, иначе доступ к нему будет только через localhost:81/phpmyadmin. Для этого в конфиге ngnix в секции server{} добавим
location /phpmyadmin/ { proxy_pass http://127.0.0.1:81/phpmyadmin/; }
Устанавливаем memcached
sudo apt-get install memcached
и сразу добавляем eaccelerator
wget http://sourceforge.net/projects/eaccelerator/files/latest/download.zip unzip download.zip cd eaccelerator-0.9.6.1/ sudo phpize sudo ./configure --enable-eaccelerator=shared sudo make sudo make install
Теперь добавим в конфигурацию PHP наш eaccelerator – редактируем файл /etc/php5/apache2/php.ini. Добавим в конец файла
zend_extension = "/usr/lib/php5/20090626+lfs/eaccelerator.so" eaccelerator.shm_size = "32" eaccelerator.cache_dir = "/var/cache/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9"
Создаем папку для кэша
sudo mkdir -p /var/cache/eaccelerator sudo chmod 0777 /var/cache/eaccelerator
Рестартутем сервисы
sudo service apache2 restart sudo service nginx restart sudo service memcached restart
Ну и затестим сервер
В браузере зайдем на localhost
Welcome to nginx!
nginx работает. А теперь посмотрим на свой сайт. Кстати про свой сайт. Надо создать папку /var/www/lifelongjourney.ru и поместить туда, например, файл index.html
В браузере lifelongjourney.ru
Иииии попадаем на свой сайт, который уже есть в интернете. Ну да. Самое время прописать в /etc/hosts
127.0.0.1 lifelongjourney.ru
Все. Теперь браузер показывает нам наш index.php
В следующем посте – разворачиваем локальную копию сайта на нашем сервере.
Спасибо, очень полезный пост, воспользовался в своей практике для работы с сайтом.
Рад, что кому-то помог )
Спасибо, админ, очень помог. Все в одном. Прекрасный пост.
Пожалуйста )