LAMP on Mandriva
To install MySQL 5.0, we simply run:
urpmi MySQL MySQL-client libmysql15-devel
(See: Notes for details.)
By default, networking is not enabled in Mandriva 2007's MySQL package, but networking is required by ISPConfig. We can change this by commenting out the line skip-networking in
% vi /etc/my.cnf [...] # Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking [...]
Afterwards, we start MySQL:
Now check that networking is enabled:
It should show a line like this:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name [...] tcp 0 0 *:mysql-im *:* LISTEN 22188/mysqlmanager tcp 0 0 *:mysql *:* LISTEN 22196/mysqld [...]
mysqladmin -u root password yourrootsqlpassword mysqladmin -h localhost -u root password yourrootsqlpassword
to set a password for the user
root (Note: It is strongly recommended that you do not set your MySQL root password to be the same as your system root password!).
- More information on package MySQL-5+
The initscript used to start mysql has been reverted to use the one shipped by MySQL AB. This means the following changes:
MYSQLD_OPTIONS="--skip-networking"option in the
/etc/sysconfig/mysqldfile has been removed, this is now set in the
- The MySQL Instance Manager is used by default, set
/etc/sysconfig/mysqldfile to use the old mysqld_safe script.
The extra MySQL-NDB server package has been merged into the MySQL-Max package and ndb related pieces has been split into different sub packages as done by MySQL AB. The MySQL libraries and the MySQL-common sub package uses the MySQL-Max build so that no functionality required by for example the NDB parts are lost.
The MySQL-common package now ships with a default
/etc/my.cnf file that is based on the
my-medium.cnf file that comes with the source code. The
/etc/my.cnf file is constructed at build time of this package.
To connect to the Instance Manager you need to pass the correct command line options like in the following examples:
mysql -u root --password=my_password --port=2273 --protocol=TCP mysql -u root --password=my_password --socket=/var/lib/mysql/mysqlmanager.sock
Please note you also need to add a user in the
/etc/mysqlmanager.passwd file and make sure the file is owned by the user under which the Instance Manager service is running under.
You might need to
Moving the MySQL's datadir directory
By default, MySQL's datadir is placed in the /var/lib/mysql directory. However, if you are planning on using MySQL tables to store a lot of data and your /var partition is small, it might cause you problem at a later stage. In such a scenario, it is better to move the MySQL's datadir to another partition (like /home.
The steps are:
- Stop your mysql server before starting this operation
- Create the directories that will be new datadir
- chown the directory to the mysql:mysql user
- copy the files from the old datadir to the new location. However, make sure that the files named ib_arch_log_0000000000, ib_logfile0 etc. are not copied to the newer location.
- Make sure that the files and directories are owned by mysql user
- Make changes in the my.cnf to point the new datadir.
- Restart the MySQL database
- You might need to do varying degree of troubleshooting to get the server working if there is some problem
- Create a new database and verify that the files for this database are getting created in the new datadir
- After the server is running for a few days properly, get rid of the old data.
Apache2 with PHP5
urpmi apache-mod_php libphp5_common5 php-bz2 php-calendar php-ctype php-curl php-devel \ php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg \ php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap \ php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-mysql \ php-mysqli php-ncurses php-newt php-odbc php-oggvorbis php-pam_auth php-pcntl php-pcre \ php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop \ php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-sysvmsg php-sysvsem \ php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php5-ini curl \ libcurl4-devel perl-libwww-perl ImageMagick
Disable PHP Globally
(Note: If you do not plan to install ISPConfig on this server, please skip this section.)
In ISPConfig you will configure PHP on a per-website basis, i.e. you can specify which website can run PHP scripts and which one cannot. This can only work if PHP is disabled globally because otherwise all websites would be able to run PHP scripts, no matter what you specify in ISPConfig.
/etc/httpd/modules.d/70_mod_php.conf and comment out the
<IfDefine HAVE_PHP5> <IfModule !mod_php5.c> LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> <IfModule mod_mime.c> # AddType application/x-httpd-php .php # AddType application/x-httpd-php .phtml # AddType application/x-httpd-php-source .phps </IfModule> <IfModule mod_php5.c> <IfModule mod_dir.c> DirectoryIndex index.php index.phtml </IfModule> </IfModule>
/etc/httpd/conf/mime.types and comment out the following lines:
#application/x-perl perl pl #application/x-php php php3 php4
/etc/httpd/conf/httpd.conf and add the following line to the
LoadModule php5_module extramodules/mod_php5.so
(Note: For a fresh list of available modules for apache2, please visit nux.se.)
Although this line is already in
/etc/httpd/modules.d/70_mod_php.conf this is very important because otherwise the command
will report errors instead of
Syntax OK when the virtual hosts created by ISPConfig contain lines like
php_admin_flag safe_mode On or the like.)