Установка apache2 mysql php5 в ubuntu

Довольно избитая уже тема, однако, я все же считаю нужным написать об этом.
Итак, вдруг вам внезапно понадобилось организовать доступ к своему серверу по http протоколу, а так же разместить на нем сайты. Для этого нужно поставить web-сервер, самым распространенным на данный момент является сервер Apache2, помимо него мы поставим базу данных MySQL и PHP5, а потом веб сервер nginx, который будет отдавать клиентам статику, а php проксировать apache, ну и для быстродействия eAccelerator который будет сжимать контент. Все описанное в статье работает и в ubuntu и в Debian
Ставим apache2, php5, MySQL

sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql nginx

При установке нас попросят вести пароль пользователь root для MySQL, не оставляйте эти поля пустыми, так как это влияет на безопасность.
Настраиваем nginx и apache
Идем в /etc/nginx/nginx.conf и приводим файл к следующему виду:

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_static      on;
    gzip_comp_level  6;
    gzip_types       application/x-javascript text/css;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    client_max_body_size 100m;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Затем открываем /etc/apache2/ports.conf и изменяем порт который слушает apache2

NameVirtualHost 127.0.0.1:81
Listen 81

IP 127.0.0.1 мы указали для того, чтобы сервер не слушал внешние интерфейсы, ни к чему это.
Так, серверы мы между собой подружили, теперь настроим сайты идем в /etc/nginx/sites-enabled/ и добавляем наш сайт example.com
в файл записываем следующее

upstream backend {
        server 127.0.0.1:81;
    }
server {
        listen   80;
        server_name www.example.com example.com;

        access_log  /var/log/nginx/example.com.access.log;

        location / {
                root   /var/www/example.com;
                index  index.php;
        }

        location ~ \.php($|\/) {
                proxy_pass  http://backend;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  Host  $host;
        }
        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/example.com;
        }
}

Эти настройки делают так,что nginx отдает всю статику, а apache обрабатывает php.
Так же настраиваем apache2 идем в /etc/apache2/sites-enabled/ и создаем наш example.com

        DocumentRoot "/var/www/example.com/"
        ServerName isurgut.net
        ServerAlias www.isurgut.net
        ErrorLog /var/log/apache2/example.com.error.log

Перезапускаем nginx и apache2

/etc/init.d/apache2 restart
/etc/init.d/nginx restart

Проверяем как работает с php наш сервер создаем файл index.php и пишем в нем:


если вдруг php отобразился как обычный текст, не расстраиваемся, а идем в /etc/apache2/apache2.conf и добавляем в секции <IfModule mod_mime.c> такую запись:

AddType application/x-httpd-php .php

После чего перезапускаем apache

/etc/init.d/apache2 restart

Вот и все, наш сервер практически готов осталось поставить eAccelerator и научит его верно определять IP, так как сейчас из-за проксирования запросов IP всех пользователей будут 127.0.0.1, как это сделать я расскажу в следующей статье.
Кстати о создании пользователей и баз данных в MySQL можно почитать в статье Как добавить пользователя в MySQL

Часть2

2 комментария к “Установка apache2 mysql php5 в ubuntu

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.