LAMP源码安装

来源:互联网 发布:金鲁班软件 编辑:程序博客网 时间:2024/05/02 08:17

缺少gcc包

# # yum install glibc-headers  

# # yum install gcc-c++

缺少ncurse包

#yum list|grep ncurses

#yum -y install ncurses-devel

#yum install ncurses-devel

缺少curl包

yum install curl curl-devel

  1. 卸载旧的lamp环境
    命令:rpm -qa | grep httpd 
    说明:查看是否安装了httpd软件包
    命令:netstat -tnl
    说明:查看现在端口的状态,主要关注80端口(apache) 3306端口(mysql)
    命令:rpm -e httpd-manual-2.2.3-43.el5.CentOS --nodeps
    命令:rpm -e httpd-2.2.3-43.el5.centos --nodeps
    命令:rpm -e system-config-httpd-1.3.3.3-1.el5 --nodeps
    说明:卸载软件包, --nodeps 如果有连带关系,也强制卸载
    命令:cd /etc/httpd/
    命令:rm -rf *
    说明:到原来的apache安装目录下,将其所有的安装目录和文件都删掉
    命令:rpm -qa | grep mysql 
    命令:rpm -e mysql-5.0.77-4.el5_4.2 --nodeps
    说明:卸载mysql
    命令: rpm -qa | grep php
    命令: rpm -e php-common-5.1.6-27.el5 --nodeps
    命令: rpm -e php-ldap-5.1.6-27.el5 --nodeps
    命令: rpm -e php-cli-5.1.6-27.el5 --nodeps
    命令: rpm -e php-5.1.6-27.el5 --nodeps
    说明:卸载PHP
    2.安装LAMP
    (1).安装libxml2
    cd libxml2-2.6.30/
    ./configure --prefix=/usr/local/libxml2
    make
    make install
    (2).安装libmcrypt
    cd libmcrypt-2.5.8/
    ./configure --prefix=/usr/local/libmcrypt –enable-ltdl-install
    make && make install
    (3).安装zlib
    cd zlib-1.2.3/
    ./configure --prefix=/usr/local/zlib
    make && make install
    (4)安装libpng
    cd libpng-1.2.31/
    ./configure --prefix=/usr/local/libpng
    make && make install 
    (5)安装jpeg6
    这个软件包安装有些特殊,其它软件包安装时如果目录不存在,
    会自动创建,但这个软件包安装时需要手动创建
    mkdir /usr/local/jpeg6
    mkdir /usr/local/jpeg6/bin
    mkdir /usr/local/jpeg6/lib
    mkdir /usr/local/jpeg6/include
    mkdir -p /usr/local/jpeg6/man/man1
    cd jpeg-6b/
    ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
    make && make install 
    (6)安装freetype
    cd freetype-2.3.5/
    ./configure --prefix=/usr/local/freetype 
    make && make install
    (7)安装autoconf
    cd autoconf-2.61/
    ./configure   //安装到系统库即可
    make
    make insatll
    (8)安装GD库
    cd gd-2.0.35/
    ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib/ --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/
    make 
    make install
    (9)安装apache
    /************************************
    # Build and install apr 1.2
    cd srclib/apr
    ./configure --prefix=/usr/local/apr-httpd/
    make
    make install


# Build and install apr-util 1.2
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install

# Configure httpd
cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ 
*************************************/

cd httpd-2.2.17/
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-z=/usr/local/zlib --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support
make && make install
设置:apache(/etc/httpd/httpd.conf)
a.将LoadModule deflate_module modules/mod_deflate.so 注释掉
b.将ServerName www.linuxidc.com:80 改为:ServerName localhost:80 并将前面的注释去掉
启动apache:  /usr/local/apache2/bin/apachectl start
重启apache:  /usr/local/apache2/bin/apachectl restart
停止apache:  /usr/local/apache2/bin/apachectl stop
查看80端口是否开启
netstat -tnl|grep 80
(10)安装MySql
A.安装
groupadd mysql
useradd -g mysql mysql
./configure --prefix=/usr/local/mysql --with-extra-charsets=all
make && make install    
B.配置
//创建mysql配置文件
cp support-files/my-medium.cnf /etc/my.cnf
//用mysql用户创建授权表,创建成功后,会在/usr/local/mysql目录下生成一个var目录
cd /usr/local/mysql/
./bin/mysql_install_db --user=mysql
//将文件的所有属性改为root用户
chown -R root .
//将数据目录的所有属性改为mysql用户 
chown -R mysql var 
//将组属性改为mysql组 
chgrp -R mysql .  
C.开启mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &    //////////////////// 
说明:‘&’表示在后台运行 
//查看3306是否开启
netstat -tnl
//查看mysql版本信息
/usr/local/mysql/bin/mysqladmin version
//查看所有mysql参数 
bin/mysqladmin variables       
D.安全性
进入mysql 此时密码为空
/usr/local/mysql/bin/mysql -uroot 
查看mysql 用户权限信息
msql>select * from mysql.user \G
删除非localhost的主机
DELETE FROM mysql.user WHERE Host!='localhost' AND User='';
刷新授权表
FLUSH PRIVILEGES;
为root用户添加密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); 
E.开启root用户的远程访问(如果是本地开发的话)
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql>flush privileges;
'%'表示任何主机都可以访问,最后面的‘root’为密码
F.关闭MySQL数据库 
bin/mysqladmin -u root –p shutdown(如果有密码则-p 没有不需要写)
(11)安装PHP
A.安装
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-apxs2=/usr/local/webserver/apache2/bin/apxs --with-mysql=/usr/local/webserver/mysql/ --with-libxml-dir=/usr/local/webserver/libxml2/ --with-png-dir=/usr/local/webserver/libpng/ --with-jpeg-dir=/usr/local/webserver/jpeg6/ --with-freetype-dir=/usr/local/webserver/freetype/ --with-gd=/usr/local/webserver/gd2/ --with-zlib-dir=/usr/local/webserver/zlib/ --with-mcrypt=/usr/local/webserver/libmcrypt/ --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --enable-soap  --enable-mbstring=all --enable-sockets
make && make install
B.生成配置文件
cp php.ini-development /usr/local/php/etc/php.ini
C.配置
vim /etc/httpd/httpd.conf
添加下面代码
<IfModule mod_php5.c>
 AddType application/x-httpd-php .php
 AddType application/x-httpd-php .php .phtml .php3
 AddType application/x-httpd-php-source .phps
 </IfModule>
重启apache 
#/usr/local/apache2/bin/apachectl restart
C.遇到错误
#/usr/local/apache2/bin/apachectl restart
a.httpd: Syntax error on line 57 of /etc/httpd/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
原因:是Linux有一个SELinux保护模式引起的。 
解决办法: 
关闭SELINUX的方法: 
vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启 :
b.设置php.ini时区
<?
phpinfo();
?>
报错:
Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/apache2/htdocs/test.php on line 2
解决方法:
在php.ini中设置date.timezone的值为PRC,设置好以后的为:date.timezone=PRC,同时取消这一行代码的注释,即去掉前面的分号就可以了。
(12)安装phpmyadmin
cp -a phpMyAdmin-3.3.8.1-all-languages /usr/local/apache2/htdocs/phpmyadmin
cd /usr/local/apache2/htdocs/phpmyadmin/
cp config.sample.inc.php config.inc.php 
打开浏览器,在地址栏里输入:http://localhost/phpmyadmin/index.php
(13)安装Memcached
A.安装
wget http://pecl.php.net/get/memcache-2.2.6.tgz
gzip -d memcache-2.2.6.tgz
tar xvf memcache-2.2.6.tar
cd memcache-2.2.6
/usr/local/php/bin/phpize
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
make && make install
B.将memcache加入php扩展
注意:安装完后会出现:Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
在php.ini最后加入下面两行,需在END之前
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension=memcache.so
C.重启apache
/usr/local/apache2/bin/apachectl restart
D.用phpinfo();进行测试
<?php
phpinfo();
?>

/*******************************/ 
Linux下PHP扩展pdo_mysql

1.进入PHP源码包ext/pdo目录

cd ext/pdo

2.执行/usr/local/php/bin/phpize[假设PHP的安装目录为/usr/local/php]

/usr/local/php/bin/phpize
3.配置扩展pdo

./configure \
--with-php-config=/usr/local/php/bin/php-config \
--enable-pdo=shared

4.编译pdo

make

5.安装

make install
[root@localhost pdo]# make install
成功则出现
Installing shared extensions:     /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
Installing header files:          /usr/local/php//include/php/
Installing PDO headers:          /usr/local/php//include/php/ext/pdo/

说明在/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo.so文件

6.在php配置文件中加上

extension=”/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/pdo.so”

7.在PHP源码包中进入pdo_mysql

cd ext/pdo_mysql

8.执行/usr/local/php/bin/phpize

/usr/local/php/bin/phpize

9.配置pdo_mysql[假设Mysql的安装目录为/usr/local/mysql]

./configure \
--with-php-config=/usr/local/php/bin/php-config \
--with-pdo-mysql=/usr/local/mysql

10.编译pdo_mysql

make

11.安装pdo_mysql

make install

成功则出现

[root@localhost pdo_mysql]# make install
Installing shared extensions:     /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/

说明的/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo_mysql.so文件

12.在php配置文件中加上
extension=”/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so”

13.重启apache[假设apache的安装目录为/usr/local/apache2]

/usr/local/apache2/bin/apachectl restart

14.扩展成功,尽情享受pdo的强大功能吧!

/*******************************/
安装curl扩展


假如原先编译的php目录在/usr/local/php5目录下;
apache在/usr/local/apache2目录下;
php源代码在/home/kevin125/src目录下。

如果实际目录与假定的目录不一致,则在下面的命令中做调整。

1. 找到当前运行的php版本的源代码目录,如 php-5.2.10。

进入curl扩展库目录。
$cd /home/kevin125/src/php-5.2.10/ext/curl

2. 调用phpize程序生成编译配置文件。
$/usr/local/php5/bin/phpize

3. 编译扩展库,分别执行下面的configure和make命令。
$./configure –with-php-config=/usr/local/php5/bin/php-config

configure这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make

make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,如 /home/kevin125/src/php-5.2.10/ext/curl/modules/curl.so

4. 配置php.ini文件
将编译好的扩展库文件复制到apache2 modules目录下。
$cp /home/kevin125/src/php-5.2.10/ext/curl/modules/curl.so /usr/local/apache2/modules/

找到php.ini文件所在目录位置,然后编辑。可以通过查看phpinfo信息来确定php.ini文件位置。
在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下
extension_dir = “/usr/local/apache2/modules/”

在php.ini的设置扩展库位置,设置要添加的扩展库。
extension=curl.so

以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下,
然后再在这个位置,另取一行将编译后的扩展库文件名加上即可

5. 重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。

添加其他模块类似。

Good Lucky!.





/*****************************/


(14)设置apache的虚拟主机 
vim /etc/httpd/extra/httpd-vhosts.conf
添加下面内容
<VirtualHost *:80>
   ServerName www.linuxidc.com
   DocumentRoot "/usr/local/apache2/htdoc"
</VirtualHost>
(15)配置hosts
vim /etc/hosts
添加自己的hosts
(16)如果在远程无法连接大apache服务器而在本地却可以,则很有可能是因为开启了防火墙,需关闭
系统->管理->安全级别和防火墙
(17)安装PHP CLI
yum install php-cli
(18)将apache mysql加入开机启动
echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local

0 0
原创粉丝点击