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

Lamp最新源码包一般安装过程及常见问题

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-12 13:02:18 | 显示全部楼层 |阅读模式

l Lamp简介
l Apache安装
l Mysql安装
l Php安装
l 测试lamp
l 常见问题
l 参考资料

Lamp简介
Lamp是Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件。比较流行的是Linux+Apache+Mysql+PHP架构。
php功能很强大,安装包install文件中是这样说的:
   Before starting the installation, first you need to know what do you want to use PHP for.
There are three main fields you can use PHP, as described in the What can PHP do? section:
     * Websites and web applications (server-side scripting)
     * Command line scripting
     * Desktop (GUI) applications
翻译过可以理解为:php一般用作以下3个场景:
第一:做为web解析脚本,实现动态交互。
第二:命令行脚本
第三:开发桌面GUI应用
用的最多的是第一种,lamp既是第一种的应用,下面我们开始一步一步源码安装lamp

Apache安装
首先,安装apache,其下载地址为:
   http://apache.dataguru.cn//httpd/httpd-2.4.16.tar.gz
   http://mirror.bit.edu.cn/apache/apr/apr-1.5.2.tar.gz
   http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz  
   http://mirror.bit.edu.cn/apache//apr/apr-iconv-1.2.1.tar.gz
安装方法:
     安装准备工作,安装编译开发工具(autoconf、automake、gcc、gcc-c++、make)和pcre依赖包
     [iyunv@lab05 ~]# yum -y pcre-devel && yum -y groupinstall Development\ tools
     添加用户apache用来启动apache
     [iyunv@lab05 ~]# useradd -M -s /sbin/nologin apache
     解压源码安装包,将解压后的apr和apr-util移动到http的srclib目录,因我后面编绎要用到--with-included-apr选项,安装apr库。
     [iyunv@lab05 ~]# tar -zxvf apr-1.5.2.tar.gz;tar -zxvf apr-util-1.5.4.tar.gz; tar -zxvf httpd-2.4.16.tar.gz
     [iyunv@lab05 ~]# cd http-2.4.16
     [iyunv@lab05 ~]# mv ../apr-1.5.2  ./srclib/apr;mv ../apr-util-1.5.4  ./srclib/apr-util
     注意./configure没有用--prefix参数,那么默认安装目录为 /usr/local/apache2 ,--enable-so为支持DSO,更多可以用./configure --help,如果要启用重定向可以用--enable-rewrite,代理用--enable-proxy。
     [iyunv@lab05 ~]# ./configure --with-included-apr  --enable-so  

     [iyunv@lab05 ~]# make
     [iyunv@lab05 ~]# make install
     #默认apache启动用户为daemon,编辑http.conf,修改User和Group为apache用户
     [iyunv@lab05 ~]# vim /usr/local/apache2/conf/httpd.conf
     [iyunv@lab05 ~]# /usr/local/apache2/bin/apachectl start  #直接启动方式
开机启动设置:  
    复制安装包中 /httpd-2.4.16/build/rpm/httpd.init 到 /etc/init.d 目录,  
     修改http.init中 
     httpd=${HTTPD-/usr/sbin/httpd} 为   httpd=${HTTPD-/usr/local/apache2/bin/httpd}
     CONFFILE=/etc/httpd/conf/httpd.conf为 CONFFILE=/usr/local/apache2/conf/httpd.conf
     其实pidfile和lockfile可以都不改的,因为其在标准目录/var没什么不好。
     pidfile=${PIDFILE-/var/run/${prog}.pid}为 pidfile=${PIDFILE- /usr/local/apache2/logs/${prog}.pid}
     lockfile=${LOCKFILE-/var/lock/subsys/${prog} 为lockfile=${LOCKFILE-/usr/local/apache2/logs/subsys/${prog}}
     最后执行命令:chkconfig --add httpd.init && chkconfig httpd.init on
  测试apache安装成功:
     可以用netstat -tlunp和curl来检查有没有成功
      QQ截图20151012130011.png
     也可通过ps 再查看进程,发现用户为apache。
      QQ截图20151012130020.png
     也可以用浏览器访问测试,这里就不截图了。
  日志轮循设置:
     复制安装包中 /httpd-2.4.16/build/rpm/httpd.logrotate 到 /etc/logrotate.d/ 目录 
     修改httpd.logrotate中 /var/log/httpd/*log 为 /usr/local/apache2/logs/*log
     执行logrotate -d来dbug下有没错误
       [iyunv@lab05 ~]# logrotate -d /etc/logrotate.conf
       执行logrotate 使日志轮循生效
       [iyunv@lab05 ~]# logrotate  /etc/logrotate.conf
到些apache安装完成。

Mysql安装:
     下载地址:http://mirror.bit.edu.cn/mysql/D ... mysql-5.6.26.tar.gz
Mysql安装方法
安装前需要安装cmake,gcc,make,gcc-c++,autoconf,automake,ncurses-devel,libaio,libaio-devel perl等编译开发工具和依赖包
      # Preconfiguration setup
   [iyunv@lab05 ~]# yum -y install autoconf automake make gcc gcc-c++ cmake ncurses-devel libaio libaio-devel
   因为mysql启动时,会默认查找/etc/my.cnf.
      [iyunv@lab05 ~]# mv /etc/my.cnf /etc/my.cnf.bak
   [iyunv@lab05 ~]# groupadd mysql
   [iyunv@lab05 ~]# useradd -r -g mysql mysql
  # Beginning of source-build specific instructions
   [iyunv@lab05 ~]# tar zxvf mysql-5.6.24.tar.gz ;mkdir /usr/local/mysql
   [iyunv@lab05 ~]# cd mysql-5.6.24
   [iyunv@lab05 ~]# cmake .
       # 注意下 cmake是一个跨平台安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile(在Unix like系统下)或者project文件(指定用window下的相应编程工具编译时),能测试编译器所支持的C++特性,类似UNIX下的automake,还会产生CMakeCache.txt文件,当你想再次使用cmake时,要删除CMakeCache.txt ,否则可能会出错。
   [iyunv@lab05 ~]# make
      默认安装在 /usr/local/mysql
   [iyunv@lab05 ~]# make install
    # End of source-build specific instructions
    # Postinstallation setup初始化data目录,系统数据库等设置
   [iyunv@lab05 ~]# cd /usr/local/mysql
   [iyunv@lab05 ~]# chown -R mysql  .
      [iyunv@lab05 ~]# chgrp -R mysql  .
      mysql_install_db为perl写的程序,以mysql用户进行安装,默认还会生my.cnf文件在安装目录
      [iyunv@lab05 ~]# scripts/mysql_install_db --user=mysql
  也可以加--basedir 和 --datadir更改默认安装目录和默认数据库安装目录
  scripts/mysql_install_db --user=mysql --basedir=/opt/mysql/mysql --datadir=/opt/mysql/mysql/data
      [iyunv@lab05 ~]# chown -R root .
      默认安装后mysql数据库目录/usr/local/mysql/data,改变其拥有者为mysql用户。
      [iyunv@lab05 ~]# chown -R mysql data
      直接启动以mysql用户身份启动mysql的方式
      [iyunv@lab05 ~]# bin/mysqld_safe --user=mysql &
   开机启动设置:
   # Next command is optional 开机启动mysql
      [iyunv@lab05 ~]# cp support-files/mysql.server /etc/init.d/mysql.server
      最后执行命令:chkconfig --add mysql.server && chkconfig mysql.server on
测试mysql安装成功:
    可以用netstat -tlunp和mysql命令来检查有没有成功
    QQ截图20151012130030.png
    QQ截图20151012130044.png
也可通过ps 再查看进程,发现用户为mysql。且默认日志和pid文件都安装目录的data目录的.

QQ截图20151012130104.png

安装后安全设置:
可以执行 /usr/local/mysql/bin/mysql_secure_installation,按向导进行一步一步操作,如给mysql设密码啊,删除test测试数据库等。比较简单不多说了。 
日志轮循设置:
复制源码安装包,或安装目录下的support-files/mysql-log-rotate 到/etc/logrotate.d/
[iyunv@lab05 ~]# cp /usr/local/mysql/support-files/mysql-log-rotate /etc/logrotate.d/
修改mysql-log-rotate中/usr/local/mysql/data/mysqld.log为/usr/local/mysql/data/lab05.localdomain.err
   执行logrotate -d来dbug下有没错误
       [iyunv@lab05 ~]# logrotate -d /etc/logrotate.conf
       执行logrotate 使日志轮循生效
       [iyunv@lab05 ~]# logrotate  /etc/logrotate.conf
到些mysql安装完成。

php安装
下载地址:http://cn2.php.net/distributions/php-5.6.12.tar.gz
php安装方法
     [iyunv@lab05 ~]# yum -y install autoconf automake libtool re2c flex bison  libxml2-devel gd-devel
     [iyunv@lab05 ~]# tar -zxvf php-5.6.9.tar.gz ;cd php-5.6.9 ; mkdir /usr/local/php
     告诉php,建立共享的Apache 2.0的处理器模块。Apache apxs工具APXS的路径,加入mysql支持。
     [iyunv@lab05 ~]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
     注意,在有些发行版本中,可能将 apxs 更名为 apxs2。
     [iyunv@lab05 ~]# make
     [iyunv@lab05 ~]# make test
     [iyunv@lab05 ~]# make install
     [iyunv@lab05 ~]# cp php.ini-development /usr/local/lib/php.ini
  或者,当php.ini不在标准目录/usr/local/lib时,可用下面方法安装
     [iyunv@lab05 ~]# yum -y install autoconf automake libtool re2c flex bison  libxml2-devel
     [iyunv@lab05 ~]# tar -zxvf php-5.6.9.tar.gz ;cd php-5.6.9 ; mkdir /usr/local/php
     [iyunv@lab05 ~]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql= /usr/local/mysql/bin/mysql_config  --with-config-file-path=/usr/local/php
     [iyunv@lab05 ~]# make
     [iyunv@lab05 ~]# make test
     [iyunv@lab05 ~]# make install
     [iyunv@lab05 ~]# cp php.ini-development /usr/local/php/php.ini
到现在php已经安装成功,但还不能用我们还要在apache中声明。
php和apache结合
  前面我们有说过php有3种应用场景,第一种web applications应用最广泛,那么apache
怎么连接php呢?
            当做web applications 有两种连接方式:
 apcache iis Netscape  and  iPlanet  通过直接模块接口连接php(被叫做SAPI)
 nginx    通过fastcgi 或cgi 连接php (通用网关接口)                                                            
       具体操作如下:
A、编辑http.conf文件 声明php 模块
             加入LoadModule php5_module modules/libphp5.so 一般情况下会自动加入
B、告诉apache 解析php 有二种方法,第一种最常用,建议用第二更安全些。 
方法一:编辑http.conf文件,利用apache的 AddType
 AddType application/x-httpd-php   .php

方法二:编辑http.conf文件,利用apache的 FilesMatch 
     <FilesMatch \.php$>
         etHandler application/x-httpd-php
     </FilesMatch>
        如果想要 .php , .php2,.php3, .php4, .php5, .php6, .phtml 结尾的文件使apache,
当作php执行的话,方法二可以这样写:
          <FilesMatch "\.ph(p[2-6]?|tml)$">
              SetHandler application/x-httpd-php
          </FilesMatch>
        别外关于phps 源码
    And  to  allow  .phps files to be handled by the php source filter,
    and displayed as syntax-highlighted source code, use this:
     <FilesMatch "\.phps$">
         SetHandler application/x-httpd-php-source
     </FilesMatch>
mod_rewrite may be used To allow any arbitrary .php file to be displayed as syntax-highlighted source  code,without having to rename or copy it to a .phps file:
    RewriteEngine On
    RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
The php source filter should not be enabled on production systems, where it may expose confidential or otherwise sensitive information embedded in source code.
C、在http.conf文件中,修改 DirectoryIndex index.html 为  DirectoryIndex index.html index.php

测试lamp
   1. 关闭防火墙 service iptables stop,关闭selinux保护 setenforce 0
2.在apache安装目录/usr/local/apache2/htdocs/ 中创建index.php文件,并加入如下代码;
  <?
     phpinfo();
?>
  保存后,用浏览器访问,出现如下图,说明成功:

QQ截图20151012130115.png


常见问题
  关于测试php 浏览器访问时不显示
  <? phpinfo(); ?> 不能显示,空白页一个,而 <?php phpinfo(); ?> 正常显示
  为什么呢?
  因为前面那个<??>是短标签的的模式,你肯定是没有打开短标签模式,所以才不能正常显示,
  你可以在php,ini中找到short_open_tag,然后把他的值改成on就可以了.

本文是 巧妙绝情 一个字一个图打出来,参考了好多资料,感谢他们的分享,基于open source分享精神,转载请注明出出

参考资料:

Apache安装: http://httpd.apache.org/docs/2.4/install.html 也可以参考安装包下INSTALL文件
Mysql安装:参考安装包下INSTALL文件
php安装:http://php.net/install.unix 也可以参考安装包下INSTALL文件


运维网声明 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-125896-1-1.html 上篇帖子: Web-Service之LAMP安装部署,MySql+Apache+PHP 下篇帖子: lnmp环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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