Linux AMP搭建

      Linux lamp搭建

一、安装mysql

1、把mysql的包下载到这个目录下

   cd /usr/local/src/ 


2、下载包

   wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz

注意:上面的地址是32位机器用的,如果你的机器是64位,下载这个包(http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz)安装方法是一样的。

 需要安装wget包,默认没有安装

 [root@mysql src]# yum install -y wget


3、解压包

  tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz 


4、把解压出来的文件移动到/usr/local/目录下,并且改名为mysql,这一步需要注意,在移动的时候要确保/usr/local/目录下没有mysql这个名称,

如果有,就会把文件移动到mysql目下了,这样子是错误的

[root@mysql src]# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql 


5、创建一个mysql用户,并且禁止登陆

   useradd -s /sbin/nologin mysql 


6、进入到/usr/local/mysql下,好像不进入这个目录也是可以的

   cd /usr/local/mysql


7、创建 /data/mysql 目录

   mkdir -p /data/mysql 


8、更改/data/mysql 目录的属主和属组

   chown -R mysql:mysql /data/mysql 


9、在当前目录下初始化(当前目录指的上就是/usr/local/mysql目录)

   ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 

  这一步做的是出错了,原来是没有安装共享库,所以这一步如果出错,查看下是否有安装共享库

  安装共享库:yum install compat-libstdc++-33

  完成之后查看/date/mysql下回生成两个目录:mysql和test目录


10、在当前目录下(/usr/local/mysql目录)拷贝模板到/etc/目录下,并且改名为my.cnf

    cp support-files/my-large.cnf /etc/my.cnf 

    使用vim进入my.cnf文件中关闭以下功能:

    log-bin=mysql-bin

    binlog_format=mixed

    server-id       = 1


11、拷贝启动文件到/etc/init.d/下命名为mysqld(也是在/usr/local/mysql目录下)

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

    chmod 755 /etc/init.d/mysqld (这一步不做好像也可以)


12、修改/etc/init.d/mysqld文件

    vim /etc/init.d/mysqld   #修改datadir

    修改以下配置:

    basedir=/usr/local/mysql #定义了mysql所在的路径

    datadir=/data/mysql       #数据存放路径


13、加入到系统列表

    chkconfig --add mysqld 


14、设定开机启动

    chkconfig mysqld on 


15、重启mysql

   /etc/init.d/mysql start

   [root@mysql mysql]# /etc/init.d/mysqld start

   Starting MySQL... SUCCESS! #这个提示表示mysql已经启动成功


16、使用ps aux |grep mysql来检测看看是否有mysql进程

    使用netstat -lnp来查看是否有3306端口



二、安装apache

1、下载apache(也是下载到/usr/local/src/目录下)

   wget  http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz


2、解压apache包

   tar zvxf httpd-2.2.16.tar.gz  


3、进入到httpd-2.2.16目录

   cd httpd-2.2.16

   [root@mysql src]# cd httpd-2.2.16


4、开始编译,如果没有文档,进入到INSTALL文件中看看帮助(此文档在/usr/local/src/httpd-2.2.16目录下) 

   INSTALL文件中需要查看的信息:

     $ ./configure --prefix=PREFIX #指定安装的目录在哪里

     $ make

     $ make install

     $ PREFIX/bin/apachectl startt

 

5、配置编译参数(/usr/local/src/httpd-2.2.16目录下)

   ./configure --prefix=/usr/local/apache2  --enable-mods-shared=most  --enable-so 

   --prefix=:安装路径

   --enable-mods-shared=most:安装的模块大多是以共享的方式去安装的,并且是动态的,因为使用

                           静态的耗费内存

   --enable-so :启用DOS

  这一步时报错,信息如下:提示需要安装gcc

  configure: error: in `/usr/local/src/httpd-2.2.16/srclib/apr‘:

  configure: error: no acceptable C compiler found in $PATH

  See `config.log‘ for more details.

  configure failed for srclib/apr

  需要安装gcc

  安装gcc:yum install gcc-c++

6、编译

  make && make install 可以写在同一行,但是要使用两个&&符号隔开。也可以分开写


  make install


7、编译完成之后进入/usr/local/apache2/目录查看

进入/usr/local/apache2/目录之后,使用/bin/ls 查看modules目录,这个目录存放的是模块


8、检查

[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -t :检查配置文件是否有错误 

[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -l :查看核心的

[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -M :显示所有加载的模块

[root@mysql httpd-2.2.16]# cat /usr/local/apache2/build/config.nice :查看历史编译配置


9、启动apache

 [root@mysql httpd-2.2.16]# /usr/local/apache2/bin/apachectl start

 

 /usr/local/apache2/bin/apachectl start/stop/restart

 /usr/local/apache2/bin/apachectl graceful/graceful-stop

 start :用于启动apache服务,首先检查apache的配置文件是否有误,没有错误启动服务,如有误则输出错误信息;

 stop  :用于停止apache服务器,如果已经停止了apache服务器则会报错;

 restart :重新启动apache服务器,如果apache没有启动则启动它;

 graceful :和start参数一样,区别在于它不会中断正在处理的连接,也不会关闭日志。推荐使用。

 graceful-stop :和stop参数一样,区别在于它不会中断正在处理的连接,也不会关闭日志,推荐使用。


10、查看是否启动了

 

[root@mysql apache2]# ps aux |grep httpd
  root     58464  0.0  0.2 124448  2524 ?        Ss   20:35   0:00 /usr/local/apache2/bin/httpd -k start
  daemon   58465  0.0  0.1 124448  1736 ?        S    20:35   0:00 /usr/local/apache2/bin/httpd -k start
  daemon   58466  0.0  0.1 124448  1736 ?        S    20:35   0:00 /usr/local/apache2/bin/httpd -k start
  daemon   58467  0.0  0.1 124448  1736 ?        S    20:35   0:00 /usr/local/apache2/bin/httpd -k start
  daemon   58468  0.0  0.1 124448  1736 ?        S    20:35   0:00 /usr/local/apache2/bin/httpd -k start
  daemon   58469  0.0  0.1 124448  1736 ?        S    20:35   0:00 /usr/local/apache2/bin/httpd -k start
  root     58479  0.0  0.0 103248   872 pts/0    S+   20:37   0:00 grep httpd

 

11、启动时出现的  类似于错误信息之类的

技术分享

需要修改配置文件:conf/httpd.conf

配置文件:[root@mysql apache2]# vim conf/httpd.conf 

在配置文件中把ServerName www.example.com:80前面的#号去掉

在重新启动,就不会在有提示了


12、测试

   在Linux中测试是否工作了

   [root@mysql apache2]# curl localhost

   <html><body><h1>It works!</h1></body></html>[root@mysql apache2]# 

   

  在浏览器中输入IP地址来测试,如下图:

  

技术分享

出此It works就表示配置成功了


./bin/apachectl -t:检测配置文件和 /usr/local/apache2/bin/httpd -t效果一样

 ./bin/apachectl start:重启

[root@mysql apache2]# ./bin/apachectl graceful:在不杀死进程的情况下调度配置文件


三、安装php

1、进入/usr/local/src/目录下,下载PHP包


下载包

  wget http://cn2.php.net/distributions/php-5.3.28.tar.gz


2、解压包

  tar zxvf php-5.3.28.tar.gz 


3、进入到php-5.3.28目录,编译配置PHP

   [root@mysql src]# cd php-5.3.28

./configure   --prefix=/usr/local/php   --with-apxs2=/usr/local/apache2/bin/apxs   --with-config-file-path=/usr/local/php/etc   --with-mysql=/usr/local/mysql   --with-libxml-dir   --with-gd   --with-jpeg-dir   --with-png-dir   --with-freetype-dir   --with-iconv-dir   --with-zlib-dir   --with-bz2   --with-openssl   --with-mcrypt   --enable-soap   --enable-gd-native-ttf   --enable-mbstring   --enable-sockets   --enable-exif   --disable-ipv6 

这一步会出现各种错误,根据提示来安装所需要的库文件,如果不知道的就使用yum list来搜,

错误信息如下:参考文档:http://sxct168.blog.51cto.com/824373/1640316

1、configure: error: xml2-config not found. Please check your libxml2 installation.

  # yum install -y libxml2-devel

2、configure: error: Cannot find OpenSSL‘s <evp.h>

  # yum install -y openssl-devel

3、checking for BZip2 in default path... not found

   configure: error: Please reinstall the BZip2 distribution

   # yum install -y bzip2-devel

4、configure: error: jpeglib.h not found.

   # yum install -y libjpeg-devel

5、configure: error: png.h not found.

  # yum install -y libpng libpng-devel

6、configure: error: freetype.h not found.

  # yum install -y freetype-devel

7、configure: error: mcrypt.h not found. Please reinstall libmcrypt.

  # yum install -y libmcrypt-devel

  

语法:

yum list |grep -i 报错的名称


如果没有yum源搜索不到,需要安装yum扩展源

安装yum扩展源:yum install -y epel-release


4、编译

make

make install 


安装完成之后,可以在/bin/ls /usr/local/php下看到一些文件


/usr/local/php/bin/hph

php的可执行文件位置


/usr/local/php/bin/php -m :查看php都安装了哪些模块

/usr/local/php/bin/php -i:查看php的参数


四、配置apache结合php

apache的主配置文件为:/usr/local/apache2/conf/httpd.conf

1、编辑配置文件

    vim /usr/local/apache2/conf/httpd.conf

找到:

AddType application/x-gzip .gz .tgz

在该行下面添加:

AddType application/x-httpd-php .php

然后再找到:

<IfModule dir_module>

    DirectoryIndex index.html

</IfModule>

将该行改为:

<IfModule dir_module>

    DirectoryIndex index.html index.htm index.php

</IfModule>

找到:

#ServerName www.example.com:80

修改为:

ServerName localhost:80


2、检查配置文件是否正确

   [root@mysql php-5.3.28]# /usr/local/apache2/bin/apachectl -t

    Syntax OK #出先这个就表示是正确的

3、启动Apache

 /usr/local/apache2/bin/apachectl start


五、测试解析php

   1、写一个php脚本

   vim /usr/local/apache2/htdocs/1.php

   写入:


   <?php

       echo "php解析正常";

   ?>

  保存后,继续测试:

2、解析报错

 

[root@mysql php-5.3.28]# curl localhost/1.php
  <?php
      echo "php解析正常";
  ?>

  /usr/local/apache2/bin//apachectl -M |grep -i php:检查php模块是否加载

  检查配置文件的时候,原来是配置文件写错了,修改了一下,重启之后正常

  重启命令:/usr/local/apache2/bin/apachectl graceful


3、解析

  curl localhost/1.php

 

[root@mysql php-5.3.28]# curl localhost/1.php
  php解析正常 #出现这个就表示解析成功了

4、但是在浏览器中解析的时候,中文出现了乱码,具体如图:

   技术分享

解决办法:更改1.php脚本测试文件

技术分享

保存退出后重启服务

/usr/local/apache2/bin/apachectl graceful

在测试就正常显示了

技术分享

实验中如果有错误的地方,希望各位大神能够指正,如果过后发现文档中有错误的地方,我也会修真。

本文出自 “IT交流学习” 博客,请务必保留此出处http://sxct168.blog.51cto.com/824373/1661366

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。