Questions about options.conf for first time CustomBuild run

gkane

Verified User
Joined
May 22, 2007
Messages
23
I believe I have used only CustomApache before, but I would like to try to update my server with CustomBuild 1.1.

I am mainly interested in determining my currently installed versions and configurations to make sure the updates with CustomBuild doesn't cause any conflicts. This is a live server, so I don't want to break anything with the updates.

I am still using PHP4 (updated to 4.4.8 with freetype 2) because my site requires it. I am working on upgrading and will eventually need to upgrade to PHP5, but not right now.

1.) My server is an Athlon 64 X2 and I think I am running x86_64 where possible (as my host originally configured it). Is there any way to check this or will CustomBuild automatically check and upgrade 64 bit installs?


Current information I can see:

CentOS release 4.4 Final

Linux version 2.6.9-55.ELsmp (gcc version 3.4.6 20060404 (Red Hat 3.4.6-8)) #1 SMP
Apache/2.2.4 (Unix)
mod_ssl/2.2.4
OpenSSL/0.9.7a
PHP/4.4.8
mod_perl/2.0.3
Perl/v5.8.5
ProFTPD 1.3.0rc2
DirectAdmin 1.29.7
Exim 4.60
MySQL 5.0.41
Named 9.2.4
ProFTPd 1.3.0rc2
sshd
vm-Pop3d 1.1.7f-DA-2
SquirrelMail version 1.4.9a
phpMyAdmin: 2.10.1
curl: 7.16.2

I followed the FAQ to install CustomBuild 1.1

Code:
cd /usr/local/directadmin
wget http://files.directadmin.com/services/custombuild/1.1/custombuild.tar.gz
tar xvzf custombuild.tar.gz
cd custombuild
./build

Then I did a preliminary edit to options.conf and

Code:
./build update_data
./build options

With the following output

Code:
Apache: 2.2.9
Dovecot: 1.1.2
exim.conf update: no
MySQL: 5.0.51a
MySQL backup: no
PHP: 4.4.8 as CLI with mail() header patch
phpMyAdmin: 2.11.8.1-all-languages
ProFTPD: 1.3.1
Atmail webmail: no
RoundCube webmail: 0.1.1
Run "clean" every time: yes
Show texts in bold: yes
SquirrelMail: 1.4.15
UebiMiau: no
Zend Optimizer: no

Code:
./build versions

Code:
Latest version of PHP (CLI): 4.4.8
Installed version of PHP (CLI): 4.4.8

Latest version of Apache: 2.2.9
Installed version of Apache: 2.2.4

Apache update is available.

Latest version of ProFTPD: 1.3.1
Installed version of ProFTPD: 1.3.0rc2

ProFTPD update is available.

Latest version of curl: 7.18.2
Installed version of curl: 7.16.2

cURL update is available.

Latest version of MySQL: 5.0.51a
Installed version of MySQL: 5.0.41

MySQL update is available.

Latest version of RoundCube webmail: 0.1.1

RoundCube webmail update is available.

Latest version of phpMyAdmin: 2.11.8.1-all-languages
Installed version of phpMyAdmin: 2.10.1

phpMyAdmin update is available.

Latest version of SquirrelMail: 1.4.15
Installed version of SquirrelMail: 1.4.9a

SquirrelMail webmail update is available.

Here is my current edited options.conf

Code:
#PHP settings. default_php possible values - 4 or 5
default_php=4
php4_cli=yes
php4_cgi=no
php5_cli=no
php5_cgi=no
zend=no

#Possible values - 4.1, 5.0 or 5.1
mysql=5.0
mysql_inst=yes
mysql_backup=no

#Possible values - 1.3, 2.0 or 2.2
apache_ver=2.2

#Web applications
phpmyadmin=yes
atmail=no
squirrelmail=yes
roundcube=yes
uebimiau=no

#Mail options
exim=no
mail-header-patch=yes
dovecot=yes

#FTP options
proftpd=yes

#Jailed shell (beta)
jail=no

#CustomBuild options
autover=yes
bold=yes
clean=yes

#Cron settings
cron=no
[email protected]
notifications=no
updates=no

#CustomBuild 1.2 settings
php6_cli=no
php6_cgi=no
php_ini=no
#Possible values - recommended or dist
php_ini_type=recommended
cleanapache=no
fileserver=1
eximconf=no

Ideally, I want to update everything to the latest version, except for PHP4 4.4.8, which I want to keep (rather than PHP5).

2.) Will the latest MySQL and phpMyAdmin or any other components have conflicts with PHP4 4.4.8? I switched MySQL to mysql_inst=yes. Is that ok?

3.) I think I might have Zend installed, but I'm not sure. How can I check this? Edit: I believe I do have Zend Optimizer installed according to phpinfo. Should I switch to zend=yes?

4.) I'm not sure if I have Dovecot or not. How can I determine this? If I don't have it, should I switch dovecot=no?

5.) I do have Squirrel Mail, but I'm not sure about atmail, roundcube or uebimiau. How can I see if I have these or not? If not, should I switch the options to atmail=no, roundcube=no, uebimiau=no?

6.) Should I switch exim=no to exim=yes?

7.) What should I do with these settings: php_ini=no, php_ini_type=recommended, cleanapache=no, eximconf=no ?

8.) Should I stop services before running ./build all d or will the script stop/restart services automatically?

Is there anything else I should check before running ./build all d?


Thank you for your help and advice.
 
Last edited:
1. CustomBuild will detect 64-bit OS.
2. There are no known problems with it.
3.
Code:
/ust/local/bin/php -v
You can set zend=yes if you need it.
4.
Code:
/usr/sbin/dovecot --version
Dovecot is very recommended :)
5.
Code:
ls /var/www/html
There you will see if you have roundcube, atmail and webmail(uebimiau) folders. You can set them (or any of them) to yes if you want to have atmail, roundcube or uebimiau installed.
6. It should be set to no, because "yes" will compile exim from the source. I don't think that you need it to be compiled from the source.
7. These options are only available in CustomBuild 1.2, so your version of CustomBuild (1.1.) doesn't take a look at these options at all.
8. No you don't, script will do everything automatically for you.

Good luck! :)
 
Good luck! :)

Thank you for the detailed reply. I decided to set dovecot=no, because I don't know anything about it and I don't have a complicated email setup. (I send email from certain scripts on the server and all incoming mail is forwarded elsewhere.)

So, I made a few small changes to options.conf (posted below) and tried to run ./build all d. It was running for quite a few minutes, but it ended with this error:

Code:
Zend/zend_ini_scanner.lo Zend/zend_alloc.lo Zend/zend_compile.lo Zend/zend_constants.lo Zend/zend_dynamic_array.lo Zend/zend_execute_API.lo Zend/zend_highlight.lo Zend/zend_llist.lo Zend/zend_opcode.lo Zend/zend_operators.lo Zend/zend_ptr_stack.lo Zend/zend_stack.lo Zend/zend_variables.lo Zend/zend.lo Zend/zend_API.lo Zend/zend_extensions.lo Zend/zend_hash.lo Zend/zend_list.lo Zend/zend_indent.lo Zend/zend_builtin_functions.lo Zend/zend_sprintf.lo Zend/zend_ini.lo Zend/zend_qsort.lo Zend/zend_multibyte.lo Zend/zend_strtod.lo Zend/zend_execute.lo sapi/apache2handler/sapi_apache2.lo sapi/apache2handler/apache_config.lo sapi/apache2handler/php_functions.lo main/internal_functions.lo -lcrypt -lcrypt -lmysqlclient -lmhash -lmcrypt -lltdl -liconv -lfreetype -lpng -lz -ljpeg -lcurl -lz -lssl -lcrypto -lresolv -lm -ldl -lnsl -lcurl -lcrypt -lcrypt  -o libphp4.la
/usr/bin/ld: /usr/local/lib/libltdl.a(ltdl.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libltdl.a(ltdl.o): could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libphp4.la] Error 1
[custombuild]#

Is this the end of "build all" or did the error cause the build to fail midway through the process? Please let me know what I can do to correct this error or rollback, if necessary.

If you need to see a log file from custombuild, please let me know the path to find it for you.


Here my final edit of options.conf:

Code:
#PHP settings. default_php possible values - 4 or 5
default_php=4
php4_cli=yes
php4_cgi=no
php5_cli=no
php5_cgi=no
zend=yes

#Possible values - 4.1, 5.0 or 5.1
mysql=5.0
mysql_inst=yes
mysql_backup=yes

#Possible values - 1.3, 2.0 or 2.2
apache_ver=2.2

#Web applications
phpmyadmin=yes
atmail=no
squirrelmail=yes
roundcube=no
uebimiau=no

#Mail options
exim=no
mail-header-patch=yes
dovecot=no

#FTP options
proftpd=yes

#Jailed shell (beta)
jail=no

#CustomBuild options
autover=yes
bold=yes
clean=yes

#Cron settings
cron=no
[email protected]
notifications=no
updates=no

#CustomBuild 1.2 settings
php6_cli=no
php6_cgi=no
php_ini=no
#Possible values - recommended or dist
php_ini_type=recommended
cleanapache=no
fileserver=1
eximconf=no

Thanks again for your help.
 

Thanks for the quick reply! :)

I did this as pointed out in your link:
Code:
yum install libtool-ltdl
yum install libtool-ltdl-devel
ln -sf /usr/lib64/libltdl.a /usr/local/lib/libltdl.a
./build php n
That seemed to work and complete without errors.

I was in the middle of ./build all d and I'm not sure of the order of all the smaller packages, so I am re-running ./build all d again now. Hopefully, this will update any of the remaining packages.
 
Well, ./build all d ended with the same error again. I guess something is reset during the ./build all d process that removes the fix you linked.

I will try to go through and update each item again individually, but do the fix before ./build php and /build zend.


Can you tell me the order of execution of these commands in ./build all d? Can I assume everything above ./build php was successfully installed/upgraded?

If ./build all d stopped during php or zend, can I finish the upgrades by only building the following one by one? Or should I start at the top (./build apache) and do the full list again to be sure?

./build php
./build proftpd
./build rewrite_confs
./build update_versions
./build used_configs
./build versions
./build webalizer
./build zend
./build zlib
./build phpmyadmin
./build squirrelmail


Code:
     ./build apache
     ./build autoconf
     ./build automake
     ./build curl
     ./build cron
     ./build dovecot
     ./build exim_conf
     ./build freetype
     ./build iconv
     ./build icu
     ./build libjpeg
     ./build libpng
     ./build libtool
     ./build libxml2
     ./build libxslt
     ./build mcrypt
     ./build mhash
     ./build mod_perl
     ./build mysql
     ./build pcre
     ./build php
     ./build proftpd
     ./build rewrite_confs
     ./build update_versions
     ./build used_configs
     ./build versions
     ./build webalizer
     ./build zend
     ./build zlib

  Applications:
     ./build phpmyadmin
     ./build atmail
     ./build roundcube
     ./build squirrelmail
     ./build uebimiau

./build versions show that some packages seem to be updated, while others aren't but it doesn't list the smaller packages (like mcrypt or zlib).

Code:
./build versions
Latest version of PHP (CLI): 4.4.8
Installed version of PHP (CLI): 4.4.8

Latest version of Apache: 2.2.9
Installed version of Apache: 2.2.9

Latest version of ProFTPD: 1.3.1
Installed version of ProFTPD: 1.3.0rc2

ProFTPD update is available.

Latest version of PCRE: 7.7
Installed version of PCRE: 7.7

Latest version of curl: 7.18.2
Installed version of curl: 7.18.2

Latest version of FreeType: 2.3.7
Installed version of FreeType: 2.3.7

Latest version of MySQL: 5.0.51a
Installed version of MySQL: 5.0.51a

Latest version of Zend Optimizer: 3.3.3
Installed version of Zend Optimizer: 3.2.8

Zend update is available.

Latest version of phpMyAdmin: 2.11.8.1-all-languages
Installed version of phpMyAdmin: 2.10.1

phpMyAdmin update is available.

Latest version of SquirrelMail: 1.4.15
Installed version of SquirrelMail: 1.4.9a

SquirrelMail webmail update is available.

If you want to update all the available versions run: ./build update_versions
 
Last edited:
Ok, well I tried to re-install one-by-one according to this list (and doing the fix before php).

Please have a look and see if I missed anything.

For the applications, phpMyAdmin and SquirrelMail, from the console output it seems they were only downloaded, but not installed. Is there another command I can use to install these, or should they be working after the ./build command alone?

Am I correct in assuming that ./build php n will also build zend according to the options.conf setting, so I do not have to also do ./build zend separately? EDIT: ./build versions showed that a zend update was available, so I did run ./build zend on its own.

Thank you.

Key:
GREEN installed ok
RED skipped, did not attempt to install
ORANGE ran build, but not sure of results

Other options:
./build apache* ok
./build autoconf* ok
./build automake* ok
./build curl* ok

./build cron X no
./build dovecot X no
./build exim_conf X no

./build freetype* ok
./build iconv* ok
./build icu* ok
./build libjpeg* ok
./build libpng* ok
./build libtool* ok
./build libxml2* ok
./build libxslt* ok
./build mcrypt* ok
./build mhash* ok

./build mod_perl* warning "built against" something not found
./build mysql* ok recommend do ./build php n
./build pcre* ok
./build php* ok after fix
./build proftpd* ok

./build rewrite_confs X no
./build update_versions X no
./build used_configs X no
./build versions X no
./build webalizer X no
./build zend X skip - installed with php according to options.conf?

./build zlib* ok

Applications:
./build phpmyadmin* only saved phpMyAdmin-2.1.1.8.1-all-languages.tar.gz, did not install?
./build atmail X no
./build roundcube X no

./build squirrelmail* only saved squirrelmail-1.4.15.tar.gz, did not install?
./build uebimiau X no
 
Last edited:
phpMyAdmin and SquirrelMail do not show any output as "Installation is done." or anything like it. If they didn't throw any error that means they are installed without any problems and you can access the new versions :) However, you can place a "Feature request" if you want to get more output from them in the future. "./build zend" is only included in "./build all" and not "./build php". If you have more questions - feel free to ask me.
 
smtalk, thank you for all your help.

I wonder if you can help me with some new problems. I used Wael's (@how@) update.script from this thread:

http://www.directadmin.com/forum/showthread.php?t=22587

I wanted to update OpenSSL and OpenSSH, so I did:

./update.script OPENSSL
./update.script OPENSSH

Both of these completed successfully.

After these, I wanted to use custombuild to rebuild ProFTPD, PHP and Apache.

I tried ./build proftpd but I got this error (the build completed, but there was an error when restarting):

Code:
cd include/ && make install
make[1]: Entering directory `/usr/local/directadmin/custombuild/proftpd-1.3.1/include'
make[1]: Leaving directory `/usr/local/directadmin/custombuild/proftpd-1.3.1/include'
test -z """" || (cd locale/ && make install)
Done proftpd.
Restarting ProFTPd.
Shutting down proftpd:                                     [  OK  ]
Starting proftpd:  - mod_tls/2.1.2: compiled using OpenSSL version 'OpenSSL 0.9.8h 28 May 2008' headers, but linked to OpenSSL version 'OpenSSL 0.9.7a Feb 19 2003' library
 - Fatal: unable to load module 'mod_tls.c': Operation not permitted
                                                           [FAILED]

I found this discussion on another site, but I'm not sure if it will work to fix the problem and I don't know how to make the changes to custombuild:

openssl upgrade breaks proftpd
http://bugs.proftpd.org/attachment.cgi?id=2710&action=edit


Even after that error, I decided to continue the updates. So I tried the php fix, then ./build php n. This build stopped with an error:

Code:
Zend/zend_execute_API.lo Zend/zend_highlight.lo Zend/zend_llist.lo Zend/zend_opcode.lo Zend/zend_operators.lo Zend/zend_ptr_stack.lo Zend/zend_stack.lo Zend/zend_variables.lo Zend/zend.lo Zend/zend_API.lo Zend/zend_extensions.lo Zend/zend_hash.lo Zend/zend_list.lo Zend/zend_indent.lo Zend/zend_builtin_functions.lo Zend/zend_sprintf.lo Zend/zend_ini.lo Zend/zend_qsort.lo Zend/zend_multibyte.lo Zend/zend_strtod.lo Zend/zend_execute.lo sapi/cli/php_cli.lo sapi/cli/getopt.lo main/internal_functions_cli.lo -lcrypt -lcrypt -lmysqlclient -lmhash -lmcrypt -lltdl -liconv -lfreetype -lpng -lz -ljpeg -lcurl -lz -lssl -lcrypto -lresolv -lm -ldl -lnsl -lcurl -lcrypt -lcrypt  -o sapi/cli/php
ext/openssl/openssl.lo(.text+0x5c31): In function `zif_openssl_seal':
/usr/local/directadmin/custombuild/php-4.4.8/ext/openssl/openssl.c:2885: undefined reference to `EVP_CIPHER_CTX_block_size'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

Because of these errors, I did not try to build Apache, so it may be unable to work with the new Openssl.

Any suggestions for me? Can custombuild for ProFTPD, PHP and Apache2 work with Openssl 0.9.8h and Openssh 5.1p1? If not, how can I revert to the old Openssl 0.9.7a and old Openssh?

I will also link this post in the update.script thread.

Thank you.
 
Last edited:
update.script installs them in a different path, so you have 2 versions of openssl and openssh on your server. One in /usr and another in /usr/local. Why don't you use openssl and openssh that come with your OS?
 
update.script installs them in a different path, so you have 2 versions of openssl and openssh on your server. One in /usr and another in /usr/local. Why don't you use openssl and openssh that come with your OS?
Ok, so I can revert back to my old versions of OpenSSL and OpenSSH by reinstalling the versions in /usr/local? Could you please tell me the commands to revert to my old OpenSSL and OpenSSH, or point me to a link that has the instructions?

I was under the mistaken impression that update.script would update CentOS.

I wanted to update OpenSSL and OpenSSH to have the latest security and bug fix patches. How can I update the the CentOS versions?

Thanks again for all you advice and assistance.
 
Last edited:
Can anyone please point me in the right direction for the commands to safely uninstall the update.script versions of OpenSSL and OpenSSH and revert to my old versions, so I can rebuild ProFTPD and PHP?

I would like to revert to the older versions without breaking or losing my SSH connection, since I do not have physical access to the machine.

My FTP has been broken for days now, since the update.script is incompatible with the custombuild versions of ProFTPD, PHP and (I assume) Apache.

Thank you.
 
Last edited:
Thanks to smtalk's advice in another thread, I think I have resolved the problem.

See this post for details

I went ahead and did the following:

Code:
yum install openssl openssl-devel -y

That gave me an error:

Code:
Transaction Check Error:   file /usr/share/man/man8/ext2online.8.gz from install of e2fsprogs-1.35-12.11.el4_6.1 conflicts with file from package e2fsprogs-1.35-12.5.el4

So, I did this:

Code:
rpm -e --nodeps --allmatches e2fsprogs

Then again:

Code:
yum install openssl openssl-devel -y

Which was successful. Then:

Code:
yum install openssh -y

service sshd restart

Then I went back to custombuild to build ProFTPD, PHP and Apache.

Code:
./build proftpd

yum install libtool-ltdl
yum install libtool-ltdl-devel
ln -sf /usr/lib64/libltdl.a /usr/local/lib/libltdl.a
./build php n

./build apache

Everything seems to have completed without errors. My FTP service and everything else seems to be working fine once again.

Thank you for your assistance.
 
Back
Top