LAMP Ubuntu 14.04

Установка связки Apache+PHP5+MYSQL на Ubuntu 14.04


Установка Apache

apt-get update

apt-get install apache2

Основной конфигурационный файл находится по пути:

nano /etc/apache2/apache2.conf

Конфигурационные файлы сайтов находятся в:

etc/apache2/sites-enabled/name_site.conf

/etc/apache2/sites-available/name_site.conf

Контент сайта по умолчанию находится в каталоге:

/var/www/html/

  • Первым делом настроим ssl шифрование нашего сайта

https://onedayadmin.sytes.net/ssl-ubuntu-14-04/

Чтобы использовать сгенерированный ключ нужно знать пароль введенный нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? 🙂 Поэтому снимаем пароль с ключа:

openssl rsa -in server.key.orig -out server.key

запросит пароль который мы назначили при создании сертификата

rm server.key.orig

Скопируем их в /etc/ssl (если они не там) и назначим файлу ключа права чтения только администратору

chmod 0600 /etc/ssl/server.key

Для начала необходимо активировать mod_ssl:

a2enmod ssl

Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется / etc/apache2/sites-enabled/default-ssl (или /etc/apache2/sites-enabled/default-ssl.conf ).

В этом файле рекомендуется после директивы SSLEngine on добавить строку:

SSLProtocol all-SSLv2

дабы запретить использование устаревшего протокола SSLv2.

Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.

#Публичный сертификат сервера SSLCertificateFile

/etc/ssl/certs/server.pem

#Приватный ключ сервера SSLCertificateKeyFile

/etc/ssl/private/server.key

 полный конфиг

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

ServerAdmin nu_dostal@mail.ru@mail.ru

ServerName https://my.sytes.net

DocumentRoot /var/www/mydirectory

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLCertificateFile /etc/ssl/server.pem

SSLCertificateKeyFile /etc/ssl/server.key

SSLProtocol all -SSLv2

<FilesMatch "\.(cgi|shtml|phtml|php)$">

SSLOptions +StdEnvVars

</FilesMatch>

<Directory /usr/lib/cgi-bin>

SSLOptions +StdEnvVars

</Directory>

BrowserMatch "MSIE [2-6]" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>

</IfModule>

Теперь просто перезагрузите Apache:

service apache2 restart

  • Перенаправление http запросов на https

Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias. Если он не включён — включаем:

a2enmod alias
service apache2 restart

 Затем изменяем файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTPзапросов. В этот файл добавляем директиву Redirect / https://example.com/

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.

Полный конфиг:

<VirtualHost 192.168.11.11:80>

ServerName my.sytes.net

    ServerAdmin nu_dostal@mail.ru

    Redirect /  https://my.sytes.net

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost> 

 service apache2 restart

  • Если надо несколько сайтов на одном ip

Копируем и правим конфигурационные файлы для нашего второго сайта.

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site2.conf
nano /etc/apache2/sites-available/site2.conf

<VirtualHost 192.168.11.11:80>

ServerName site2.sytes.net

    ServerAdmin nu_dostal@mail.ru

    Redirect /  https://site2.sytes.net

   # DocumentRoot /var/www/site2/

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

cp  /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/site2-ssl.conf

nano /etc/apache2/sites-available/site2-ssl.conf

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

 ServerAdmin nu_dostal@mail.ru@mail.ru

ServerName https://site2.sytes.net

DocumentRoot /var/www/site2/

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLCertificateFile /etc/ssl/certs/server2.pem

SSLCertificateKeyFile /etc/ssl/private/server2.key

SSLProtocol all -SSLv2

<FilesMatch "\.(cgi|shtml|phtml|php)$">

SSLOptions +StdEnvVars

</FilesMatch>

<Directory /usr/lib/cgi-bin>

SSLOptions +StdEnvVars

</Directory>

BrowserMatch "MSIE [2-6]" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>

</IfModule>

a2ensite site2

a2ensite site2-ssl

/etc/init.d/apache2 restart

Установка PHP

apt-get install php5 libapache2-mod-php5 php5-mcrypt
nano /etc/apache2/mods-enabled/dir.conf

Содержимое файла будет выглядеть следующим образом:

<IfModule mod_dir.c>

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>

перетянем index.php перед index.html

<IfModule mod_dir.c>

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

</IfModule>

service apache2 restart

Установка и настройка MySQL

MySQL на Ubuntu 14.04