源代码搭建LAMP

                源代码搭建LAMP

安装依赖包

        由于整个环境会涉及比较多的依赖关系包,所以我们先将一些依赖包装上。(根据不同
的环境可能不仅限于这些包)

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

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 支持从本地文件导入数据库

编译 apache

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 


编译 php

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" 多线程优化。

安装 php 扩展模块工具

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与 php集成

修改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

测试 PHP 并提高安全性

在网站根目录放置 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

登录 xcache 管理页面查看 xcache 状态

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,自行通过帮助安装配置discuz。

本文出自 “linux集群技术博客” 博客,转载请与作者联系!

你可能感兴趣的:(lamp)