За что? Это самый первый вопрос, который задаст большинство людей.
Я отвечу: 1) Дефолтный php без часто необходимых вещей типа pcntl, а также с скомпилированным генератором неизвестная совокупительная чушь Патч Сухосин.
2) Сборка модулей, которых нет в репозитории.
3) Мануалов такого типа нет. Нет, правда нет, только короткие руководства, которые с оговоркой можно назвать логом .
/configure && make && make install, и которые сложно собрать из-за требований дополнительных библиотек.
4) Про вентилятор писать не буду.
Просто не буду, потому что.
Мы не балуемся, мы собираем продукт для работы.
Многие сочтут это плюсом, но не я.
5) Неожиданно встал вопрос о сборке вашего модуля.
Навыки сборки для Никса очень помогли в сборке для Windows, где и писалось расширение.
Конечно, можно было сразу написать под никсами.
Но мне не хотелось ставить и настраивать кастомные никсы только ради одного проекта (разрабатывать в консоли на удалённом сервере как-то не особо приятно).
Начнем установку Создайте каталог и перейдите в него:
Сначала выбираем из репозитория компилятор, набор утилит для сборки wget и набор библиотек, которые нам понадобятся для сборки PHP (ну и zlib для apache, если собирать с помощью mod_deflate):mkdir build cd build
На чистом сервере Ubuntu для apt-get потребуется загрузить около 85 МБ.sudo apt-get install build-essential wget autoconf zlib1g-dev libxml2-dev libcurl4-openssl-dev libpng-dev libmcrypt-dev libmhash-dev libmysqlclient15-dev libtidy-dev libmemcache-dev
Мы установим его в /opt, чтобы не путать с файлами дистрибутива.
Приступаем к сборке Apache Ничего комментировать не буду, потому что.
здесь все прозрачно и в комментариях не нуждается.
Установка PHP Да, его модули требуют кучу зависимостей.wget http://www.sai.msu.su/apache/httpd/httpd-2.2.12.tar.bz2 bunzip2 httpd-2.2.12.tar.bz2 tar -xf httpd-2.2.12.tar cd httpd-2.2.12/ ./configure --prefix=/opt/apache2 --exec-prefix=/opt/apache2 --enable-mods-shared=all --enable-suexec make sudo make install cd .
Настроил СУБД для MySQL/SQLite; для других соберите его самостоятельно.
Не нужно бояться добавлять сюда лишнее — на производительность это не повлияет.
Несколько слов об опциях.wget http://ru2.php.net/distributions/php-5.2.10.tar.bz2 bunzip2 php-5.2.10.tar.bz2 tar -xf php-5.2.10.tar cd php-5.2.10 ./configure --prefix=/opt/php5.2 --with-apxs2=/opt/apache2/bin/apxs --enable-fastcgi --with-curl --enable-ftp --with-gd --enable-mbstring --with-mcrypt --with-mhash --with-mysql --with-sqlite --with-mysqli --enable-pcntl --with-pdo-mysql --enable-shmop --enable-soap --enable-sockets --enable-sqlite-utf8 --with-tidy --enable-zip --enable-mbregex --enable-ctype make sudo make install cd .
PHP-разработчик должен знать, что означают эти модули (вариант, начинающийся с --with-curl), а те, кто не является разработчиком, но кому волею судьбы пришлось настраивать сервер, должны просто поверить, что они более или менее оптимально и ничего нужного типа pdo или mysqli не вырезается, как это иногда бывает. То же самое относится и к конфигурации php.ini. Редактируем конфигурацию Apache
Я заменяю значение DocumentRoot на «/var/www», добавляю index.php в DirectoryIndex, добавляю AddType application/x-httpd-php .sudo vim /opt/apache2/conf/httpd.conf
php. Создайте phpinfo.php с содержимым и наслаждайтесь видом ненастроенного PHP (запустите Apache через /opt/apache2/bin/apachectl start).
Настройка PHP Скопируйте php.ini по умолчанию и отредактируйте его:
Отредактируем эти параметры (даже не буду заикаться о том, что они означают): error_reporting = E_ALL Включаем display_errors для отладки, но отключаем на боевой раскладке.sudo cp php.ini-dist /opt/php5.2/lib/php.ini sudo vim /opt/php5.2/lib/php.ini
log_errors = Вкл.
post_max_size = 64M (для типичных задач это больше) Magic_quotes_gpc = Выкл.
(и почему они включаются молча? понятия не имею) include_path=".
:/opt/php5.2/lib/php" (тут я помещал ZF и другие интересные вещи) upload_max_filesize = 64M (равен post_max_size) Я вам скажу, что в Виме поиск осуществляется по "?" Автоматический запуск Во-первых, давайте удалим Apache по умолчанию из автозагрузки; нам поможет удобная утилита rcconf (она проще в использовании, чем update-rc.d, я привык ею пользоваться):
Снимите флажок.sudo apt-get install rcconf sudo rcconf
Ну и останавливаем Apache, чтобы не перезагружаться:
Теперь в rc.local добавляем строку запуска нашего Apache, что позволит ему запускаться при запуске:sudo /etc/init.d/apache2 stop
Строка запуска выглядит следующим образом: /opt/apache2/bin/apachectl start Можно все сделать правильно, добавив скрипт, но я ограничусь этим.sudo vim /etc/rc.local
Установить XCache Комментировать сборку не буду:
Копируем конфиг (был досадный глюк с sudo и правами, поэтому пришлось делать через sudo su) и админку.wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.bz2 bunzip2 xcache-1.2.2.tar.bz2 tar -xf xcache-1.2.2.tar cd xcache-1.2.2 /opt/php5.2/bin/phpize ./configure --enable-xcache --prefix=/opt/xcache --enable-xcache-optimizer --with-php-config=/opt/php5.2/bin/php-config make sudo make install
Отредактируйте php.ini еще раз:sudo su cat xcache.ini >> /opt/php5.2/lib/php.ini exit sudo cp -R admin/ /var/www/xcache
Прокомментируйте zend_extension_ts, установите для xcache.admin.user имя администратора, для xcache.admin.pass — пароль md5, для xcache.size — 64M, для xcache.optimizer — значение On, установите для zend_extension путь «/opt/php5.2/lib».sudo vim /opt/php5.2/lib/php.ini
/php/extensions/no-debug-non-zts-20060613/xcache.so".
Если путь задан правильно, то в phpinfo() мы увидим параметры xcache и сможем посмотреть статистику в админке.
Если этого нет, то посмотрите логи Apache и найдите ошибку.
Установить кэш памяти
Добавляем расширение=memcache.so в php.ini, путь указывать не нужно, он по умолчанию.sudo /opt/php5.2/bin/pecl install memcache
Из груши на Никсы установить легко, это вам не винда =) nginx Меняем порт Apache, вводим в Google обратный прокси nginx, читаем, делаем.
Нет не только нет желания, но и нет смысла снова и снова переписывать одно и то же.
Автозагрузка аналогична Apache. Обновлять: Использование Nginx в качестве обратного прокси-сервера на загруженных веб-сайтах , nginx как обратный прокси В следующих сериях 1. Ужас «Сборка минимального PHP для Windows с помощью VS 2008».
Сборка расширений: helloworld. Если кармы достаточно, то это будет завтра или послезавтра, потому что.
уже написано.
2. Создание расширений для Linux. Реализация ТЭА.
2009-09-01 Теги: #расширение PHP сервер Ubuntu #Chulan
-
Общий Взгляд На Разработку Игр
19 Oct, 24 -
Синхронизатор Истории Им.
19 Oct, 24 -
Очередной Сюрприз От Typograph
19 Oct, 24