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

[root@localhost /]# cat /etc/redhat-release
CentOS release 5.9 (Final)

以前装过MySQL和PHP的机器,最好是先查看一下MySQL或者PHP是否未卸载:

[root@localhost /]# rpm -qa|grep mysql
[root@localhost /]#

↑ 结果表明MySQL未安装或者已经被卸载,如果已安装,则可以选择保留或者卸载,卸载命令:yum remove mysql

[root@localhost /]# rpm -qa|grep php
[root@localhost /]#

↑结果表明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:

[root@localhost home]# tar zxvf php-xxxx.tar.gz -C /usr/src

其他包相同……

一.安装MySQL

1.程序安装

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

bison直接用yum 安装就好:

[root@localhost home]# yum install bison

安装cmake:

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

下载后同样解压到  /usr/src 目录下

[root@localhost home]# cd /usr/src/cmake-2.8.4/
[root@localhost home]# ./configure

执行上述命令后发现报错:

[root@localhost 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++没装的话后面也会提示错误,一起装上吧,,,

[root@localhost cmake-2.8.6]# yum install gcc gcc-c++

装好了之后,重新在cmake目录下执行: # ./configure,执行成功后会在最后提示你 “CMake has bootstrapped.  Now run gmake.

”,好的,运行:

gmake

gmake install

等一会,cmake就装好了,

添加组和用户:

[root@localhost home]# groupadd mysql
[root@localhost home]# useradd -g mysql mysql
[root@localhost home]# mkdir -p /data/mysql
[root@localhost home]# chown -R mysql:mysql /data/mysql

接下来依次执行:

[root@localhost home]# cd /usr/src/mysql-5.5.29
[root@localhost 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!

解决办法:

[root@localhost mysql-5.5.29]# rm CMakeCache.txt
[root@localhost mysql-5.5.29]# yum install ncurses-devel

解决之后依次:

[root@localhost mysql-5.5.29]# make
[root@localhost 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

启动服务:

[root@localhost mysql]# service mysqld start
Starting MySQL... [ OK ]
[root@localhost mysql]#

OK,成功!

2.设置root的密码

进入mysql:

[root@localhost mysql]# mysql -uroot -p
-bash: mysql: command not found

因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,系统在/usr/bin下面查此命令,所以找不到了
    解决办法是:做个链接即可

[root@localhost /]#  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服务即可:

[root@localhost /]# service mysqld restart
Shutting down MySQL. [ OK ]
Starting MySQL.. [ OK ]
[root@localhost /]#

二.安装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

编译和安装:

[root@localhost httpd-2.2.23]# make
[root@localhost httpd-2.2.23]# make install

把Apache的服务控制器复制到系统 init.d目录下

[root@localhost 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了,只是没有提示信息  :-(,如下:

[root@localhost /]# service httpd start
[root@localhost /]# service httpd start
httpd (pid 27846) already running
[root@localhost /]#

解决方法:

编辑 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.编译安装

[root@localhost php-5.4.11]# make
[root@localhost php-5.4.11]# make install

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

3.PHP的配置文件php.ini

将php.ini-development 文件复制到/usr/local/php/lib下并重命名 为php.ini,这点倒是和Windows上的一样,呵呵

[root@localhost 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,遇到问题:

[root@localhost 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

解决:

[root@localhost php-5.4.11]# setenforce 0

OK

四.测试是否安装好

   1.防火墙问题

因为Linux的Firewall,所以Apache服务不能用,首先开启80端口给TCP协议:

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

执行完,再:

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

重启读取防火墙IP表:

[root@localhost 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的更多相关文章

  1. 不要着急改代码,先想想--centos 6.8下编译安装tmux

    诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...

  2. CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.14+PHP7.0.11

    准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...

  3. CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.6.33+PHP5.6.26

    准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...

  4. 在CentOS 6.4中编译安装gcc 4.8.1

    在CentOS 6.4中编译安装gcc 4.8.1 分类: C/C++ Linux/Unix2013-11-28 21:02 1877人阅读 评论(0) 收藏 举报 原文链接:http://www.c ...

  5. CentOS 6.X x64 编译安装 Countly

    CentOS 6.X  x64 编译安装Countly 安装所需的软件 yum -y install supervisor ImageMagick sendmail 1. 安装 node.js wge ...

  6. CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2

    前传: 1.CentOS 7.3.1611系统安装配置图解教程 http://www.jb51.net/os/RedHat/597874.html 2.CentOS服务器初始化设置 http://ww ...

  7. Centos 7源码编译安装 php7.1 之生产篇

    Centos 7源码编译安装 php7.1 之生产篇 Published 2017年4月30日 by Node Cloud 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具 ...

  8. CentOS 7.4下源码编译安装配置LAMP环境详解

    CentOS 7.4搭建LAMP,LAMP:Linux.Apache.MySQL.PHP. 目录:第一部分 准备工作第二部分 安装Apache服务第三部分 安装MySQL服务第四部分 搭建PHP运行环 ...

  9. 在CentOS6上编译安装实现LAMP(php-modules)+phpMyAdmin安装过程全记录

    php与apache协作有三种模式:CGI.modules.FastCGI. 在CGI模式下,用户请求php文件时,apache会启动响应进程,调用php处理器处理请求,然后将结果返回给客户端.用户响 ...

随机推荐

  1. 不使用synchronized和lock 锁实现线程安全单例

    单例实现方式一,锁机制 public class Singleton { private static Singleton singleton=null; public Singleton() { } ...

  2. IntelliJ IDEA使用SVN检出项目到本地工作空间

  3. ProgressDialog替代

    在API level 26 中,ProgressDialog被声明不赞成使用,应使用的替代方法是ProgressBar 利用下列代码实现ProgressBar的出现和消失 progressBar.se ...

  4. canvas20181114

    1. canvas 描边.填充.画线.闭合路径.非零环绕原则 <!DOCTYPE html> <html lang="en"> <head> & ...

  5. youtube去广告

    https://www.digitbin.com/youtube-ads-block/ 1. OGYouTube | Mod AdBlocker YouTube OGYouTube App is a ...

  6. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  7. 使用loadrunner录制手机脚本

    1.安装loadrunner补丁包4: 2.安装了loadrunner的PC端上面创建WiFi热点,将手机接入该WiFi: 3.然后打开loadrunner,选择录制协议为手机的协议: 4.弹窗中选择 ...

  8. nltk 词性解析

    转载链接: https://blog.csdn.net/pengjian444/article/details/81143983

  9. Use try-with-resources

    public void doQueries() throws MyException{ // First try-with-resources. try ( Connection con = Driv ...

  10. 元素定位-XPATH定位方法总结

    1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么 ...