由于整个环境会涉及比较多的依赖关系包,所以我们先将一些依赖包装上。(根据不同
的环境可能不仅限于这些包)
gcc gcc-c++ flex bison autoconf automake libpng-devel libjpeg-devel freetype-devel openjpeg-libs
fontconfig-devel libXpm-devel cmake ncurses-devel apr-devel pcre-devel apr-util-devel openssl-devel
libxml2-devel curl-devel
除了这些redhat 光盘自带的包以外,还有一些其他的源码包。
1.GD2
tar xf gd-2.0.34.tar.gz
cd gd-2.0.34
./configure --prefix=/usr/local/gd2
make && make install
2.apr
apr-1.4.6.tar.gz
tar xf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make
make install
tar xf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make
make install
3.linmcrypt 与mhash 是php 会依赖的一些包
tar xf libmcrypt-2.5.8.tar.bz2
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt
make&&make install
tar xf mhash-0.9.9.9.tar.bz2
cd mhash-0.9.9.9
./configure --prefix=/usr/local/mhash
make &&make install
Mysql 这些选择的是mysql5.5 版本,些版本一改原有的编译方式,使用cmake 代替
了原来的configure。
Useradd mysql
tar xf mysql-5.5.25a.tar.gz
cd mysql-5.5.25a
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/var/lib/mysql
make &&make install
cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf
mkdir /var/lib/mysql/
chown mysql. /var/lib/mysql
echo "export PATH=$PATH:/usr/local/mysql/bin/" >> ~/.bashrc
. ~/.bashrc
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql
--basedir=/usr/local/mysql --builddir=/usr/local/mysql
vi /etc/my.cnf
在[mysqld]标签下加入一行
user = mysql
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
service mysqld start
chkconfig --add mysqld
mysqladmin password 'uplooking'
常见cmake 参数介绍
cmake . -LH
查看帮助,类似于./configure –help
-DCMAKE_INSTALL_PREFIX= 指定安装主目录
-DMYSQL_DATADIR 指定库文件存放目录
-DMYSQL_UNIX_ADDR 指定socket 文件所在路径
-DDEFAULT_CHARSET 指定使用的默认字符编码
-DDEFAULT_COLLATION指定使用的默认字符规则
-DWITH_EXTRA_CHARSETS其他字符码支持
-DWITH_MYISAM_STORAGE_ENGINE编译myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE编译innodb 存储引擎
-DWITH_READLINE 增加readline 支持,通过 readline,可以方便的在命令行上面移动,增删,复制,粘贴,搜索。
-DENABLED_LOCAL_INFILE 让mysql 支持从本地文件导入数据库
tar xf httpd-2.4.2.tar.gz
cd httpd-2.4.2
./configure --prefix=/usr/local/apache2 \
--enable-cache \
--enable-cache-disk \
--enable-so \
--enable-sed \
--enable-http \
--enable-mpms-shared=all \
--enable-cgid \
--enable-rewrite \
--enable-vhost-alias \
--with-mpm=event \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/
make &&make install
/usr/local/apache2/bin/apachectl start
tar xf php-5.4.4.tar.gz
cd php-5.4.4
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--with-pdo-mysql=/usr/local/mysql/ \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-mbstring \
--with-mcrypt=/usr/local/libmcrypt/ \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash=/usr/local/mhash/ \
--enable-pcntl \
--enable-sockets \
--enable-zip \
--enable-soap \
--with-apxs2=/usr/local/apache2/bin/apxs \
--disable-cgi \
--disable-cli
make &&make install
mkdir /usr/local/php/etc
cp php.ini-production /usr/local/php/etc/php.ini
php 常见参数介绍
--with-config-file-path 与--with-config-file-scan-dir 在指定php 配置文件的路径
--with-mysql 和--with-mysqli 在指定你的mysql 的位置和它的相关工具
--with-iconv-dir,--with-freetype-dir,-with-jpeg-dir,--with-png-dir,--with-gd,--with-zlib,--with-libxml-dir 这些都是在启用对某种文件的支持
--with-curl 和--with-curlwrappers 是用于支持curl 函数,此函数允许你用不同的协议连接和沟通不同的服务器
--with-openssl,--with-mhash,--with-mcrypt 这都是和加密有关的参数,启用它们是为了让php 可以更好的支持各种加密。
"--enable-bcmath" 高精度数学运算组件。
"--enable-shmop" 和 "--enable-sysvsem" 使得你的PHP 系统可以处理相关的IPC
函数 。IPC 是一个Unix 标准通讯机制,它提供了使得在同一台主机不同进程之间可以互相
通讯的方法。
"--enable-inline-optimization" 栈堆指针和优化线程。
"--enable-pcntl" 多线程优化。
XCache 是一个开源的opcode 和var 的缓存器,其工作原理是通过内存来缓存php 的
编译结果,当用户读取php 网页时后台的php 编译器不参加编译工作,而是将内存中的结
果直接供用户读取,从而减轻频繁编译对服务器造成的压力。与同类的apc、eaccelerator
相比XCache 具有覆盖速度快、大流量/高负载的机器上运行稳定、能够快速跟进php 版本。
安装xcache 之前先安装xcache 的一个信赖包re2c。
tar xf re2c-0.13.5.tar.gz
cd re2c-0.13.5
./configure
make &&make install
之后安装xcache
tar xf xcache-2.0.1.tar.gz
cd xcache-2.0.1
/usr/local/php/bin/phpize
./configure --enable-xcache \
--with-php-config=/usr/local/php/bin/php-config \
--enable-xcache-optimizer \
--enable-xcache-assembler \
--enable-xcache-encoder \
--enable-xcache-decoder
make && make install
cp -r admin/ /usr/local/apache2/htdocs/
chmod 755 /usr/local/apache2/htdocs/admin
chmod a+r /usr/local/apache2/htdocs/admin/*
mkdir /usr/local/php/etc/php.d
cp xcache.ini /usr/local/php/etc/php.d/
vi /usr/local/php/etc/php.d/xcache.ini
找到行内容
/usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
修改为
/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
找到行
xcache.admin.user = "mOo"
xcache.admin.pass = ""
修改为
xcache.admin.user = "mark"
xcache.admin.pass = "026d9f9617a5e636b9f586eba5adbda6"
修改apache 主配置文件
vi /usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-gzip .gz .tgz
在该行下面添加
AddType application/x-httpd-php .php
找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
修改为
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
找到:
#Include conf/extra/httpd-mpm.conf
#Include conf/extra/httpd-info.conf
#Include conf/extra/httpd-vhosts.conf
#Include conf/extra/httpd-default.conf
去掉前面的“#”号,取消注释。
注意:以上 4 个扩展配置文件中的设置需要根据实际需要进行更改。
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
在网站根目录放置 phpinfo.php 脚本,检查 phpinfo 中的各项信息是否正确。
#vi phpinfo.php
<?php
phpinfo();
?>;
确认 PHP 能够正常工作后,在 php.ini 中进行设置提升 PHP 安全性。
[root @ server1 src] # vi /usr/local/php/etc/php.ini
找到:
disable_functions =
设置为:
phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,sh
ell_exec,proc_open,proc_get_status,error_log,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openl
og,syslog,readlink,sy mlink,leak,popepassthru,stream_socket_server
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
http://localhost/admin/index.php
登录用户名为mark,密码为uplooking。如需修改,可以通过
vi /usr/local/php/etc/php.d/xcache.ini
xcache.admin.user = "mark"
xcache.admin.pass = "026d9f9617a5e636b9f586eba5adbda6"
如果要获取md5 加密后的密码值可以通过访问
http://localhost/mkpassword.php
来生成加密后的密码
下载discuz,自行通过帮助安装配置discuz。
本文出自 “linux集群技术博客” 博客,转载请与作者联系!