【问题标题】:create custom LAMP distribution like XAMPP创建自定义 LAMP 发行版,如 XAMPP
【发布时间】:2011-01-24 02:24:39
【问题描述】:

我希望从源代码中制作一个自包含的 LAMP distro 软件包,其中至少包含以下内容:
* php 必须有 mysqli、ldap 和 GD 支持
* 必须包含所有必需的 .so(如 GD 所需的 libpng)(自包含)

我设法做了一个,但我一直在修补怪癖,所以我想从像 XAMPP 这样广泛使用的一个开始,但我找不到构建它的源(一些 shell 脚本,它编写了所有配置选项、涉及的来源等)。

我在哪里可以找到这样的脚本/信息?

我需要这个,以便我的用户可以轻松安装我的软件,他们不是 LAMP 管理员。

我需要 XAMPP 包或类似的配置选项。

【问题讨论】:

  • 这可能更适合 serverfault.com

标签: php c makefile lamp configure


【解决方案1】:

这是我用来构建自己的灯组的配置选项。
它们是从 CentOS rpm 灯包中提取的。

# APACHE
cd httpd-2.2.14/
./configure \
--prefix=/opt/clamp \
--sysconfdir=/opt/clamp/etc \
--enable-auth-dbm \
--enable-cern-meta \
--enable-auth-digest \
--enable-charset-lite \
--enable-deflate \
--enable-expires \
--enable-cache \
--enable-disk-cache \
--enable-file-cache \
--enable-headers \
--enable-info \
--enable-mime-magic \
--enable-proxy \
--enable-proxy-ajp \
--enable-proxy-balancer \
--enable-proxy-connect \
--enable-proxy-ftp \
--enable-proxy-http \
--enable-rewrite \
--enable-so \
--enable-ssl
make
make install
cd ..

# MYSQL
cd mysql-5.1.44/
./configure \
--prefix=/opt/clamp \
--sysconfdir=/opt/clamp/etc \
--libexecdir=/opt/clamp/sbin \
--localstatedir=/opt/clamp/var \
--with-unix-socket-path=/opt/clamp/tmp/mysql.sock
make
make install
cd ..

# LIBS_DEP
yum install freetype
yum install freetype-devel
yum install libjpeg
yum install libjpeg-devel
yum install libpng
yum install libpng-devel
yum install libXpm
yum install libXpm-devel

# PHP
cd php-5.2.13/
./configure \
--prefix=/opt/clamp \
--sysconfdir=/opt/clamp/etc \
--with-apxs2=/opt/clamp/bin/apxs \
--with-config-file-path=/opt/clamp/etc/php.conf \
--disable-debug \
--with-pic \
--disable-rpath \
--without-pear \
--with-bz2 \
--with-curl \
--with-freetype-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--without-gdbm \
--with-gettext \
--with-gmp \
--with-iconv \
--with-jpeg-dir=/usr \
--with-openssl \
--with-pspell \
--with-zlib \
--with-layout=GNU \
--enable-exif \
--enable-ftp \
--enable-magic-quotes \
--enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-sysvmsg \
--enable-wddx \
--with-kerberos \
--enable-ucd-snmp-hack \
--enable-shmop \
--enable-calendar \
--without-sqlite \
--enable-force-cgi-redirect \
--enable-pcntl \
--with-imap --with-imap-ssl \
--enable-mbstring \
--enable-mbregex \
--with-ncurses \
--with-gd \
--enable-bcmath \
--with-xmlrpc \
--with-ldap --with-ldap-sasl \
--with-mysql=/opt/clamp \
--with-mysqli=/opt/clamp/bin/mysql_config \
--enable-dom \
--with-pgsql \
--enable-soap \
--enable-xmlreader --enable-xmlwriter \
--enable-fastcgi 
make
make install

ln -s /opt/clamp/share/mysql/mysql.server /opt/clamp/bin/mysql.server
mkdir /opt/clamp/tmp
/bin/cp -f /root/clamp/use/etc/* /opt/clamp/etc
/bin/cp -f /root/clamp/use/run /opt/clamp
/bin/cp -f /root/clamp/use/install /opt/clamp

./bin/mysql_install_db --user=clamp \
--basedir=/opt/clamp \
--datadir=/opt/clamp/var

groupadd clamp
useradd -g clamp -s /bin/nologin -d /opt/clamp clamp
chown -R clamp.clamp /opt/clamp


# start first !!!!!!!!!

/opt/clamp/bin/mysqladmin -u root -P 3307 password 123clamp456
/opt/clamp/bin/mysqladmin -u root -p123clamp456 -P 3307 flush-privileges

/opt/clamp/bin/mysql -u root -p123clamp456 -P 3307 -e "CREATE USER 'clamp'@'%' IDENTIFIED BY '123clamp456'";
/opt/clamp/bin/mysql -u root -p123clamp456 -P 3307 -e "update mysql.user set password = PASSWORD('123clamp456') where user='clamp'";
/opt/clamp/bin/mysql -u root -p123clamp456 -P 3307 -e "GRANT ALL PRIVILEGES ON *.* TO 'clamp'@'localhost' IDENTIFIED BY '123clamp456'";
/opt/clamp/bin/mysql -u root -p123clamp456 -P 3307 -e "GRANT ALL PRIVILEGES ON *.* TO 'clamp'@'%' IDENTIFIED BY '123clamp456'";
/opt/clamp/bin/mysql -u root -p123clamp456 -P 3307 -e "flush privileges";

【讨论】:

    【解决方案2】:

    您是否意识到只需编辑 php.ini 文件即可在 XAMPP 中启用这些扩展?

    您还应该使用Imagick(又名ImageMagick)而不是GD,它更快(大约3 倍)并且功能更丰富。 Imagick 取代了 GD。

    我看不出创建自定义安装的理由,只需配置您拥有的安装即可。

    【讨论】:

    • 我知道 ImageMagick,但我的软件使用位于 GD 之上的库,对我来说足够快且足够丰富。
    【解决方案3】:

    您想创建(并可能维护和支持)一个完整的 Linux 发行版??????!!!!!!

    你在这里期待一个完整的答案????!!!!!!!!!!!!!!!!!!!!!

    没有人可以提供正确的答案 - 学习如何做到这一切需要数年时间,IIRC 目前没有单人 Linux 发行版可用。

    您可以考虑看看 Puppy Linux,它带有许多用于生成自定义安装的工具。

    另外,构建参考实现然后将其作为虚拟机映像分发可能要简单得多(我最近开始使用免费的VirtualBox,但还有其他几个 - Bochs、VMWare ....)。

    尽管您似乎将 LAMP(从操作系统开始的所有内容)与 XAMPP(仅包含网络服务器、db、PERL 和 PHP)混淆了。

    C.

    【讨论】:

    • 我在问题中添加了说明!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 2018-01-27
    • 2020-09-28
    相关资源
    最近更新 更多