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
一、移除系統自帶的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、一、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
六、
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信息界面則說明整合成功