CentOS 5.9裸機編譯安裝搭建LAMP
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