Linux LAMP搭建

      Linux lamp搭建php

1、安装mysqlhtml

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

   cd /usr/local/src/ linux


二、下载包c++

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

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

 须要安装wget包,默认没有安装vim

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


三、解压包bash

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


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

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

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


五、建立一个mysql用户,而且禁止登录

   useradd -s /sbin/nologin mysql 


六、进入到/usr/local/mysql下,好像不进入这个目录也是能够的

   cd /usr/local/mysql


七、建立 /data/mysql 目录

   mkdir -p /data/mysql 


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

   chown -R mysql:mysql /data/mysql 


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

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

  这一步作的是出错了,原来是没有安装共享库,因此这一步若是出错,查看下是否有安装共享库

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

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


十、在当前目录下(/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


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

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

    chmod 755 /etc/init.d/mysqld (这一步不作好像也能够)


十二、修改/etc/init.d/mysqld文件

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

    修改如下配置:

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

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


1三、加入到系统列表

    chkconfig --add mysqld 


1四、设定开机启动

    chkconfig mysqld on 


1五、重启mysql

   /etc/init.d/mysql start

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

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


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

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



2、安装apache

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

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


二、解压apache包

   tar zvxf httpd-2.2.16.tar.gz  


三、进入到httpd-2.2.16目录

   cd httpd-2.2.16

   [root@mysql src]# cd httpd-2.2.16


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

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

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

     $ make

     $ make install

     $ PREFIX/bin/apachectl startt

 

五、配置编译参数(/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++

报错信息:

checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures

解决办法,安装如下包:

yum install -y zlib-devel

六、编译

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


  make install


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

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


八、检查

[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 :查看历史编译配置


九、启动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参数同样,区别在于它不会中断正在处理的链接,也不会关闭日志,推荐使用。


十、查看是否启动了

 

[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

 

十一、启动时出现的  相似于错误信息之类的

wKiom1V6pL3S71GrAAF-jTRRq-Q356.jpg

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

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

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

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


十二、测试

   在Linux中测试是否工做了

   [root@mysql apache2]# curl localhost

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

   

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

  

wKioL1V6pqrjowfuAADFrjPfq4I082.jpg

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


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

 ./bin/apachectl start:重启

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


1三、若是须要开机自动启动Apache服务,须要把这一行命令:

/usr/local/apache2/bin/apachectl start加入到/etc/rc.local文件中才能够


3、安装php

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


下载包

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


二、解压包

  tar zxvf php-5.3.28.tar.gz 


三、进入到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

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

  # yum install -y libxml2-devel

二、configure: error: Cannot find OpenSSL's <evp.h>

  # yum install -y openssl-devel

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

   configure: error: Please reinstall the BZip2 distribution

   # yum install -y bzip2-devel

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

   # yum install -y libjpeg-devel

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

  # yum install -y libpng libpng-devel

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

  # yum install -y freetype-devel

七、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


四、编译

make

make install 


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


/usr/local/php/bin/hph

php的可执行文件位置


五、最后复制配置文件/usr/local/php/etc/目录下,而且更名为php.ini

[root@mysql php-5.3.28]# cp php.ini-production /usr/local/php/etc/php.ini


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

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


4、配置apache结合php

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

一、编辑配置文件

    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


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

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

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

三、启动Apache

 /usr/local/apache2/bin/apachectl start


5、测试解析php

   一、写一个php脚本

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

   写入:


   <?php

       echo "php解析正常";

   ?>

  保存后,继续测试:

二、解析报错

 

[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


三、解析

  curl localhost/1.php

 

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

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

   wKiom1V6qHXRQfvvAAC7WW-VulQ107.jpg

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

wKioL1V6q33B4zTXAAE8TGJmelw334.jpg

保存退出后重启服务

/usr/local/apache2/bin/apachectl graceful

在测试就正常显示了

wKiom1V6qgyAE3IVAAC7ZWCbQCA900.jpg

实验中若是有错误的地方,但愿各位大神可以指正,若是事后发现文档中有错误的地方,我也会修真。