Linux - CentOS6 - PHP - Apenas compilar linha de comando

2

Eu apenas configurei um novo servidor que hospedará um daemon solr. Como está agora, o índice solr está vazio, mas eu tenho um script php disponível para extrair dados de um repositório MySQL e preencher o índice solr para facilitar meus requisitos de pesquisa de texto completo.

Então, eu estou pensando, é possível compilar o PHP para ser apenas a linha de comando? Parece um desperdício ter que instalar o apache apenas para fazer o PHP funcionar.

- Editar -

Um pouco mais de esclarecimento. Quando executo o make install no CentOS, o make tenta adicionar a pegada do PHP ao / etc / httpd / conf. Está tudo bem simplesmente ignorar isso? Ou há uma bandeira que eu possa passar para ignorar o apache?

    
por Mike Purcell 22.12.2011 / 22:44

2 respostas

1

Se você precisar compilar no Red Hat, CentOS ou outros derivados do Red Hat, eu recomendo que você use o rpmbuild -bb (explicarei no momento) com o .spec.in fornecido na fonte do php pela Red Hat ou pelo desenvolvedor upstream (PHP). Aqui está uma amostra do upstream:

%define version @VERSION@
%define so_version 5
%define release 0

Name: php
Summary: PHP: Hypertext Preprocessor
Group: Development/Languages
Version: %{version}
Release: %{release}
Copyright: The PHP license (see "LICENSE" file included in distribution)
Source: http://www.php.net/get/php-%{version}.tar.gz/from/a/mirror
Icon: php.gif
URL: http://www.php.net/
Packager: PHP Group <[email protected]>

BuildRoot: /var/tmp/php-%{version}

%description
PHP is an HTML-embedded scripting language. Much of its syntax is
borrowed from C, Java and Perl with a couple of unique PHP-specific
features thrown in. The goal of the language is to allow web
developers to write dynamically generated pages quickly.

%prep

%setup

%build
set -x
./buildconf
./configure --prefix=/usr --with-apxs \
    --disable-debug \
    --with-xml=shared \

# figure out configure options options based on what packages are installed
# to override, use the OVERRIDE_OPTIONS environment variable.  To add
# extra options, use the OPTIONS environment variable.

#test rpm -q MySQL-devel >&/dev/null && OPTIONS="$OPTIONS --with-mysql=shared"
#test rpm -q solid-devel >&/dev/null && OPTIONS="$OPTIONS --with-solid=shared,/home/solid"
#test rpm -q postgresql-devel >&/dev/null && OPTIONS="$OPTIONS --with-pgsql=shared"
test rpm -q expat >&/dev/null && OPTIONS="$OPTIONS --with-xml=shared"

if test "x$OVERRIDE_OPTIONS" = "x"; then
    ./configure --prefix=/usr --with-apxs=$APXS $OPTIONS
else
    ./configure $OVERRIDE_OPTIONS
fi

Veja onde está escrito "--with-apxs"? Isso faz parte das interfaces de desenvolvimento do servidor HTTP Apache. Se isso não for instalado, você terá ao executar o configure (e acredito que é o que você está vendo):

Configuring SAPI modules
checking for AOLserver support... no
checking for Apache 1.x module support via DSO through APXS... 

Sorry, I was not able to successfully run APXS.  Possible reasons:

1.  Perl is not installed;
2.  Apache was not compiled with DSO support (--enable-module=so);
3.  'apxs' is not in your path.  Try to use --with-apxs=/path/to/apxs
The output of apxs follows
./configure: line 4092: apxs: command not found
configure: error: Aborting

Para compilar sem o suporte a apxs (evitando assim a necessidade do apache), você mudaria isso para:

--without-apxs

E isso vai passar nesse ponto.

Agora, volte para a construção com um arquivo de especificação. se você construí-lo com um arquivo de especificação, o rpmbuild dirá quais dependências você precisa para instalar. E a partir daí, ele criará um pacote para você e você poderá instalá-lo com:

yum localinstall php.rpm

O qual permitirá que você instale e satisfaça os outros requisitos. Isso poupará muito sofrimento ao gerenciar seu sistema adequadamente com um sistema de empacotamento, em vez de tentar criar e instalar manualmente.

(ou você pode seguir o conselho da embobo e instalar apenas o php-cli;)).

    
por 23.12.2011 / 02:27
0

Por que você está compilando php manualmente? Instale php-cli e não php (que é o módulo do apache) com yum .

    
por 23.12.2011 / 00:47