centos5.4 源码包安装LAMP
1.卸载旧的lamp环境
命令:rpm -qa | grep httpd
说明:查看是否安装了httpd软件包
命令:netstat -tnl
说明:查看现在端口的状态,主要关注80端口(apache) 3306端口(mysql)
命令:rpm -e httpd-2.2.3-31.el5.centos --nodeps
命令:rpm -e httpd-manual-2.2.3-31.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-3.el5 --nodeps
说明:卸载mysql
命令: rpm -qa | grep php
命令: rpm -e php-ldap-5.1.6-23.2.el5_3 --nodeps
命令: rpm -e php-cli-5.1.6-23.2.el5_3 --nodeps
命令: rpm -e php-common-5.1.6-23.2.el5_3 --nodeps
命令: rpm -e php-5.1.6-23.2.el5_3 --nodeps
说明:卸载PHP
2.安装LAMP
(1).安装libxml2
cd libxml2-2.7.8/
./configure --prefix=/usr/local/libxml2
make && make install
(2).安装libmcrypt
cd ../libmcrypt-2.5.8/
./configure --prefix=/usr/local/libmcrypt
make && make install
(3).安装zlib
cd ../zlib-1.2.5/
./configure --prefix=/usr/local/zlib
make && make install
(4)安装libpng
cd ../libpng-1.5.5/
./configure --prefix=/usr/local/libpng
make && make install
(5)安装jpeg8
cd ../jpeg-8b/
./configure --prefix=/usr/local/jpeg8/ --enable-shared --enable-static
make && make install
(6)安装freetype
cd ../freetype-2.4.5/
./configure --prefix=/usr/local/freetype
make
make install
如果make install时出错:rmdir: usr/local/freetype/include/freetype2/freetype/internal: 没有那个文件或目录
解决办法: mkdir /usr/local/freetype/include/freetype2/freetype/internal
然后再:make install
(7)安装autoconf
cd ../autoconf-2.68/
./configure //安装到系统库即可
make && make install
(8)安装GD库
cd ../gd-2.0.35/
./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg8/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/
make
make时出错
错误:
configure.ac:64: error: possibly undefined macro: AM_ICONV
解决方法:安装gettext
cd ../gettext-0.18/
./configure
make && make install
然后再
cd ../gd-2.0.35/
./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg8/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/
maek 又出错
make[2]: *** [gd_png.lo] Error 1
解决方法:
cd gd-2.0.35/
vi gd_png.c
找到“png.h”改成“/usr/local/libpng/include/png.h” 16行
./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg8/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/
make && make install
(9)安装apache
cd ../httpd-2.2.21/
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-zlib=/usr/local/zlib --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support
make && make install
配置:
将ServerName www.example.com:80 改为:ServerName localhost:80 并将前面的注释去掉
查看80端口是否开启
netstat -tnl|grep 80
(10)安装MySql
A.安装
mysql 5.5.16安装时需要用cmake编译,所以首先要安装cmake
cd cmake-2.8.7
./configure
make && make install
安装mysql5.5.16
groupadd mysql
useradd -r -g mysql mysql
cd ../mysql-5.5.16/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
make && make install
B.配置
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysql.server
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 用户权限信息
select * from mysql.user \G
删除非localhost的主机
DELETE FROM mysql.user WHERE Host!='localhost' AND User='';
DELETE FROM mysql.user WHERE Host='localhost.localdomain';
刷新授权表
FLUSH PRIVILEGES;
为root用户添加密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
开启root用户的远程访问(如果是本地开发的话)
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "yourpassword";
刷新授权表
FLUSH PRIVILEGES;
'%'表示任何主机都可以访问,最后面的‘yourpassword’为密码
F.关闭MySQL数据库
/usr/local/mysql/bin/mysqladmin -u root –p shutdown(如果有密码则-p 没有不需要写)
(11)安装PHP
A.安装
cd php-5.3.8
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-png-dir=/usr/local/libpng/ --with-jpeg-dir=/usr/local/jpeg8/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-zlib-dir=/usr/local/zlib/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/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
添加下面代码
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
重启apache
/usr/local/apache2/bin/apachectl restart
D.遇到错误
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的方法:
vim /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,同时取消这一行代码的注释,即去掉前面的分号就可以了。然后重启apache
(12)安装Memcached
A.安装
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之前
vim /usr/local/php/etc/php.ini
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();进行测试
(13)安装curl扩展
A.安装curl
cd curl-7.22.0/
./configure --prefix=/usr/local/curl
make && make install
B.生成curl.so
cd ../php-5.3.8(未编译时的源码包)
cd ext/curl
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
如果出错:error: Please reinstall the libcurl distribution
解决方法:yum -y install curl-devel
ubuntu解决办法:sudo apt-get install libcurl4-gnutls-dev
然后再:
./configure --with-php-config=/usr/local/php/bin/php-config
make
cp modules/curl.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626
C.修改php.ini
vim /usr/local/php/etc/php.ini
在extension=memcache.so后添加
extension=curl.so
D.重启apache
/usr/local/apache2/bin/apachectl restart
(14)安装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
禁止空密码登录的解决方法:
vim config.inc.php
将 $cfg['Servers'][$i]['AllowNoPassword'] = false;
改为 $cfg['Servers'][$i]['AllowNoPassword'] = true;
(15)安装PHP CLI
rpm -ivh gmp-4.1.4-10.el5.i386.rpm
rpm -ivh php-common-5.2.6-3.rhel5.i386.rpm
rpm -ivh php-cli-5.2.6-3.rhel5.i386.rpm
(16) 安装ssh2扩展
A.安装openssl
cd openssl-1.0.0e
./config
make && make install
B.安装libssh2
cd ../libssh2-1.3.0/
./configure
make && make install
C.安装ssh2
cd ../ssh2-0.11.3/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-ssh2
make
cp modules/ssh2.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
D.修改php.ini
vim /usr/local/php/etc/php.ini
在extension=curl.so后面添加:extension=ssh2.so
E.重启apache
/usr/local/apache2/bin/apachectl restart
(16)安装mongodb扩展
A.安装mongodb
unzip mongodb-mongo-php-driver-1.2.9-126-gab9a960.zip
cd mongodb-mongo-php-driver-ab9a960/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
cp modules/mongo.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
B.修改php.ini
vim /usr/local/php/etc/php.ini
在extension=ssh2.so后面添加:extension=mongo.so
(17)将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