Хорошо, мне сказали, что лучший и самый простой способ установить Apache / Nginx, PHP, MySQL для производства в наши дни - это загрузить программное обеспечение с помощью apt-get или аналогичного диспетчера пакетов для вашего конкретного дистрибутива. Преимущество этого заключается в том, что вы используете надежно созданные пакеты и можете легко обновлять их в производственной среде.
Сейчас я использую Ubuntu 12.04 и очень хочу получить последние версии этого программного обеспечения:
Однако каждое руководство, с которым я сталкивался, похоже, заставляет меня установить все это, но после того, как я выполнил всю настройку, это не работает, и я понятия не имею, что пошло не так или как это исправить.
1) Установите репозитории dotdeb, используя эти инструкции:
2) Установите Apache 2.2.22, PHP 5.4.3, MySQL 5.5.24 с помощью:
aptitude install mysql-server apache2 libapache2-mod-php5 php5-mysql php5-apc php5-curl
3) Установите пакет mod-rewrite с помощью:
a2enmod rewrite
Теперь это работает, и я могу запустить и правильно отобразить phpinfo () и подключиться к базе данных. Однако это дает мне только Apache 2.2.22 (я бы предпочел 2.4.x для последнего увеличения скорости), а также я не могу заставить работать мод-перезапись, он просто отказывается перенаправлять все на index.php, поэтому работает только домашняя страница.
У меня есть код htaccess, настроенный как:
RewriteEngine on
RewriteBase /
# Forward any url without the listed extentions to index.php
RewriteRule !\.(js|css|ico|txt|gif|jpg|jpeg|png|ttf)$ index.php
Я не знаю, это пятая установка Ubuntu, которую мне пришлось сделать сейчас, чтобы попытаться заставить это работать, но все еще на первом месте и никуда не денешься.
У кого-нибудь есть рабочее руководство или решение, чтобы установить все эти технологии вместе и заставить их хорошо взаимодействовать?
Если ваша цель - безопасная и стабильная производственная система, вам иногда не следует использовать «последнюю» версию. И вы должны сократить задачи обслуживания. Так что выбор «правильного» дистрибутива для вашей задачи - это ИМХО путь.
Обновлять вручную слишком проблематично - и некоторые дистрибутивы исправляют быстрее, чем выпускается стабильный выпуск.
Некоторое время я наблюдал за этим в CentOS для apache-httpd. Если вы хотите, чтобы исправления безопасности были еще быстрее, вам нужно взять RedHat Enterprise (или любой другой дистрибутив, который предоставляет быстрые и стабильные исправления).
Было бы намного проще использовать Nginx с php5-fpm.
я написал это руководство около года назад о настройке и настройке Nginx с Php-fpm и MySQL от dotdeb.
И еще одно но старая статья о Nginx - настройка обратного прокси Apache.
Вероятность того, что вы сможете найти пакеты репозитория для самых последних сборок программного обеспечения, очень маловероятна. Пакеты являются проверенными установками, которые работают без проблем и устанавливаются без особых усилий. Чтобы установить более новую версию, вам нужно будет установить ее из исходников. Иногда это может быть немного сложно, потому что пакеты обрабатывают все конфигурации и зависимости за вас. Если у вас уже работает функция phpinfo (), скопируйте параметр ./configure, который отображается на этой странице, чтобы помочь вам, когда вам нужно его создать. При этом, как только вы справитесь с этим и заставите его работать, перспектива создания приложения из исходного кода больше не будет вас пугать.
Что касается ваших правил перезаписи, попробуйте что-то вроде этого
RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule !^(.*)\.(js|css|ico|txt|gif|jpg|jpeg|png|ttf)$ index.php [L]
Даже Canonical рекомендует дождаться выхода первой версии (например, 12.04.1) перед развертыванием в производственных коробках. Сказав это, я просто выполняю чистую установку 12.04 LTS в кластере серверов, на котором работала 8.04 LTS последние пару лет, поэтому не все следуют хорошему совету!
Если вы готовы согласиться на Apache 2.2 и PHP 5.3, это самый быстрый способ в Ubuntu:
sudo tasksel install lamp-server
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
Это установит Apache 2.2, PHP 5.3, MySQL 5.5 и mod_rewrite со всеми зависимостями и стандартной конфигурацией.
Если вам действительно нужны Apache 2.4 и PHP 5.4, я бы посоветовал подождать, пока они не появятся в версии Ubuntu Server.
Изменить: один из используемых вами пакетов - APC. Согласно этой теме:
https://stackoverflow.com/questions/9611676/is-apc-compatible-with-php-5-4
это может быть немного сложно, если вы используете PHP 5.4.