Веб-сервер · 8 min read · Jan 03, 2026
Базовый веб-сервер на Ubuntu 9.04 с Zend Framework
Базовый веб-сервер на Ubuntu 9.04 с Zend Framework
Это краткое описание шагов, необходимых для настройки базового веб-сервера с установленным Zend Framework.
Как всегда, я буду следовать одному из отличных руководств Фалко, так как нет смысла изобретать велосипед, так сказать. Я буду следовать The Perfect Server - Ubuntu 9.04 [ISPConfig 3]. Однако, так как мне нужен веб-сервер приложений для предрелизного тестирования, мне не нужен Mail или ISPConfig, поэтому я буду следовать руководству ISPConfig-3 с Шага 1 - 11 и начну свою собственную версию оттуда.
Я не буду устанавливать Postfix, Courier (нет необходимости в Mail или IMAP), Saslauthd (Аутентификация), я также не собираюсь устанавливать rootkit hunter или бинарные утилиты, так что я их тоже пропущу:
12 Установка MySQL
Мы можем установить MySQL, используя следующую команду:
apt-get install mysql-client mysql-serverВам будут заданы следующие вопросы:
Новый пароль для пользователя MySQL “root”: <– вашпарольsqlroot
Повторите пароль для пользователя MySQL “root”: <– вашпарольsqlroot
Мы хотим, чтобы MySQL слушал на всех интерфейсах, а не только на localhost, поэтому мы редактируем /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1:
nano /etc/mysql/my.cnf[...]
# Вместо skip-networking по умолчанию теперь слушает только на
# localhost, что более совместимо и не менее безопасно.
#bind-address = 127.0.0.1
[...] Затем мы перезапускаем MySQL:
/etc/init.d/mysql restartТеперь проверьте, что сеть включена. Запустите
netstat -tap | grep mysqlВывод должен выглядеть следующим образом:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 8474/mysqld
root@server1:~#13 Установка Apache2, Java и phpMyAdmin
Я не устанавливаю PHP5 на этом этапе, так как у меня есть несколько разных способов установить его в следующем разделе. Просто знайте, что если вы собираетесь компилировать из исходников, вам может понадобиться прочитать следующий раздел и подумать о том, чтобы не устанавливать apache на этом этапе. В противном случае все будет установлено следующим образом:
sudo su
apt-get install apache2 sun-java6-bin phpmyadminВы увидите следующий вопрос:
Веб-сервер для автоматической перенастройки: <– apache2
Java EULA <– Tab для чтения EULA, затем OK
Согласны ли вы с условиями лицензии DLJ? <– Да
Настроить базу данных для phpmyadmin с dbconfig-common? <– Да
Пароль административного пользователя вашей базы данных: <– вашпарольsqlroot
Пароль MySQL для phpmyadmin: <– [пусто]
14 Установка PHP5:
У нас есть несколько способов установить php, в зависимости от того, что вам нужно. У меня был разный успех в установке необходимых мне модулей, поэтому я собираюсь дать вам все способы, которые я пробовал для установки PHP, и вы можете выбрать, какой из них вам нужен.
apt-get install из репозитория ubuntu
Мы можем просто использовать Apt, чтобы получить версию PHP из репозиториев ubuntu. Это будет самый простой способ и даст наибольший успех, и его следует использовать, если у вас нет специфических требований к PHP
apt-get install php5 php5-common php5-cliapt-get install из источника debian
Debian обновил свой репозиторий до последней версии PHP5, и я считаю, что в нем включена полная библиотека PHP5 GD, так что это может быть более легкий путь к успеху, чем компиляция из исходников, но это означает, что вы используете источник, который не является признанным источником Ubuntu, и вам придется принять решение, устраивает ли вас это.
Приняв это решение, вам нужно добавить репозитории debian в ваш список источников, что вы можете сделать, отредактировав ваш список источников, как раньше.
Мы можем просто использовать Apt, чтобы получить версию PHP из репозиториев ubuntu.
echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.listecho deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.listЗатем выполните
apt-get updateПосле этого вы можете выбрать обновление любых других установок, которые обновил debian.
apt-get upgrade
apt-get install php5 php5-common php5-cli
rebootКомпиляция из исходников репозитория
Хотя это успешно установило релиз ubuntu PHP5, что нормально для большинства установок, это позволит вам включить некоторые дополнительные вещи, которые не входят в установку aptitude. Вы можете использовать ./configure –help, чтобы увидеть, что доступно для включения при компиляции.
aptitude install libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-devЭто позволит вам установить безопасный релиз ubuntu с дополнительными функциями, которые могут не быть включены в стандартный релиз.
cd /usr/src
apt-get install build-essential debhelper fakeroot
apt-get source php5
apt-get install build-dep php5
cd php5-5.2.6.dfsg.1/
nano debian/rulesНайдите и замените
[...]
--with-gd=shared,/usr --enable-gd-native-ttf \
[...] на
[...]
--with-gd=shared, --enable-gd-native-ttf \
[...] dpkg-buildpackage -rfakeroot
cd ..
# Установите новый пакет php5-gd
dpkg -i php5-gd_5.2.6-1ubuntu6.3_i386.debПолная компиляция из внешнего источника
Когда я запускал это в последний раз, мне также пришлось перекомпилировать apache2, чтобы моя новая версия php5 была распознана. Не знаю, почему или было ли это только у меня, поэтому я протестирую еще несколько раз и обновлю этот пост, если смогу добиться успеха без установки apache2.
aptitude install php5-dev libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev bzip2 libcurl3 curl libpng12-dev libfreetype6-dev libmcrypt4 libmcrypt-dev libmhash2 libxslt1-dev apache2-prefork-dev libjpeg62-dev freetype2 libxft libxft-dev libcurl4-gnutls-devcd /usr/src
wget http://apache.mirror.anlx.net/httpd/httpd-2.0.63.tar.gz
tar -zxvf httpd-2.0.63.tar.gz
cd httpd-2.0.63
./configure --help
./configure --prefix=/etc --enable-rewrite --enable-so --enable-ssl
make
make install
/etc/bin/apachectl start
/etc/bin/apachectl stopcd /usr/src
wget http://uk.php.net/get/php-5.2.9.tar.gz/from/this/mirror
tar xzvf php-5.2.9.tar.gz
cd php-5.2.9
./configure --help
./configure --prefix=/etc/php5/apache2 --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/apache2 --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install
./configure --prefix=/etc/php5/cli --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/cli --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install-cliЯ получил несколько предупреждений о необходимости LoadModule в apache2.conf и httpd.conf, если вы также это обнаружите, то вы можете добавить закомментированные фиктивные инструкции и снова выполнить make install, и это должно сработать.
nano /etc/apache2/apache2.conf[...]
# Включить конфигурацию модуля:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Фиктивная директива LoadModule для помощи в установке модулей
#LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
[...] 15 Тестирование PHP и библиотеки GD / Получение информации о вашей установке PHP5
Так как у нас установлен PHP-CLI, мы можем протестировать установку библиотеки GD с:
php -r "var_dump(function_exists('imagecreatefromjpeg'));" <-- выведет true, если библиотека GD установлена
php -r "var_dump(function_exists('imagerotate'));" <-- будет false, если установлена ограниченная библиотекаКорень документа по умолчанию веб-сайта - /var/www. Теперь мы создадим небольшой PHP-файл (phpinfo.php) в этом каталоге и вызовем его в браузере. Файл отобразит множество полезных деталей о нашей установке PHP, таких как установленная версия PHP.
nano /var/www/phpinfo.phpТеперь мы вызываем этот файл в браузере (например, http://192.168.0.100/phpinfo.php):
Теперь вы должны увидеть, что PHP5 работает, прокручивая вниз, вы увидите все модули, которые уже включены в PHP5. Вы также должны увидеть MySQL в списке.
16 Настройка установок
Нам нужно убедиться, что rewrite_module включен в apache2 для правильной работы Zend Framework, поэтому давайте проверим:
a2dismodНадеюсь, вы увидите, что rewrite указан в списке модулей, которые в настоящее время включены. Если нет, нажмите Enter, чтобы ничего не отключить, а затем выполните:
a2enmod rewriteЗатем нам нужно включить AllowOverride All в файле сайта по умолчанию
nano /etc/apache2/sites-available/default[...]
DocumentRoot /var/www/
Options FollowSymLinks
AllowOverride All
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
[...] После этого нам нужно защитить phpMyAdmin, удалив файл /etc/phpmyadmin/htpasswd.setup…
rm -f /etc/phpmyadmin/htpasswd.setup… и удалить или закомментировать следующий раздел в /etc/phpmyadmin/apache.conf:
nano /etc/phpmyadmin/apache.conf[...]
## Авторизация для настройки
#
#
# AuthType Basic
# AuthName "phpMyAdmin Setup"
# AuthUserFile /etc/phpmyadmin/htpasswd.setup
#
# Require valid-user
#
[...] Перезапустите Apache после этого:
/etc/init.d/apache2 restart17 Установка Zend Framework
Хотя Zend Framework доступен в репозиториях Ubuntu 9.04, это версия 1.7.5, и я хочу иметь последнюю версию, поэтому я загружу ее через SVN, но сначала нам нужно установить его:
aptitude install subversionТеперь мы можем получить последнюю версию Zend Framework
cd /opt
mkdir ZendFramework
cd /ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.3/Следующее, что мы сделаем, это создать символическую ссылку под названием “current” на эту папку релиза, чтобы, если мы изменим версию Zend Framework, мы могли сделать это без перезапуска Apache:
ln -s release-1.8.3 currentЧтобы нам не пришлось вручную добавлять путь включения в ваши PHP-скрипты с помощью set_include_path. Я хочу, чтобы текущий Zend Framework был включен автоматически, добавив путь в /etc/php5/apache2/php.ini.
nano /etc/php5/apache2/php.iniИзмените:
include_path = ".:/usr/share/php5:/usr/share/pear"на:
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"Перезапустите Apache снова:
/etc/init.d/apache2 restartКогда новая версия Zend Framework будет выпущена, все, что нам нужно сделать, это проверить каталог SVN и изменить символическую ссылку.
cd /opt/ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.4/
rm current
ln -s release-1.8.4 current18 Настройка инструмента Zend
Теперь нам нужно настроить пути для командной строки, поэтому мы сделаем те же изменения, которые мы только что сделали выше, для PHP CLI.
nano /etc/php5/cli/php.iniinclude_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"Прежде чем выйти из суперпользователя, у нас есть еще одно дело, чтобы вы могли использовать инструмент под своим именем пользователя, а не суперпользователем, вам нужно установить разрешения на папку /var/www
chown username:usergroup /var/wwwТеперь на этом этапе вам нужно выйти из суперпользователя:
exitnano ~/.bashrcи добавьте строку
[...]
PATH=/opt/ZendFramework/current/bin:"${PATH}"
[...] Почти готово, мы просто протестируем установку, но сначала, вероятно, стоит перезагрузить.
sudo rebootКогда вы снова войдете, не используйте sudo su, а вместо этого:
zf.sh show versionИ вы должны получить
Zend Framework Version: 1.8.319 Использование инструмента
Перейдите в каталог, где вы хотите создать свой новый проект:
cd /var/www
zf.sh create project yourProjectИ вы должны обнаружить, что инструмент создаст вашу базовую структуру сайта, включая ваши начальные контроллеры и представления.
В последнюю очередь вы, вероятно, захотите скопировать папку Zend в ваш новый проект
cp -r /opt/ZendFramework/current/library/Zend /var/www/yourProject/library/ZendИ вы можете протестировать установку Zend, перейдя по адресу: http://192.168.0.100/yourProject/public/
Наслаждайтесь!
Get new posts in your inbox
No spam. Unsubscribe anytime.