1. What is custombuild?
Custombuild is a tool, which can install/update:
Custombuild is able to install PHP with suPHP, all versions of PHP (4,5,6), Pure-FTPd, SpamAssassin, ClamAV, ProFTPD, MySQL, Exim, RoundCube webmail, Atmail lite webmail, and so on. It has an options file, which allows you to use 2 copies of PHP, choose Apache 2.0 or 2.2, option to rewrite all configs if they got damaged etc. It can also show (./build versions) or update all needed software with only 1 command (./build update_versions). CustomBuild can send you email notifications about the updates too.
3. How to install custombuild?
1.1 end-of-life:
1.2:
When you edit options.conf file, run:
You need to run this command for the first time:
4. How to use options.conf?
Use "./build options" to see what's set in the options.conf file. The output will be something like:
PHP options:
9. Why do I get "500 Internal server error"?
Check your suPHP log for any errors. The most common issues are:
Type the following before running the setup.sh:
CustomBuild 1.1:
CustomBuild 1.2:
11. I've messed up my apache (httpd) configs, how I can restore working versions?
Type:
12. How to make PHP6, PHP5 or PHP4 default for 1 host if both are installed as CGI?
Add this to .htaccess for PHP4 as default:
Add this to .htaccess for PHP5 as default:
Add this to .htaccess for PHP6 as default:
13. How to make PHP6, PHP5 or PHP4 default for 1 host if it's installed as CLI?
Add the following code to .htaccess:
14. How to update everything what's needed?
Firstly, you need to run:
To fetch the latest versions file.
Run this if you want to look what updates are available:
Run this if you want to update everything what's possible:
15. I have installed PHP6 (or PHP5, PHP4) as CGI. How do I need configure them?
PHP4 configuration file is located here: /usr/local/etc/php4/cgi/php.ini
PHP5 configuration file is located here: /usr/local/etc/php5/cgi/php.ini
PHP6 configuration file is located here: /usr/local/etc/php6/cgi/php.ini
suPHP configuration file is located here: /usr/local/suphp/etc/suphp.conf
16. I have installed PHP6 (or PHP5, PHP4) as CGI. Where can I find the bin file?
PHP4: /usr/local/php4/bin/php
PHP5: /usr/local/php5/bin/php-cgi
PHP6: /usr/local/php6/bin/php-cgi
17. I have installed both PHP5 and PHP6 (or PHP4) as CGI, but I see a CLI version in /usr/local/bin/php. Why?
CLI version of PHP is needed for DirectAdmin. It must exist as CLI for the DirectAdmin skins.
18. When I restart apache I get this error: Invalid command 'suPHP_UserGroup'. How can I solve it?
Probably you had compiled suPHP manually with --with-setid-mode=owner. You need to compile it again with --with-setid-mode=paranoid, or do:
19. I have installed PHP6 (or PHP5, PHP4) as CGI, but I can not use IP/~user now. Why?
http://help.directadmin.com/item.php?id=176
20. I have installed PHP as CGI and I get the "Invalid command 'php_admin_flag', perhaps misspelled or defined by a module not included in the server configuration" error now. What do I need to do?
You have an old copy of DirectAdmin templates that only work with PHP as CLI. You need to update your copy of DirectAdmin and execute this command:
21. How to fix "gcc: /usr/lib/mysql/libmysqlclient.so: No such file or directory"?
For 64-bit OS:
22. I have installed PHP as CGI and I get some errors when trying to use the webmail. Why?
You get them because some folders/files are owned by apache, and they need to be owned by the user. Use this to fix the problem:
Squirrelmail:
Uebimiau (/webmail):
Roundcube:
23. Is it possible to use custom configuration files for PHP, Apache, SuPHP?
Yes it is, CustomBuild checks for "custom" directory in /usr/local/directadmin/custombuild. So, just use:
It will create custom directory for you, and now you can just edit configuration files from the custom directory. If you want - you can have only 1 custom configuration file, all the others will be used from "configure" directory then (and will be updated with "./build update").
24. I made a script that installs apache modules automatically, but I need to include their settings into the httpd.conf file. Is there an easy way to do that?
CustomBuild creates ability to include modules settings easily into the apache configuration file. You just need to create a file in /etc/httpd/conf/extra (or the other directory) and include it in /etc/httpd/conf/extra/httpd-includes.conf. It will automatically load your settings and CustomBuild won't rewrite the file with "./build rewrite_confs". If you need a custom PHP or Apache configuration file - just upload it to custom directory. E.g. if you have /usr/local/directadmin/custombuild/custom/ap2/configure.php5 file it will use it instead of /usr/local/directadmin/custombuild/configure/ap2/configure.php5.
25. How to fix "configure: error: Size of "void *" is less than size of "long""?
You do not have /usr/local/lib in /etc/ld.so.conf file. Use the following commands to fix the problem:
26. Is it possible to see what configuration files CustomBuild is using at the moment?
Yes, it is. CustomBuild has a new feature now:
It will show something like:
27. I can not start apache because of "Invalid command 'suPHP_Engine', perhaps misspelled or defined by a module not included in the server configuration" error. What is wrong?
You have suPHP compiled in "owner" instead of "paranoid" mode. Use the following command to fix the problem:
28. Is it possible to change an option without editing options.conf file?
Yes, it is. Just run:
29. Is it possible to make PHP more secure using the CustomBuild script?
Yes, it is. You need to run "./build secure_php". At the moment it disables some dangerous PHP functions as:
If you have any requests for the FAQ - feel free to post them into this thread.
Custombuild is a tool, which can install/update:
- Apache 1.3, 2.0, 2.2 or 2.4
- AWstats
- Autoconf
- Automake
- ClamAV
- cURL
- Dovecot
- Exim configuration files
- FreeType
- GD
- ionCube loaders
- libiconv
- libjpeg
- libpng
- libmcrypt
- libmhash
- mod_perl
- MySQL
- PHP (with or without suPHP) 4, 5 or 6
- ProFTPD
- Pure-FTPd
- SpamAssassin
- Webalizer
- Zend Optimizer
- Zlib
- Atmail Open webmail
- Roundcube webmail
- Squirrelmail webmail
- phpMyAdmin
- UebiMiau webmail
Custombuild is able to install PHP with suPHP, all versions of PHP (4,5,6), Pure-FTPd, SpamAssassin, ClamAV, ProFTPD, MySQL, Exim, RoundCube webmail, Atmail lite webmail, and so on. It has an options file, which allows you to use 2 copies of PHP, choose Apache 2.0 or 2.2, option to rewrite all configs if they got damaged etc. It can also show (./build versions) or update all needed software with only 1 command (./build update_versions). CustomBuild can send you email notifications about the updates too.
3. How to install custombuild?
1.1 end-of-life:
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
Code:
cd /usr/local/directadmin
wget http://files.directadmin.com/services/custombuild/1.2/custombuild.tar.gz
tar xvzf custombuild.tar.gz
cd custombuild
./build
Code:
./build update_data
Code:
./build all d
- Do not set both CLI and CGI of the same PHP version to "yes".
- After the changes every time run "./build update_data"
Use "./build options" to see what's set in the options.conf file. The output will be something like:
6. What each option does in options.conf?Apache: 1.3.37
Dovecot: 1.0.3
MySQL: 5.0.45
PHP: 5.2.3 as CLI and 4.4.7 as CGI with mail() header patch
Run "clean" every time: yes
PHP options:
- default_php - this option is only used when 2 versions of PHP are installed on the system. Possible values: 4 (available only in 1.1 version of the CustomBuild scip), 5, 6 (available in 1.2 version of the CustomBuild script) (default: the latest version of PHP)
- php5_ver - select PHP5 branch. Possible values: 5.2, 5.3 (default: 5.2)
- phpX_cli - install/update PHP as CLI (default option) using "./build php" or "./build all". Possible values: yes/no (default: yes (for the latest version of PHP).
- phpX_cgi - install/update PHP as CGI using "./build php" or "./build all". Possible values: yes/no (default: no).
- php_ini - update PHP configuration file using "./build php-ini" or "./build all". Possible values: yes/no (default: no). This option is only available from CustomBuild 1.2.
- php_ini_type - this option is used to set what type of php.ini file CustomBuild needs to use while executing "./build php-ini". Possible values: dist/recommended (default: recommended). This option is only available from CustomBuild 1.2.
- ioncube - install/update ionCube using "./build ioncube" or "./build all". Possible values: yes/no (default: no).
- zend - install/update Zend Optimizer using "./build zend" or "./build all". Possible values: yes/no (default: no).
- mysql - this option is used to choose the version of MySQL. Possible values: 4.1, 5.0, 5.1, 5.5 (default: 5.0).
- mysql_inst - install/update MySQL using "./build mysql" or "./build all". Possible values: yes/no (default: no).
- mysql_backup - backup MySQL every time with MySQL update. Possible values: yes/no (default: yes).
- apache_ver - this option is used to choose the version of Apache. Install/update it using "./build apache". Possible values: 1.3, 2.0, 2.2 (default: 2.2).
- phpmyadmin - install/update phpMyAdmin using "./build phpmyadmin" or "./build all". Possible values: yes/no (default: yes).
- atmail - install/update Atmail Open webmail using "./build atmail" or "./build all". Possible values: yes/no (default: no).
- squirrelmail - install/update SquirrelMail webmail using "./build squirrelmail" or "./build all". Possible values: yes/no (default: yes).
- roundcube - install/update RoundCube webmail using "./build roundcube" or "./build all". Possible values: yes/no (default: yes).
- uebimiau - install/update UebiMiau webmail using "./build uebimiau" or "./build all". Possible values: yes/no (default: no).
- exim - install/update Exim using "./build exim" or "./build all". Possible values: yes/no (default: no).
- clamav - install/update ClamAV using "./build clamav" or "./build all". Possible values: yes/no (default: no).
- mail-header-patch - use PHP mail() header patch whith PHP installation/update. Possible values: yes/no (default: yes). No longer available since PHP 5.3.0.
- dovecot - install/update Dovecot using "./build dovecot" or "./build all". Possible values: yes/no (default: yes).
- eximconf - update exim configuration file (/etc/exim.conf) using "./build exim_conf" or "./build all". Possible values: yes/no (default: no).
- jail - install/update jailed shell programs using "./build all_jail". Possible values: yes/no (default: no).
- proftpd - install/update ProFTPD using "./build proftpd" or "./build all". Possible values: yes/no (default: yes).
- pureftpd - install/update Pure-FTPD using "./build pureftpd" or "./build all". Possible values: yes/no (default: no).
- awstats - install/update AWstats using "./build awstats" or "./build all". Possible values: yes/no (default: no).
- webalizer - install/update webalizer using "./build webalizer" or "./build all". Possible values: yes/no (default: yes).
- cron - enable crontab for CustomBuild, use "./build cron" to set-up. Possible values: yes/no (default: no).
- email - set email for notifications. Possible values: any email address (default: [email protected]).
- notifications - enable email notifications about the updates. Possible values: yes/no (default: yes).
- da_autoupdate - Update DirectAdmin automatically when update is available. Possible values: yes/no (default: yes).
- updates - update software/applications automatically when updates are available. Possible values: yes/no (default: no).
- webapps_updates - update (automatically) only web applications (as phpMyAdmin, RoundCube, Atmail, SquirrelMail etc.). Possible values: yes/no (default: no).
- custombuild - version of the CustomBuild script that you want to use. Possible values: 1.1/1.2 (default: your version).
- autover - this option is used to download versions.txt every time with every "./build" command. Possible values: yes/no (default: no).
- bold - turn bolded text on/off. Possible values: yes/no (default: yes).
- clean - execute "./build clean" every time. Possible values: yes/no (default: yes).
- cleanapache - exclude apache from "./build clean". Possible values: yes/no (default: no). This option is only available from CustomBuild 1.2.
- clean_old_tarballs - execute "./build clean_old_tarballs" every time. Possible values: yes/no (default: yes).
- clean_old_webapps -execute "./build clean_old_webapps" every time. Possible values: yes/no (default: yes).
- fileserver - this option is used to set the server to download files from. Value "1" means files.directadmin.com server and value "2" means files4.directadmin.com server (Europe). Possible values: 1/2 (default: 1). This option is only available from CustomBuild 1.2.
- Do not set chmod >755 to directories or files in them.
Code:
/var/log/suphp.log
Check your suPHP log for any errors. The most common issues are:
- file or directory has chmod >755
- file or directory is not owned by the user.
Type the following before running the setup.sh:
CustomBuild 1.1:
Code:
echo "1.1" > /root/.custombuild
Code:
echo "1.2" > /root/.custombuild
Type:
Code:
./build rewrite_confs
Add this to .htaccess for PHP4 as default:
Code:
<FilesMatch "\.(inc|php|php3|php4|php5|php6|phtml|phps)$">
AddHandler x-httpd-php4 .php
</FilesMatch>
Code:
<FilesMatch "\.(inc|php|php3|php4|php5|php6|phtml|phps)$">
AddHandler x-httpd-php5 .php
</FilesMatch>
Code:
<FilesMatch "\.(inc|php|php3|php4|php5|php6|phtml|phps)$">
AddHandler x-httpd-php6 .php
</FilesMatch>
Add the following code to .htaccess:
Code:
<FilesMatch "\.(inc|php|php3|php4|php5|php6|phtml|phps)$">
AddHandler application/x-httpd-php .php
</FilesMatch>
Firstly, you need to run:
Code:
./build update
Run this if you want to look what updates are available:
Code:
./build versions
Code:
./build update_versions
PHP4 configuration file is located here: /usr/local/etc/php4/cgi/php.ini
PHP5 configuration file is located here: /usr/local/etc/php5/cgi/php.ini
PHP6 configuration file is located here: /usr/local/etc/php6/cgi/php.ini
suPHP configuration file is located here: /usr/local/suphp/etc/suphp.conf
16. I have installed PHP6 (or PHP5, PHP4) as CGI. Where can I find the bin file?
PHP4: /usr/local/php4/bin/php
PHP5: /usr/local/php5/bin/php-cgi
PHP6: /usr/local/php6/bin/php-cgi
17. I have installed both PHP5 and PHP6 (or PHP4) as CGI, but I see a CLI version in /usr/local/bin/php. Why?
CLI version of PHP is needed for DirectAdmin. It must exist as CLI for the DirectAdmin skins.
18. When I restart apache I get this error: Invalid command 'suPHP_UserGroup'. How can I solve it?
Probably you had compiled suPHP manually with --with-setid-mode=owner. You need to compile it again with --with-setid-mode=paranoid, or do:
Code:
cd /usr/local/directadmin/custombuild
./build update
./build clean
./build suphp
http://help.directadmin.com/item.php?id=176
20. I have installed PHP as CGI and I get the "Invalid command 'php_admin_flag', perhaps misspelled or defined by a module not included in the server configuration" error now. What do I need to do?
You have an old copy of DirectAdmin templates that only work with PHP as CLI. You need to update your copy of DirectAdmin and execute this command:
Code:
echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue
Code:
cp /usr/lib/libmysqlclient.* /usr/lib/mysql/
Code:
cp /usr/lib/libmysqlclient.* /usr/lib64/mysql/
You get them because some folders/files are owned by apache, and they need to be owned by the user. Use this to fix the problem:
Squirrelmail:
Code:
chown -R webapps:webapps /var/www/html/squirrelmail
Code:
chown -R webapps:webapps /var/www/html/webmail
Code:
chown -R webapps:webapps /var/www/html/roundcube
Yes it is, CustomBuild checks for "custom" directory in /usr/local/directadmin/custombuild. So, just use:
Code:
cd /usr/local/directadmin/custombuild
cp -Rp configure custom
24. I made a script that installs apache modules automatically, but I need to include their settings into the httpd.conf file. Is there an easy way to do that?
CustomBuild creates ability to include modules settings easily into the apache configuration file. You just need to create a file in /etc/httpd/conf/extra (or the other directory) and include it in /etc/httpd/conf/extra/httpd-includes.conf. It will automatically load your settings and CustomBuild won't rewrite the file with "./build rewrite_confs". If you need a custom PHP or Apache configuration file - just upload it to custom directory. E.g. if you have /usr/local/directadmin/custombuild/custom/ap2/configure.php5 file it will use it instead of /usr/local/directadmin/custombuild/configure/ap2/configure.php5.
25. How to fix "configure: error: Size of "void *" is less than size of "long""?
You do not have /usr/local/lib in /etc/ld.so.conf file. Use the following commands to fix the problem:
Code:
touch /etc/ld.so.conf
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig
Yes, it is. CustomBuild has a new feature now:
Code:
./build used_configs
It will detect files from "custom" folder too.Apache configuration file: /usr/local/directadmin/custombuild/configure/ap2/configure.apache
PHP4 configuration file: /usr/local/directadmin/custombuild/custom/suphp/configure.php4
PHP5 configuration file: /usr/local/directadmin/custombuild/custom/ap2/configure.php5
ProFTPD configuration file: /usr/local/directadmin/custombuild/configure/proftpd/configure.proftpd
27. I can not start apache because of "Invalid command 'suPHP_Engine', perhaps misspelled or defined by a module not included in the server configuration" error. What is wrong?
You have suPHP compiled in "owner" instead of "paranoid" mode. Use the following command to fix the problem:
Code:
./build suphp
Yes, it is. Just run:
Code:
./build set option_name value
Yes, it is. You need to run "./build secure_php". At the moment it disables some dangerous PHP functions as:
Code:
exec, system, passthru, shell_exec, escapeshellarg, escapeshellcmd, proc_close, proc_open, dl, popen, show_source
Last edited: