1. 程式人生 > >CentOS 5.9裸機編譯安裝搭建LAMP

CentOS 5.9裸機編譯安裝搭建LAMP

現在 local 搭建lamp redhat compile ins upd amp package

Linux系統:CentOS 5.9,查看CentOS版本,命令如下:

[[email protected] /]# cat /etc/redhat-release
CentOS release 5.9 (Final)

以前裝過MySQL和PHP的機器,最好是先查看一下MySQL或者PHP是否未卸載:

[[email protected] /]# rpm -qa|grep mysql
[[email protected] /]# 

↑ 結果表明MySQL未安裝或者已經被卸載,如果已安裝,則可以選擇保留或者卸載,卸載命令:yum remove mysql


[[email protected] /]# rpm -qa|grep php
[[email protected] /]# 

↑結果表明PHP未安裝或者已經被卸載

Apache同上述……

到SourceForge(http://sourceforge.net/ 強大的SF,下載很方便,頂一個!)下載安裝包,Apache搜索“Apache HTTP Server”、MySQL直接搜索“MySQL”,phpMyAdmin搜索“phpMyAdmin”至於PHP嘛,還是建議去php.net下載,:)

下載完成傳到Linux服務器上……也可以直接在服務器上用wget命令下載,可是找鏈接地址還得搜索,費勁,不如直接去下來得方便。。。個人意見,勿噴,,

開始安裝:

解壓各個包到 /usr/src 目錄下:

tar zxvf [文件名.tar.gz] -C /usr/src (C必須大寫,否則報錯!)

例如,解壓php:

[[email protected] home]# tar zxvf php-xxxx.tar.gz -C /usr/src

其他包相同……

一.安裝MySQL

1.程序安裝

MySQL 5.5.x版本需要先安裝 bison和cmake :

bison直接用yum 安裝就好:

[[email protected] home]# yum install bison

安裝cmake:

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

下載後同樣解壓到 /usr/src 目錄下

[[email protected] home]# cd /usr/src/cmake-2.8.4/
[[email protected] home]# ./configure

執行上述命令後發現報錯:

[[email protected] cmake-2.8.6]# ./configure
---------------------------------------------
CMake 2.8.6, Copyright 2000-2009 Kitware, Inc.
---------------------------------------------
Error when bootstrapping CMake:
Cannot find appropriate C compiler on this system.
Please specify one using environment variable CC.
See cmake_bootstrap.log for compilers attempted.

---------------------------------------------
Log of errors: /usr/src/cmake-2.8.6/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------

原來是在系統上找不到合適的C編譯器,啊哦,GCC忘了裝,莫慌,直接 yum命令裝上gcc,還有gcc-C++沒裝的話後面也會提示錯誤,一起裝上吧,,,

[[email protected] cmake-2.8.6]# yum install gcc gcc-c++

裝好了之後,重新在cmake目錄下執行: # ./configure,執行成功後會在最後提示你 “CMake has bootstrapped. Now run gmake.

”,好的,運行:

gmake

gmake install

等一會,cmake就裝好了,

添加組和用戶:

[[email protected] home]# groupadd mysql
[[email protected] home]# useradd -g mysql mysql
[[email protected] home]# mkdir -p /data/mysql
[[email protected] home]# chown -R mysql:mysql /data/mysql

接下來依次執行:

[[email protected] home]# cd /usr/src/mysql-5.5.29
[[email protected] home]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc/

報錯:

-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) 
CMake Error at cmake/readline.cmake:83 (MESSAGE):
  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:127 (FIND_CURSES)
  cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
  CMakeLists.txt:269 (MYSQL_CHECK_READLINE)


-- Configuring incomplete, errors occurred!

解決辦法:

[[email protected] mysql-5.5.29]# rm CMakeCache.txt
[[email protected] mysql-5.5.29]# yum install ncurses-devel

解決之後依次:

[[email protected] mysql-5.5.29]# make        
[[email protected] mysql-5.5.29]# make install

設置MySQL:

cd /usr/local/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf

編輯/etc/my.cnf
在 [mysqld] 段增加
datadir = /data/mysql
wait-timeout = 30
max_connections = 512
max_connect_errors = 10000000
default-storage-engine=MyISAM


在 [mysqld] 段修改
max_allowed_packet = 16M

接下來執行:

./scripts/mysql_install_db --user=mysql
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 3 mysqld on

編譯/etc/rc.d/init.d/mysqld
把basedir=編輯成basedir=/usr/local/mysql
把datadir=編輯成datadir=/data/mysql

至此,MySQL數據庫就裝好了,:D

啟動服務:

[[email protected] mysql]# service mysqld start
Starting MySQL...                                          [  OK  ]
[[email protected] mysql]# 

OK,成功!

2.設置root的密碼

進入mysql:

[[email protected] mysql]# mysql -uroot -p
-bash: mysql: command not found

因為mysql命令的路徑在/usr/local/mysql/bin下面,所以你直接使用mysql命令時,系統在/usr/bin下面查此命令,所以找不到了
解決辦法是:做個鏈接即可

[[email protected] /]#  ln -s /usr/local/mysql/bin/mysql /usr/bin

進入MySQL控制臺之後,給root添加密碼(這裏給root設置的密碼為“root”):

mysql> use mysql;
Database changed
mysql> update user set password=PASSWORD(‘root‘) where user=‘root‘;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> 

執行成功,退出控制臺,重啟MySQL服務即可:

[[email protected] /]# service mysqld restart
Shutting down MySQL.                                       [  OK  ]
Starting MySQL..                                           [  OK  ]
[[email protected] /]# 

二.安裝Apache HTTP Server

1.安裝前準備

要安裝Apache HTTP Server,必須先安裝zlib-devel包:

yum install zlib-devel

配置Apache:

./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-so --enable-rewrite --enable-cache

--enable-file-cache --enable-disk-cache --enable-mem-cache --enable-deflate --enable-expires --enable-headers

--disable-actions --disable-cgid --disable-cgi --disable-autoindex --disable-userdir --disable-alias --disable-include

--enable-proxy-ajp --enable-proxy --enable-proxy-balancer

編譯和安裝:

[[email protected] httpd-2.2.23]# make
[[email protected] httpd-2.2.23]# make install

把Apache的服務控制器復制到系統 init.d目錄下

[[email protected] httpd-2.2.23]# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

現在Apache已經裝好了,但是不支持chkconfig,也不支持service httpd start/stop,解決方案:

1)、將apachectl文件拷貝到/etc/rc.d/init.d 中,然後在/etc/rc.d/rc5.d/下加入鏈接即可。
命令如下:
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd //如果有其他的版本的Apache存在,也可以直接覆蓋掉
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd
此時Apache就可以自動啟動了。


2)、 運行chkconfig --list,發現沒有linux服務列表中httpd,通過chkconfig --add httpd來添加,但是提示:httpd服務不支持 chkconfig。需要編輯/etc/rc.d/init.d/httpd,添加以下註釋信息:
# chkconfig: 345 85 15
# description: Activates/Deactivates Apache Web Server //描述文字,隨便寫
第一行3個數字參數意義分別為:哪些Linux級別需要啟動httpd(3,4,5);啟動序號(85);關閉序號(15)。
保存後執行:chkconfig --add httpd,成功添加。

完成後就可以使用service httpd start/stop了,只是沒有提示信息 :-(,如下:

[[email protected] /]# service httpd start
[[email protected] /]# service httpd start
httpd (pid 27846) already running
[[email protected] /]# 

解決方法:

編輯 httpd.conf

開啟include httpd-info,即去掉前面的#號

然後編輯/usr/local/apache2/conf/extra/下的 httpd-info.conf 的內容

將裏邊的Allow from 更改為all

最後重啟Apache

然後敲 service http status/stop/restart/start 等命令試下,發現status命令有點繁瑣,不過無傷大雅。

三.安裝PHP

1.配置PHP

進入PHP的解壓包,開始配置:

# cd /usr/src/php-5.4.11/

執行 ./configure ....(後面命令省略)報錯,如下:

checking libxml2 install dir... no
checking for xml2-config path... 
configure: error: xml2-config not found. Please check your libxml2 installation.

libxml2-devel沒安裝,openssl和openssl-devel沒安裝的話,後面也會出錯,還有bzip2 bzip2-devel、curl curl-devel、gd gd-devel、libjpeg libjpeg-devel、libmcrypt libmcrypt-devel、net-snmp net-snmp-devel也是一樣,yum!

# yum install libxml2-devel openssl openssl-devel bzip2 bzip2-devel curl curl-devel gd gd-devel libjpeg libjpeg-devel libmcrypt libmcrypt-devel net-snmp net-snmp-devel

配置時出錯可參考文章:wang01ning.blog.163.com/blog/static/860179020104443154501/

完成後,配置:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --enable-fpm --with-mcrypt=/usr/local/libmcrypt 
--with-zlib --enable-mbstring --with-openssl --with-mysql
--with-mysqli --with-mysql-sock --with-gd --with-jpeg-dir=/usr/lib
--enable-gd-native-ttf --enable-pdo --with-pdo-mysql
--with-gettext --with-curl --with-pdo-mysql --enable-sockets
--enable-bcmath --enable-xml --with-bz2 --with-gettext
--with-snmp --enable-zip --with-snmp

(紅色部分很重要!!!)

配置成功,會有一句:Thank you for using PHP. 出現,表示配置OK啦


2.編譯安裝

[[email protected] php-5.4.11]# make
[[email protected] php-5.4.11]# make install

耐心等待一會就行了,,,

3.PHP的配置文件php.ini

將php.ini-development 文件復制到/usr/local/php/lib下並重命名 為php.ini,這點倒是和Windows上的一樣,呵呵

[[email protected] php-5.4.11]# cp php.ini-development /usr/local/php/lib/php.ini

4.配置Apache,讓其支持PHP

/usr/local/apache2/conf 下找到httpd.conf,

在AddType application/x-gzip .gz .tgz下面,

添加兩行

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

  # Example:
  # LoadModule foo_module modules/mod_foo.so
  #

下面添加
LoadModule php5_module modules/libphp5.so

保存,重啟Apache,遇到問題:

[[email protected] php-5.4.11]# service httpd restart
httpd: Syntax error on line 55 of /usr/local/apache2/conf/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

解決:

[[email protected] php-5.4.11]# setenforce 0

OK

四.測試是否安裝好

1.防火墻問題

因為Linux的Firewall,所以Apache服務不能用,首先開啟80端口給TCP協議:

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

執行完,再:

[[email protected] php-5.4.11]# /etc/rc.d/init.d/iptables save
Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]

重啟讀取防火墻IP表:

[[email protected] php-5.4.11]# /etc/init.d/iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[  OK  ]

2.

/usr/local/apache2/htdocs 下新建一個info.php文件,內容:

<?php

phpinfo();

?>

保存,打開瀏覽器,輸入(作者的Linux機器地址為“http://192.168.0.5/”):

http://192.168.0.5/phpinfo.php,熟悉的phpinfo頁面~

  (很久之前寫的文章,有一些尾巴沒修改,PS:現在大部分都是LNMP了)

CentOS 5.9裸機編譯安裝搭建LAMP