Установка связки 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
Копируем и правим конфигурационные файлы для нашего второго сайта.
<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
Содержимое файла будет выглядеть следующим образом:
<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>
Установка и настройка MySQL