为了账号安全,请及时绑定邮箱和手机立即绑定

CentOS 5.5(X64)下编译安装LAMP平台

标签:
MySQL


CentOS 5.5(X64)下编译安装LAMP平台

软件版本都是最新稳定版本:apache 2.2.19 mysql 5.5.14 php 5.3.6

软件源代码包存放位置                /home/baison/src

源码包编译安装位置(prefix)        /usr/local/webserver

脚本以及维护程序存放位置        /home/baison/script

1、移除系统自带的rpm包的http mysql php

yum remove httpd mysql mysql-server php php-cli php-common php-devel php-gd  -y

 

2 安装必备的开发包

yum -y install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake bzip2-devel \

ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel \

gettext-devel  pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel \

libxml2-devel curl-devel  libicu libicu-devel libmcrypt libmcrypt-devel libmhash libmhash-devel 

 

3 sudo权限配置,为了系统的安装生产环境下一般为普通用户配置sudo权限,进行系统管理

#useradd baison   //创建baison用户

#passwd baison   //为baison用户设置密码

#rpm -q sudo    //确认软件包安装

#visudo        //在配置文件最后一行添加下面一行,授予baison用户具有管理员权限

 

baison   ALL=(ALL) ALL 

 

保存退出

我们一般登录系统进行维护的时候不适用root,防止权限过大误操作造成系统数据丢失,所以我们一般使用普通用户登录系统,然后需要root权限加上sudo就会有root权限

#su –   baison  //切换baison用户进行编译安装

cd /home/baison

mkdir src script   //创建二个目录分别放源码包和脚本

mkdir /usr/local/webserver //软件安装位置

 

4同步系统时间:

#sudo vim /etc/ntp.conf  //添加下面三行内容(19行下面添加)

 

server 3.cn.pool.ntp.org

server 3.asia.pool.ntp.org

server 0.asia.pool.ntp.org

 

#sudo /sbin/service ntpd stop

#sudo /usr/sbin/ntpdate  cn.pool.ntp.org  //更新时间

#sudo /sbin/service ntpd start

sudo /sbin/chkconfig ntpd on

 

5 Install mysql编译安装mysql

 编译环境前提(mysql 5.5.x 不再用 configure,而用cmake)

#cd /home/baison/src

wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

 #tar xvf  cmake-2.8.4.tar.gz

 # cd cmake-2.8.4

 # ./configure 

sudo make

sudo make install

 

cd /home/baison/src

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.14.tar.gz/from/http://mysql.stu.edu.tw/

 # tar zxvf mysql-5.5.14.tar.gz

 # cd mysql-5.5.14

 # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \

         -DMYSQL_DATADIR=/data/mysql/data \

         -DWITH_MYISAM_STORAGE_ENGINE=1 \

         -DWITH_INNOBASE_STORAGE_ENGINE=1 \

         -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

         -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

         -DENABLED_LOCAL_INFILE=1 \

         -DDEFAULT_CHARSET=utf8 \

         -DDEFAULT_COLLATION=utf8_general_ci \

         -DEXTRA_CHARSETS=all \

         -DMYSQL_TCP_PORT=3306 

         

# sudo make 

# sudo make install

 

mysql 配置

 #userdel -r mysql

 # sudo groupadd -g 3306 mysql

 # sudo useradd -u 3306 -g mysql -M -s /sbin/nologin mysql

 #sudo  mkdir -p /data/mysql/data

 # sudo mkdir -p /data/mysql/log

 # sudo chown -R mysql:mysql /data/mysql

 # sudo chmod -R 755 /data/mysql

 # sudo cp support-files/my-medium.cnf /etc/my.cnf

 #sudo /usr/local/webserver/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/webserver/mysql --datadir=/data/mysql/data &   //初始化数据库

 # sudo cp support-files/mysql.server /etc/init.d/mysqld

 # chmod +x /etc/init.d/mysqld

 # sudo /sbin/chkconfig --add mysqld

 # sudo /sbin/chkconfig mysqld on

 #sudo /sbin/service  mysqld start

 # netstat -tnlp |grep 3306

 

# cd /usr/local/bin //进入用户的默认搜索路径下建立mysql命令的软连接,可以直接执行mysql命令

 # sudo ln -s /usr/local/webserver/mysql/bin/mysql mysql

 # sudo ln -s /usr/local/webserver/mysql/bin/mysqldump mysqldump

 # sudo ln -s /usr/local/webserver/mysql/bin/mysqladmin  mysqladmin

 

 # mysqladmin -u root -p password '123456'  //设置数据库密码

 # mysql -u root -p

 mysql> flush privileges;

 

sudo vim /etc/my.cnf  //Mysql 优化,在[mysqld]配置参数下面添加下面几行(大概37行下面),根据服务器不同配置进行不同的设置

max_allowed_packet = 500M  //先找到这行内容,修改成500

innodb_file_per_table

log-bin-trust-function-creators=1

skip-name-resolv//禁用DNS解析

sync-binlog=1

lower_case_table_names=1

max_connections = 1500 (默认100)

log-error=/data/mysql/log/mysql.err.log  //指定错误日志位置

max_heap_table_size = 256M

join_buffer_size = 128M

thread_cache_size = 1200   //线程缓存

thread_concurrency = 4  //设置成cpu数x2,只有一个设置2

thread_stack = 256K  

query_cache_type = 1   //指定是否使用查询缓冲,可以设置为0、1、2,该变量是SESSION级的变量

query_cache_size = 512M  //查询缓冲大小

query_cache_limit = 4M   //单个查询缓冲大小。默认1M

query_cache_min_res_unit = 4k    //指定分配缓冲区空间的最小单位,缺省为4K        

tmp_table_size = 256M       

myisam_sort_buffer_size = 64M

back_log = 1024//设定缓存队列数,节省连接开销

long_query_time = 3  

open_files_limit    = 10240

interactive_timeout = 120

wait_timeout = 120

external-locking = FALSE//禁用文件系统外部锁

table_cache = 1024//高速缓存大小,4G内存设置为2048

修改配置文件里下面的参数,去掉前面的#

innodb_buffer_pool_size = 2048M (默认16M,可以为系统内存50%~70%)

innodb_additional_mem_pool_size = 256M (默认2M)

innodb_log_file_size = 512M    (默认5M,innodb_buffer_pool_size的四分之一)

innodb_log_buffer_size = 16M  //设置位每秒的数据量

innodb_max_dirty_pages_pct = 90

innodb_file_io_threads = 4

innodb_thread_concurrency = 16

innodb_flush_log_at_trx_commit = 0

innodb_flush_method=O_DIRECT

innodb_open_files=4096

innodb_lock_wait_timeout = 120

innodb_file_per_table=1

 

:wq //保存退出

sudo rm -rvf  /data/mysql/data/ib_logfile* //删除原来的默认文件

sudo /sbin/service mysqld restart

 

6、apache安装

cd /home/baison/src

wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz

tar xvf httpd-2.2.19.tar.gz

cd httpd-2.2.19

./configure --prefix=/usr/local/webserver/apache \

--enable-so --enable-rewrite \

 --enable-mods-shared=most 

 

sudo make 

sudo make install

 

sudo /usr/local/webserver/apache/bin/apachectl start

sudo netstat -tnlp |grep httpd

sudo cp /usr/local/webserver/apache/bin/apachectl /etc/init.d/httpd

sudo /sbin/service  httpd start

netstat -tnlp |grep 80

sudo vim /etc/init.d/httpd (第二行添加注释信息,添加为系统服务)

 

# chkconfig: 35 61 61

# description: Apache

 

:wq 保存退出

sudo /sbin/chkconfig --add httpd

 sudo /sbin/chkconfig httpd on

cd /home/baison/src

wget http://cn.php.net/get/php-5.3.6.tar.gz/from/this/mirror

tar xvf php-5.3.6.tar.gz

cd php-5.3.6

sudo ./configure --prefix=/usr/local/webserver/php \

--mandir=/usr/local/share/man \

--infodir=/usr/local/share/info \

--with-apxs2=/usr/local/webserver/apache/bin/apxs \

--enable-cgi --with-mysql=/usr/local/webserver/mysql/ \

--with-config-file-path=/usr/local/webserver/php/etc \

--with-pdo-mysql=/usr/local/webserver/mysql \

--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config \

--enable-zip --enable-sqlite-utf8 -enable-sockets \

--enable-soap --enable-pcntl --enable-mbstring \

--enable-intl --enable-calendar --enable-bcmath \

--enable-exif --with-mcrypt --with-mhash --with-gd \

--with-png-dir --with-jpeg-dir --with-freetype-dir \

--with-libxml-dir --with-curl --with-curlwrappers \

--with-zlib   --with-openssl --with-kerberos=shared \

--with-gettext=shared --with-xmlrpc=shared 

 

sudo make

sudo make install

 

sudo cp php.ini-recommended /usr/local/webserver/php/etc/php.ini   //拷贝配置文件

整合Apache与PHP及系统初始化配置

sudo vim /usr/local/apache/conf/httpd.conf

查找AddType application/x-gzip .gz .tgz,在该行下面添加

AddType application/x-httpd-php .php

查找DirectoryIndex index.html 把该行修改成

DirectoryIndex index.html index.htm index.php

 

:wq 保存退出

测试apache和php是否整合成功,下面我们测试apache和php是否整合成功,在apache文档跟目录下新建一个小小的php程序

# cd /usr/local/webserver/apache/htdocs

# sudo vi index.php  //在index.php文件中写入下面三行

 

<?php

phpinfo();

?>

 

重启apache服务

sudo /sbin/service  httpd restart

访问,在浏览器中输入http://localhost/index.php 出现php信息界面则说明整合成功

 

©著作权归作者所有:来自51CTO博客作者张玉坡的原创作品,如需转载,请注明出处,否则将追究法律责任

linux-服务


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消