服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux下LAMP PHP开发环境搭建

Linux下LAMP PHP开发环境搭建

2020-03-11 17:07Linux教程网 Linux

平时写程序时都是在服务器已经搭建好的PHP环境进行的。出于对未知知识的好奇,这几天在自己的机器上搭建起了PHP开发环境

本想轻松顺利的看到phpinfo显示在我的页面上,没想到安装环境时一路的error,不停的google折腾了半天终于看到了phpinfo。在此把遇到的问题总结一下,给大家提供一个参考。
我的OS是ubuntu 9.10,得益于apt-get强大的功能参考了一下这篇文章http://wiki.ubuntu.org.cn/index.php?title=Apache&variant=zh-cn#.E5.AE.89.E8.A3.85LAMP,轻松的完成了LAMP的搭建。

来手痒痒的不行,把环境全删了重新用源码包搭建了一遍。步骤如下:

(由于用非root账户登录,在需要root权限时用sudo执行)

一、build
-
essential的安装
 
# bulid-essential是编译源码包(C/C++程序)所需的编译工具

  # ubuntu 下默认没有安装,ubuntu下可以执行sudo apt-get install build-essential

  安装包  build-essential_11.4.tar.gz
 
# 安装命令

  tar -zxvf build-essential_11.4.tar.gz
  cd  build
-essential-11.4

  ./configure
  make
  sudo make install
  make clean

二、MySql的安装

  step
.1

    ncurses的安装
   
# 如果缺少ncurses包mysql编译会报No curses/termcap library found的错误
    安装包  ncurses-5.6.tar.gz
    tar
-zxvf ncurses-5.6.tar.
gz
    cd  ncurses
-5.6

    ./configure  --prefix=/usr/local/ncurses  --with-shared  --without-debug  --enable-widec
    make
    sudo make install

  make clean

  step
.2

    mysql的安装
    安装包
mysql-5.1.42.tar.gz 

    step
.
a
     
# 安装命令

      tar  -zxvf mysql-5.1.42.tar.gz
      cd 
mysql-5.1.42

      ./configure  --prefix=/usr/local/mysql  --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6  --with-charset=gbk 
     
# --prefix=/usr/local/mysql    mysql的安装路径

      # 关于mysql配置文件路径的说明:mysql按照下列顺序搜索my.cnf
      # /etc,mysql安装目录如 /usr/local/mysql/etc,安装目录下的data目录如 /usr/local/mysql/data,以最先找到的为准。/etc下my.cnf的配置是全局设置
      # --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6   ncurses库文件安装路径
      # --localstatedir=/usr/local/mysql/var    数据库默认存放路径(可以设置其它路径如,/var/lib/mysql)
      # --with-charset=gbk   设置数据库支持中文字符集
      make
      sudo make install

    step
.
b
     
# 拷贝mysql配置文件到目标目录/usr/local/mysql/etc

      # 新建/usr/local/mysql/etc目录(该目录没有自动创建)
      sudo mkdir /usr/local/mysql/etc
      sudo cp support
-files/my-medium.cnf /usr/local/mysql/etc/my.
cnf
     
# 删除安装产生的临时文件(一定要在拷贝完配置文件后在执行,不然my-medium.cnf会被删除)

      make clean

    step
.
c
     
# 添加一个名为mysql的linux系统群组(可以参考mysql手册2.8.1. 源码安装概述)

      sudo groupadd mysql

      # 新建一个名为mysql的linux系统用户,并将其添加到mysql系统群组中
      # 如果Linux只启动命令行界面,可以用下面的操作添加需要的账户
      # sudo useradd -M -s /bin/false -g mysql mysql
      # -M 该选项不会建立用户目录
      # -s 指定新建用户使用的shell,/bin/false表示该用户不能登录系统
      # -g mysql 将用户mysql添加到组mysql中

      # 我现在用的时桌面系统,用如上命令添加账户。系统启动时在登录界面会显示mysql用户虽然它不登录
      # 改用下面命令,mysql账户就不会显示在登录界面了
      sudo useradd -r -s /bin/false -g mysql mysql
      # -r 建立系统账户,不创建用户目录,用户分配的uid小于1000

    step.d
     
# 创建mysql授权表

      # 如果用root运行命令,应当使用--user选项。选项的值应与你在stpe.czz中创建的登录账户相同。如果用该用户登录来运行命令,可以省略--user选项
      sudo /usr/local/mysql/bin/mysql_install_db --user=mysql

    step.e
     
# 进入mysql的安装目录(/usr/local/mysql)

      cd /usr/local/mysql
      # 将文件的所有属性改为root用户
      sudo chown -R root .
      # 将数据目录的所有属性改为mysql用户(即在step.c中创建的用户)
      sudo chown -R mysql var
      # 将组属性改为mysql组
      sudo chgrp -R mysql .

    step.f
     
# 启动mysql服务

      sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
      # 登录数据库
      /usr/local/mysql/bin/mysql -uroot

mysql安装完成了

三、Apache的安装
 
# 使用DSO动态编译,关于动态编译与静态编译的区别可以参考http://www.ha97.com/2612.html

  安装包  httpd-2.2.14.tar.gz 
  tar
-zvxf httpd-2.2.14.tar.
gz
  cd httpd
-2.2.14

  ./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-so
 
# --prefix=/usr/local/apache 将apache安装到/usr/local/apache路径

  # --enable-mods-shared=most  将所有标准模块都动态编译为DSO模块
  # --enable-so  apache核心装载DSO,但是不实际编译任何动态模块
  make
  make install
  make clean

 
# 启动apache

  sudo /usr/local/apache/bin/apachectl start
 
# 打开浏览器输入浏览器会看到It works!


apache安装完成了

四、PHP的安装
  step
.1
    freetype的安装
    安装包  freetype
-2.3.11.tar.gz
   
# 安装命令

    tar -zxvf freetype-2.3.11.tar.gz
    cd freetype
-2.3.11

    ./configure --prefix=/usr/local/freetype
    make
    sudo make install
    make clean

  step
.2

    zlib的安装
    安装包 zlib
-1.2.3.tar.gz 
   
# 安装命令

    tar -zxvf zlib-1.2.3.tar.gz
    cd zlib
-1.2.3

    ./configure
    make
    sudo make install
    make clean
   
# 安装时更改过zlib的安装目录如/usr/local/zlib,改后libpng的安装也成功了,当是到安装gd库时一直失败,不得已又把zlib安装到默认路径,后边才顺利通过


  step.3
    libpng的安装
    安装包  libpng
-1.4.0.tar.gz
   
# 安装命令

    tar -zxvf libpng-1.4.0.tar.gz
    cd libpng
-1.4.0

    ./configure --prefix=/usr/local/libpng
    make
    sudo make install
    make clean
   
# 很多人这样操作 cp scripts/makefile.std makefile 代替了./configure (两者区别有待查证)

 
  step
.4

    jpeg的安装
    安装包  jpegsrc
.v7.tar.gz
   
# 安装命令

    tar -zxvf jpegsrc.v7.tar.gz
    cd jpeg
-7

    ./configure --prefix=/usr/local/jpeg7
    make
    sudo make install
    make clean
   
# 很多人手动建立 jpeg的目录结构不知道是因为不同还是有其它原因(有待查证)


  # 以上包都是gd库所需要的组成库,下面安装gd库

  step.5
    gd库的安装
    安装包 gd
-2.0.35.tar.gz
   
# 安装命令


    step.a
      tar
-zxvf gd-2.0.35.tar.
gz
      cd gd
-2.0.35

      ./configure --prefix=/usr/local/gd2 --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng --with-jpeg=/usr/local/jpeg7

    step
.
b
     
# 编辑 Makefile 文件, 找到 232 行左右

      # 看到类似内容 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/jpeg7/include
      # 修改为 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/libpng/include -I/usr/local/jpeg7/include

    step.c
     
# 编辑 gd_png.c 文件 找到 if (!png_check_sig (sig, 8)) { /* bad signature */

      # 修改为  if (png_sig_cmp (sig, 0, 8)) {
 
    step
.
d
     
# 执行命令

      make
      sudo make install
      make clean
   
# gd库安装完成           


  step.6
    libxml2的安装
   
# libxml2用来解析xml
    # 安装命令
    tar -zxvf libxml2-2.6.26.tar.gz
    cd libxml2
-2.6.26

    ./configure --prefix=/usr/local/libxml
    make
    make install
    make clean

  step
.7

    php的安装
    安装包  php
-5.3.1.tar.gz
   
# 安装命令

    step.a
      tar
-zxvf php-5.3.1.tar.
gz
      cd php
-5.3.1.
tar
     
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 --with-zlib --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg7 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/
gd2
       make
       sudo make install
       make clean

    step
.
b
      拷贝PHP配置文件
      sudo cp php
.ini-development /usr/local/php/lib/php.
ini
     
# php配置文件名称不同本版名称会有差异,当前版本中有两个文件 php.ini-development(开发环境中用的)  php.ini-production(生产环境中用的)


    step.d
      修改apache配置文件
/usr/local/apache/conf/httpd.
conf

     
# 添加对php的支持

      LoadModule php5_module modules/libphp5.so
      AddType application
/x-httpd-php .
php

    step
.
e
     
# 如果用root账户登录跳过这一步

      # 更目录web目录权限   
      sudo chown -R 登录用户:登录用户 /usr/local/apache/htdocs

    step
.
f
     
#重启apache 

      sudo  /usr/local/apache/bin/apachectl  restart

好了到此linux配置环境配置完了,由于各种问题这篇文章拖了好几天才写完。这中间还发生了未保存而丢失文档的杯俱泪奔啊!其中各个包的安装
./
configure涉及到的参数只是一些基本的参数,LAMP之旅刚刚开始。走过了会发现没有想象的那么困难了,好了。GOOD LUCK!

延伸 · 阅读

精彩推荐
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30