Веб-сервер · 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-cli

apt-get install из источника debian

Debian обновил свой репозиторий до последней версии PHP5, и я считаю, что в нем включена полная библиотека PHP5 GD, так что это может быть более легкий путь к успеху, чем компиляция из исходников, но это означает, что вы используете источник, который не является признанным источником Ubuntu, и вам придется принять решение, устраивает ли вас это.

Приняв это решение, вам нужно добавить репозитории debian в ваш список источников, что вы можете сделать, отредактировав ваш список источников, как раньше.

Мы можем просто использовать Apt, чтобы получить версию PHP из репозиториев ubuntu.

echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.list
echo 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-dev
cd /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 stop
cd /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 restart

17 Установка 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 current

18 Настройка инструмента Zend

Теперь нам нужно настроить пути для командной строки, поэтому мы сделаем те же изменения, которые мы только что сделали выше, для PHP CLI.

nano /etc/php5/cli/php.ini
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"

Прежде чем выйти из суперпользователя, у нас есть еще одно дело, чтобы вы могли использовать инструмент под своим именем пользователя, а не суперпользователем, вам нужно установить разрешения на папку /var/www

chown username:usergroup /var/www

Теперь на этом этапе вам нужно выйти из суперпользователя:

exit
nano ~/.bashrc

и добавьте строку

[...]  
PATH=/opt/ZendFramework/current/bin:"${PATH}"
[...]  

Почти готово, мы просто протестируем установку, но сначала, вероятно, стоит перезагрузить.

sudo reboot

Когда вы снова войдете, не используйте sudo su, а вместо этого:

zf.sh show version

И вы должны получить

Zend Framework Version: 1.8.3

19 Использование инструмента

Перейдите в каталог, где вы хотите создать свой новый проект:

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/

Наслаждайтесь!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.