设为首页 收藏本站
查看: 1120|回复: 0

linux下LAMP环境搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-29 08:34:20 | 显示全部楼层 |阅读模式
LAMP 是Linux Apache MySQL PHP的简写,其实就是把Apache, MySQL以及PHP安装在Linux系统上,组成一个环境来运行php的脚本语言。Apache是最常用的WEB服务软件,MySQL是比较小型的数据库软件,这两个软件以及PHP都可以安装到windows的机器上。
LAMP环境安装顺序,首先安装mysql、apache,PHP最后安装,因为PHP要调用mysql和apache的一些参数和数据。
关于源代码包和二进制包:


源代码方式和二进制包是软件包的两种形式。二进制包里面包括了已经经过编译,可以马上运行的程序。你只需要下载和解包(安装)它们以后,就马上可以使用。源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程序,所以从源代码安装的时间会比较长。


可以访问下面的链接获取LAMP的安装文件
搜狐的开源镜像下载地址     http://mirrors.sohu.com/

mysql下载地址搜狐镜像    http://mirrors.sohu.com/mysql/


linux版本为CentOS 6.6
安装MySQL

我们平时安装MySQL都是源码包安装的,但是由于它的编译需要很长的时间,我们这里选择安装二进制免编译包。你可以到MySQL官方网站去下载 http://dev.mysql.com/downloads/ 具体版本根据你的平台和需求而定,目前比较常用的为mysql-5.0/mysql-5.1, 5.5版本虽然已经发布有段日子了,但是貌似用在线上跑服务的还是少数。

具体的步骤如下:

1、下载mysql安装文件到/usr/local/src 目录下,如果没有wget命令,yum install wget 安装即可;
1
2
[iyunv@yong ~]# cd /usr/local/src
[iyunv@yong src]# wget http://syslab.comsenz.com/downlo ... -icc-glibc23.tar.gz



2、解压下载的文件

1
[iyunv@yong src]# tar -zxvf mysql-5.1.40-linux-i686-icc-glibc23.tar.gz



3、把解压完的数据移动到/usr/local/mysql
提醒注意:不用自己手动添加/mysql目录,移动的同时会把原目录改名的。
1
[iyunv@yong src]# mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql



4、建立mysql用户,禁止登录系统;
1
[iyunv@yong src]# useradd -s /sbin/nologin mysql



5、初始化数据库,新建/data目录及/data/mysql子目录,并设置/data/mysql目录的所属主所属组为mysql用户;

1
2
3
[iyunv@yong src]# cd /usr/local/mysql/
[iyunv@yong mysql]# mkdir -p /data/mysql
[iyunv@yong mysql]# chown -R mysql:mysql /data/mysql/



1
2
3
4
5
[iyunv@yong mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
Installing MySQL system tables...
OK
Filling help tables...
OK



--user 定义数据库的所属主,--datadir 定义数据库的安装路径,建议放到大存储空间。看到两个"OK"说明执行正确,否则请仔细查看错误信息,查询哪里出了问题;

6、拷贝配置文件
1
[iyunv@yong mysql]# cp support-files/my-large.cnf /etc/my.cnf



模板配置文件在/mysql/support-files/目录下;

根据内存大小选择:
my-small.cnf (内存 <= 64M)
my-medium.cnf (内存 128M )
my-large.cnf (内存 512M)
my-huge.cnf (内存 1G-2G)
my-innodb-heavy-4G.cnf (内存 4GB)
7、拷贝启动脚本文件并修改属性

1
2
[iyunv@yong mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[iyunv@yong mysql]# chmod 755 /etc/init.d/mysqld



8、修改启动脚本

1
[iyunv@yong mysql]# vim /etc/init.d/mysqld



需要修改的地方有
"basedir=/usr/local/mysql"(mysql的安装目录)
"datadir=/data/mysql"(前面初始化数据库定义的目录)
9、把启动脚本加入系统服务项,并设定开机启动,启动mysql服务;
1
2
3
4
[iyunv@yong mysql]# chkconfig --add mysqld
[iyunv@yong mysql]# chkconfig mysqld on
[iyunv@yong mysql]# service mysqld start
Starting MySQL..                                           [  OK  ]




启动mysqld服务时如出现以下的错误,

1
2
3
4
[iyunv@yong mysql]# service mysqld start
/etc/init.d/mysqld: line 260: my_print_defaults: command not found
/etc/init.d/mysqld: line 263: my_print_defaults: command not found
Starting MySQL ERROR! Couldn't find MySQL manager (./bin/mysqlmanager) or server (./bin/mysqld_safe)



出错的原因是解压出来的mysql-5.1.40-linux-i686-icc-glibc23目录,执行mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql 目录的时候,不用建立目标目录mysql,命令是移动的同时会改名为mysql,如自己手动建立/local/mysql目录则是把目录移动到此目录下,导致命令不能执行。

也有可能的原因如下:

需要在/etc/my.cnf配置文件中,添加basedir和datadir
[mysqld]
port            = 3306
basedir=/usr/local/mysql
datadir=/data/mysql
/etc/init.d/mysqld配置文件中,也需要添加basedir和datadir

basedir=/usr/local/mysql
datadir=/data/mysql
1
2
[iyunv@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL.... SUCCESS!



10、查看mysqld是否启动
1
2
3
[iyunv@localhost mysql]# ps aux |grep mysqld
root      1341  0.0  0.1   6680  1328 pts/0    S    20:22   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql     1456  0.3  4.2 381608 43504 pts/0    Sl   20:22   0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306




wKioL1U_UA3SgWIJAAMT7z8DejU561.jpg
wKiom1U_TqqwL56sAAD0gKrcF2c794.jpg
spacer.jpg
/usr/local/mysql/bin 目录下的mysql为可执行命令,执行mysql开启客户端,测试mysql是否工作;
spacer.jpg wKiom1U_TyCzNqjlAALFzieI3A8341.jpg


安装apache
1、下载httpd包到/usr/local/src/目录下;
1
2
[iyunv@localhost src]# wget  
http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz



2、解压httpd源码包

1
[iyunv@localhost src]# tar -zxvf httpd-2.2.16.tar.gz



3、配置编译的参数
1
2
[iyunv@localhost src]# cd httpd-2.2.16
[iyunv@localhost httpd-2.2.16]# ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-so



--prefix    指定apache的安装目录;
--enable-mods-shared=most    表示安装的模块大多数以mods共享模式加载;

--enable-so    表示是否支持dso动态加载模块,扩展安装;

执行./configure时,可能会遇到以下错误,这个主要是gcc编译器包、apr包没有安装。对于这个问题,安装gcc、apr包就可以了。

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
执行./configure时,可能会遇到以上错误,这个主要是gcc编译器包、apr包没有安装。对于这个问题,使用yum install gcc就可以了。
1
2
[iyunv@localhost apr]# yum install -y gcc
[iyunv@localhost bin]# yum install -y pcre pcre-devel apr apr-devel



4、make编译,编译完成后使用echo $? 查看make命令是否执行成功,成功返回值为0,不成功则为非0;
1
2
3
[iyunv@localhost apr]# make
[iyunv@localhost apr]# echo $?
0



5、make install安装,完成后同样使用echo $? 查看是否执行成功,成功返回值为0,不成功则为非0;
1
2
3
[iyunv@localhost apr]# make install
[iyunv@localhost apr]# echo $?
0



当我们安装好apache服务器后通常会在apache2/bin/目录形成一些相关的执行命令,其中httpd文件是apache服务器的主程序。其被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。Apache服务器的所有相关操作都可以通过httpd命令进行完成,但是通常情况下我们并不建议这么做,而是通过同一目录下的apachectl命令通过调用httpd命令的方式来完成对服务器的开启,关闭等相关的操作的。

apache安装完成后检测:
/usr/local/apache2/bin/apachectl -t    测试配置文件是否正确
/usr/local/apache2/bin/httpd -t    测试配置文件是否正确,和上面的命令一样的效果;
/usr/local/apache2/bin/apachectl -l    查看apache加载的静态模块
/usr/local/apache2/bin/apachectl -M    把所有加载的模块列出来。

查看曾经的编译选项
/usr/local/apache2/build/config.nice 查看这个文件,列出来编译的时候的选项内容;
1
2
3
4
5
6
7
8
9
[iyunv@localhost httpd-2.2.29]# cat /usr/local/apache2/build/config.nice
#! /bin/sh
#
# Created by configure
"./configure" \
"--prefix=/usr/local/apache2" \
"--enable-mods-shared=most" \
"--enable-so" \
"$@"





apache启动命令:
/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参数一样,区别在于它不会中断正在处理的连接,也不会关闭日志,推荐使用。
1
2
3
[iyunv@localhost httpd-2.2.29]# /usr/local/apache2/bin/apachectl graceful
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
httpd not running, trying to start



启动时会出现几行类似错误的信息,是域名解析问题,需要在下面的配置文件修改:vim /usr/local/apach2/conf/http.conf
找到这一行 #ServerName www.example.com:80
这一项去掉#号,保存退出。再次启动就不会报错;

启动apache后使用netstat -nlp |grep httpd    查看httpd 80端口是否启用
wKioL1U_U0iTjAkGAACSyTwccq8401.jpg
使用curl localhost    测试网页是否正常;
1
2
[iyunv@localhost httpd-2.2.29]# curl localhost
<html><body><h1>It works!</h1></body></html>



在IE浏览器输入本地ip地址也可以测试网页是否正常;
spacer.jpg wKioL1U_U3DAgeH_AADTtK_E8Oo461.jpg


PHP安装

PHP原始为 Personal Home Page的缩写,现已经正式更名为 "PHP: Hypertext Preprocessor"(超文本预处理) 的缩写。
PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。


1、下载php源码包,下载后解压包
1
2
3
[iyunv@yong ~]# cd /usr/local/src/
[iyunv@yong src]# wget http://cn2.php.net/distributions/php-5.3.28.tar.gz
[iyunv@yong src]# tar -zxvf php-5.3.28.tar.gz



2、编译php源码包,配置选项参数
1
[iyunv@yong 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




执行完成后最后几行报错,提示perl没有安装,apxs没有找到,apache没有建立;
Sorry, I cannot run apxs.  Possible reasons follow:
1. Perl is not installed

2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)
The output of /usr/local/apache2/bin/apxs follows:

./configure: /usr/local/apache2/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directory
configure: error: Aborting
这里先安装perl
1
[iyunv@localhost php-5.3.28]# yum install -y perl



安装perl之后,再次运行./configure还是报同样的错误;
perl已经安装成功,apxs也是存在的,其实真正的原因是apxs无法运行;
没有安装perl的情况下,编译安装apache生成apxs的第一行是:
#!/replace/with/path/to/perl/interpreter -w
#!/replace/with/path/to/perl/interpreter 因为这个文件是不存在的,所以不能运行apxs;
使用apxs需要安装perl,因为apxs使用的perl脚本;
修改配置文件:/usr/local/apache2/bin/apxs 的第一行内容
修改成#!/usr/bin/perl -w    保存退出;
建议在安装apache之前先安装perl,就不会出现此错误。

再次执行./configure 这一步,又出现下面的错误;

configure: error: xml2-config not found. Please check your libxml2 installation.
需要安装libxml2-devel包
[root@yong php-5.3.28]# yum install -y libxml2-devel

安装完成后再次执行./configure 这一步,又出现下面的错误;
configure: error: Cannot find OpenSSL's <evp.h>
需要安装openssl-devel包
[root@yong php-5.3.28]# yum install -y openssl-devel

安装完成后再次执行./configure 这一步,又出现下面的错误;

configure: error: Please reinstall the BZip2 distribution
需要安装bzip2-devel包
[root@yong php-5.3.28]# yum install -y bzip2-devel

再次执行./configure 这一步,又出现下面的错误;

configure: error: jpeglib.h not found.
需要安装libjpeg-devel包
[root@yong php-5.3.28]# yum install -y libjpeg-devel

再次执行./configure 这一步,又出现下面的错误;

configure: error: png.h not found.
需要安装libpng-devel包
[root@yong php-5.3.28]# yum install -y libpng libpng-devel

再次执行./configure 这一步,又出现下面的错误;

If configure fails try --with-xpm-dir=<DIR>
configure: error: freetype.h not found.
需要安装freetype-devel包
[root@yong php-5.3.28]# yum install -y freetype-devel

再次执行./configure 这一步,又出现下面的错误;

configure: error: mcrypt.h not found. Please reinstall libmcrypt.
需要安装libmcrypt-devel包
1
2
3
4
5
6
7
8
9
[iyunv@yong php-5.3.28]# yum install -y libmcrypt-devel
已加载插件:fastestmirror
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.pubyun.com
* updates: mirrors.pubyun.com
No package libmcrypt-devel available.
错误:无须任何处理



因为centos6.X 默认yum源没有libmcrypt-devel这个包,需要借助第三方源,rpm安装epel源;

rpm -ivh "http://www.aminglinux.com/bbs/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm"
epel源安装完成后再次执行# yum install -y libmcrypt-devel
再次执行./configure 终于不再出现错误提示,出现了欢迎使用界面。
wKiom1U_VJLyuFnZAAI1iK3oYG4454.jpg
spacer.jpg 3、make编译,编译完成后使用echo $? 查看make命令是否执行成功,成功返回值为0,不成功则为非0;
1
2
3
[iyunv@yong php-5.3.28]# make
[iyunv@yong php-5.3.28]# echo $?
0



3、make install安装,完成后使用echo $? 查看make install命令是否执行成功,成功返回值为0,不成功则为非0;
1
2
3
[iyunv@yong php-5.3.28]# make install
[iyunv@yong php-5.3.28]# echo $?
0




apache结合php测试环境
Apache的主配置文件为:/usr/local/apache2/conf/httpd.conf
需要编辑配置文件
1
[iyunv@yong php-5.3.28]# vim /usr/local/apache2/conf/httpd.conf



找到这一行:AddType application/x-gzip .gz .tgz

在该行下面添加:AddType application/x-httpd-php .php
wKiom1U_VX6xINk9AACibtQC89g929.jpg spacer.jpg
找到:
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
修改中间的行改为:
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>
wKioL1U_VuWzEF-DAAB4ZRg9S-c754.jpg
找到:#ServerName www.example.com:80

修改为:ServerName localhost:80
wKioL1U_VuXxpVu3AAAlpkhNmu0734.jpg
spacer.jpg

测试LAMP是否成功
启动apache之前先检验配置文件是否正确,正确显示Syntax OK,如果有错误,需要修改httpd.conf配置文件;
1
2
3
[iyunv@yong php-5.3.28]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[iyunv@yong php-5.3.28]# /usr/local/apache2/bin/apachectl start




查看apache是否启动
1
2
[iyunv@yong php-5.3.28]# netstat -lnp |grep httpd
tcp        0      0 :::80           :::*             LISTEN      3802/httpd



spacer.jpg
使用curl命令简单测试,显示如下为正确。
1
2
[iyunv@yong php-5.3.28]# curl localhost
<html><body><h1>It works!</h1></body></html>



测试是否正确解析php,php的路径地址为/usr/local/apache2/htdocs/,新建一个1.php做测试;
1
2
3
4
5
[iyunv@yong php-5.3.28]# vim /usr/local/apache2/htdocs/1.php
<?php
        echo "php解析正常ok";
        echo "\n";
?>



"\n"的作用是回车,echo后面需要加分号;保存退出后,继续使用curl测试;
1
2
[iyunv@yong php-5.3.28]# curl localhost/1.php
php解析正常



spacer.jpg
解析php出错,如下图,原因是修改完apache配置文件后,需要重启服务,执行命令: /usr/local/apache2/bin/apachectl graceful
spacer.jpg wKioL1U_WDnRS2ghAACACFep8o4324.jpg
重启之后恢复正常;
1
2
[iyunv@localhost php-5.3.28]# curl localhost/1.php
php解析正常ok



localhost相当于本地的域名,和本地环回地址和本地ip地址一样的效果;
curl http://127.0.0.1/1.php
curl http://192.168.20.20/1.php
也可以在网页输入http://192.168.20.20/1.php
wKiom1U_Vx-Sdmr0AADJOZZaBiY434.jpg

spacer.jpg 整个LAMP环境搭建完毕,实际环境中使用的版本可能有差异,大部分过程一样,仅作参考,有任何疑问可以互相探讨。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61700-1-1.html 上篇帖子: 设置本地wamp环境挂载多站点同时运行 下篇帖子: 搭建lamp时遇到的问题 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表