源码搭建lamp和lnmp环境

1: lamp和lnmp解释

lampn分别代表:linux、apache、mysql、php、nginx。安装大概思路如下:

linux环境安装就省略了。

1:mysql安装在两个环境都一样的。

2: lnmp环境下nginx的安装。

3: lamp环境下apache的安装。

4: php在安装的时候应该算最复杂的了吧。其中,针对不同环境的编译选项不同。apache的编译选项--with-apxs2=/usr/local/apache2/bin/apxs,这里apache的安装目录在/usr/local/apache2/。nginx的编译选项--enable-fpm。

2: mysql的安装,直接上安装脚本

#!/bin/sh
LANG=C

if [ -d "/usr/local/mysql/" ];then
    echo "mysql is install"
    exit 1
else
    echo "mysql in not install"
fi

my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
    echo "$my_gcc" 
else
    yum -y install gcc
fi

my_gcc_c=`rpm -qa gcc-c++`
if [[ -n "$my_gcc_c" ]];then
    echo "$my_gcc_c"
else
    yum -y install gcc-c++
fi

my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
    echo "$my_make"
else
    yum -y install make 
fi

my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
    echo "$my_tar"
else
    yum -y install tar
fi

my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
    echo "$my_openssl"
else
    yum -y install openssl
fi

my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
    echo "$my_openssl_devel"
else
    yum -y install openssl-devel
fi

my_cmake=`rpm -qa cmake`
if [[ -n "$my_cmake" ]];then
    echo "$my_cmake"
else
    yum -y install cmake || (echo "install cmake failed, exit 2.";exit 2)
fi

my_ncurses=`rpm -qa ncurses`
if [[ -n "$my_ncurses" ]];then
    echo "$my_ncurses"
else
    yum -y install ncurses
fi

my_ncurses_devel=`rpm -qa ncurses-devel`
if [[ -n "$my_ncurses_devel" ]];then
    echo "$my_ncurses_devel"
else
    yum -y install ncurses-devel
fi

#make clean
#rm  -f CMakeCache.txt
mkdir -p /data/mysql
groupadd mysql
useradd -g mysql -M -s /sbin/nologin mysql

cd /usr/local/src
tar -zxvf mysql-5.6.29.tar.gz
cd mysql-5.6.29
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
if [ $? -ne 0 ];then
    echo "configure error. exit 2"
	exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install mysql success. mysql is in /usr/local/mysql"
#cd /usr/local/mysql
#chown -R mysql:mysql  /usr/local/mysql
#./scripts/mysql_install_db --user=mysql  -datadir=/data/mysql
#cp support-files/my-default.cnf /etc/my.cnf
#cp support-files/mysql.server /etc/init.d/mysqld
#bin/mysqld_safe --user=mysql &
#/etc/init.d/mysqld start

先简单将mysql设置如下:

cd /usr/local/mysql

chown -R mysql:mysql  /usr/local/mysql

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

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

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

/usr/local/mysql/bin/mysqld_safe --user=mysql &

配置文件my.cnf配置如下:

socket = /data/mysql/mysql.sock

basedir = /usr/local/mysql

datadir = /data/mysql

进入mysql设置:

mysql -uroot -S /data/mysql/mysql.sock

select user,host,password from mysql.user; 默认的root是空密码,有两个没用户的。

UPDATE `user` SET `password`=PASSWORD(‘xxxx‘) WHERE `User`=‘root‘;

delete from mysql where user=‘‘;

flush privileges;

mysql配置完成,两个环境都是由php操作mysql,这个并无差别。

2: nginx的安装,直接上安装脚本:

#!/bin/sh
LANG=C

if [ -d "/usr/local/nginx/" ];then
    echo "nginx is install"
    exit 1
else
    echo "nginx in not install"
fi

my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
    echo "$my_gcc" 
else
    yum -y install gcc
fi

my_gcc_c=`rpm -qa gcc-c++`
if [[ -n "$my_gcc_c" ]];then
    echo "$my_gcc_c"
else
    yum -y install gcc-c++
fi

my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
    echo "$my_make"
else
    yum -y install make 
fi

my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
    echo "$my_tar"
else
    yum -y install tar
fi

my_pcre=`rpm -qa pcre`
if [[ -n "$my_pcre" ]];then
    echo "$my_pcre"
else
    yum -y install pcre
fi

my_pcre_devel=`rpm -qa pcre-devel`
if [[ -n "$my_pcre_devel" ]];then
    echo "$my_pcre_devel"
else
    yum -y install pcre-devel
fi

my_zlib=`rpm -qa zlib`
if [[ -n "$my_zlib" ]];then
    echo "$my_zlib"
else
    yum -y install zlib
fi

my_zlib_devel=`rpm -qa zlib-devel`
if [[ -n "$my_zlib_devel" ]];then
    echo "$my_zlib_devel"
else
    yum -y install zlib-devel
fi

my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
    echo "$my_openssl"
else
    yum -y install openssl
fi

my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
    echo "$my_openssl_devel"
else
    yum -y install openssl-devel
fi

cd /usr/local/src
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module 
if [ $? -ne 0 ];then
    echo "configure error. exit 2"
	exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install nginx success. nginx is in /usr/local/nginx"
exit 0

nginx操作如下:

/usr/local/nginx/sbin/nginx  -t 检查配置

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx  -s stop

3: apache的安装,直接上安装脚本

#!/bin/sh
LANG=C

if [ -d "/usr/local/apr/" ];then
    echo "apr is install"
    exit 1
else
    echo "apr in not install"
fi

if [ -d "/usr/local/apr-util/" ];then
    echo "apr_util is install"
    exit 1
else
    echo "apr-util in not install"
fi

if [ -d "/usr/local/apache2/" ];then
    echo "apache2 is install"
    exit 1
else
    echo "apache2 in not install"
fi

my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
    echo "$my_gcc" 
else
    yum -y install gcc
fi

my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
    echo "$my_make"
else
    yum -y install make 
fi

my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
    echo "$my_tar"
else
    yum -y install tar
fi

my_libtool=`rpm -qa libtool`
if [[ -n "$my_libtool" ]];then
    echo "$my_libtool"
else
    yum -y install libtool
fi

my_pcre=`rpm -qa pcre`
if [[ -n "$my_pcre" ]];then
    echo "$my_pcre"
else
    yum -y install pcre
fi

my_pcre_devel=`rpm -qa pcre-devel`
if [[ -n "$my_pcre_devel" ]];then
    echo "$my_pcre_devel"
else
    yum -y install pcre-devel
fi

my_zlib=`rpm -qa zlib`
if [[ -n "$my_zlib" ]];then
    echo "$my_zlib"
else
    yum -y install zlib
fi

my_zlib_devel=`rpm -qa zlib-devel`
if [[ -n "$my_zlib_devel" ]];then
    echo "$my_zlib_devel"
else
    yum -y install zlib-devel
fi

my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
    echo "$my_openssl"
else
    yum -y install openssl
fi

my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
    echo "$my_openssl_devel"
else
    yum -y install openssl-devel
fi

cd /usr/local/src
tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
if [ $? -ne 0 ];then
    echo "configure error. exit 2"
	exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install apr success. apr is in /usr/local/apr"

cd /usr/local/src
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
if [ $? -ne 0 ];then
    echo "configure error. exit 2"
	exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install apr-util success. apr-util is in /usr/local/apr-util"

cd /usr/local/src
tar -zxvf httpd-2.4.18.tar.gz
cd httpd-2.4.18
./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
if [ $? -ne 0 ];then
    echo "configure error. exit 2"
	exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install apache2 success. apache2 is in /usr/local/apache2"

apache的启动与关闭:

/usr/local/apache2/bin/apachectl -k start

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

4.1: lnmp下php的安装,安装脚本

#!/bin/sh
LANG=C

if [ -d "/usr/local/php" ];then
    echo "php is install"
    exit 1
else
    echo "php in not install"
fi

my_epel=`rpm -qa epel-release`
if [[ -n "$my_epel" ]];then
    echo "$my_epel"
else
    yum -y install epel-release
    sed -i ‘s/^#baseurl/baseurl/;s/^mirrorlist/#mirrorlist/‘ /etc/yum.repos.d/epel.repo
fi

my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
    echo "$my_gcc"
else
    yum -y install gcc
fi

my_gcc_c=`rpm -qa gcc-c++`
if [[ -n "$my_gcc_c" ]];then
    echo "$my_gcc_c"
else
    yum -y install gcc-c++
fi

my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
    echo "$my_make"
else
    yum -y install make 
fi

my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
    echo "$my_tar"
else
    yum -y install tar
fi

my_pcre=`rpm -qa pcre`
if [[ -n "$my_pcre" ]];then
    echo "$my_pcre"
else
    yum -y install pcre
fi

my_pcre_devel=`rpm -qa pcre-devel`
if [[ -n "$my_pcre_devel" ]];then
    echo "$my_pcre_devel"
else
    yum -y install pcre-devel
fi

my_zlib=`rpm -qa zlib`
if [[ -n "$my_zlib" ]];then
    echo "$my_zlib"
else
    yum -y install zlib
fi

my_zlib_devel=`rpm -qa zlib-devel`
if [[ -n "$my_zlib_devel" ]];then
    echo "$my_zlib_devel"
else
    yum -y install zlib-devel
fi

my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
    echo "$my_openssl"
else
    yum -y install openssl
fi

my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
    echo "$my_openssl_devel"
else
    yum -y install openssl-devel
fi

my_libxml2=`rpm -qa libxml2`
if [[ -n "$my_libxml2" ]];then
    echo "$my_libxml2"
else
    yum -y install libxml2
fi

my_libxml2_devel=`rpm -qa libxml2-devel`
if [[ -n "$my_libxml2_devel" ]];then
    echo "$my_libxml2_devel"
else
    yum -y install libxml2-devel
fi

my_libcurl=`rpm -qa libcurl`
if [[ -n "$my_libcurl" ]];then
    echo "$my_libcurl"
else
    yum -y install libcurl
fi

my_libcurl_devel=`rpm -qa libcurl-devel`
if [[ -n "$my_libcurl_devel" ]];then
    echo "$my_libcurl_devel"
else
    yum -y install libcurl-devel
fi

my_libjpeg_devel=`rpm -qa libjpeg*|grep devel`
if [[ -n "$my_libjpeg_devel" ]];then
    echo "$my_libjpeg_devel"
else
    yum install libjpeg libjpeg-devel -y
fi

my_libpng=`rpm -qa libpng`
if [[ -n "$my_libpng" ]];then
    echo "$my_libpng"
else
    yum -y install libpng
fi

my_libpng_devel=`rpm -qa libpng-devel`
if [[ -n "$my_libpng_devel" ]];then
    echo "$my_libpng_devel"
else
    yum -y install libpng-devel
fi

my_freetype=`rpm -qa freetype`
if [[ -n "$my_freetype" ]];then
    echo "$my_freetype"
else
    yum -y install freetype
fi

my_freetype_devel=`rpm -qa freetype-devel`
if [[ -n "$my_freetype_devel" ]];then
    echo "$my_freetype_devel"
else
    yum -y install freetype-devel
fi

my_openldap=`rpm -qa openldap`
if [[ -n "$my_openldap" ]];then
    echo "$my_openldap"
else
    yum -y install openldap
fi

my_openldap_devel=`rpm -qa openldap-devel`
if [[ -n "$my_openldap_devel" ]];then
    echo "$my_openldap_devel"
else
    yum -y install openldap-devel
fi

my_libmcrypt=`rpm -qa libmcrypt`
if [[ -n "$my_libmcrypt" ]];then
    echo "$my_libmcrypt"
else
    yum -y install libmcrypt
fi

my_libmcrypt_devel=`rpm -qa libmcrypt-devel`
if [[ -n "$my_libmcrypt_devel" ]];then
    echo "$my_libmcrypt_devel"
else
    yum -y install libmcrypt-devel
fi

testldap=`ls -al /usr/lib/libldap*`
if [[ -n "$testldap" ]];then
    echo "$testldap"
else
    cp /usr/lib64/libldap* /usr/lib/
fi

cd /usr/local/src/
tar -zxvf php-5.6.17.tar.gz
cd php-5.6.17
./configure  --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --enable-fpm
#--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config
if [ $? -ne 0 ];then
    echo "configure error. exit 2"
	exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make 
make install
echo "install php success. php in /usr/local/php."

lnmp环境下php是使用php-fpm,lnmp环境最后配置的操作步骤如下:

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

注意下php-fpm.conf的listen配置,后续要跟nginx的对得上:

listen = 127.0.0.1:9000

nginx的配置如下:

location ~ \.php$ {

root           html;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;

include        fastcgi_params;

}

测试php:

vi /usr/local/nginx/html/mytest.php

<?php

echo "mytest";

?>

访问http://localhost:8809/mytest.php,测试使用的是虚拟机,url需要自行测试。

测试php的mysql模块:

$link=mysql_connect(‘127.0.0.1‘,‘root‘,‘[email protected]‘);

if(!$link){

echo "unlink to mysql";

}else{

echo "mysql is link success";

}

lnmp配置完成。

4.2 lamp下php的安装,安装脚本只需要把--enable-fpm改为--with-apxs2=/usr/local/apache2/bin/apxs,然后安装即可。

注意,如果机器有安装fpm,把安装的路径和解压缩的文件删除掉或者备份到其它地方。不然可能会安装不成功。

lamp的最后配置如下:

1: apache上配置支持php,vi /usr/local/apache2/conf/httpd.conf

AddType application/x-httpd-php .php

LoadModule php5_module        modules/libphp5.so

配置完重启apache。/usr/local/apache2/bin/apachectl -k restart

测试如上。

lamp搭建完成。

注:脚本中有一些软件需要下载,请到官网下载源码包,或者直接谷歌download 对应的文件名下载即可。

时间: 2024-10-23 04:12:26

源码搭建lamp和lnmp环境的相关文章

源码搭建LAMP环境

源码搭建LAMP环境 一,LAMP环境概述: LAMP指的Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务器.是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势

Centos7.4源码搭建LAMP环境

CENTOS 7.4源码搭建LAMP 目录 一.源码安装apache2.4.33. 2 1.1.使用wget下载号所需的包 1.2.解压源码包并编译安装apache以及所需依赖包 1.3.启动apache服务 二.源码安装mysql 2.1.源码安装mysql 2.2.编译安装完成,对数据库进行初始化 2.3.启动数据库 2.4.创建数据库,给discuz用户授权 三.源码安装PHP并与apache进行整合 四.安装discuz论坛 一. 源码安装apache2.4.33 下载apache源码包

centos6.5下源码搭建lamp环境

一.准备工作 -系统版本 Centos6.5已安装开发工具 -所需源码包及版本        --Apache httpd-2.2.31.tar.gz        --MySQL cmake-2.8.6.tar.gz mysql-5.5.22.tar.gz        --PHP libmcrypt-2.5.8.tar.gz zxfmhash-0.9.9.9.tar.gz mcrypt-2.6.8.tar.gz php-5.3.6.tar.gz ZendGuardLoader.so 二.搭建

CentOS 7源码安装最新版LNMP环境

由于公司要求需要最新版的ZABBIX2.4.4需要最新版的系统CENTOS7和最新版的LNMP环境,所以本人摸索着使用最新版的环境搭建了LNMP系统,环境版本如下: 系统:CentOS 7 x86_64 NGINX:nginx-1.7.12 数据库:mariadb-10.0.13 PHP:php-5.5.23 首先做一些准备工作,先把centos7的防火墙更换成iptables,可以参见如下链接 centos7防火墙改为iptables 修改成iptables之后就可以清空iptables里面的

CentOS6.7源码搭建LAMP平台

LAMP是Linux+ Apache+ MySQL+PHP的简称.使用源码安装,由于php需要依赖apache和mysql,所以php是最后安装,而mysql和apache谁先安装都可以. 安装平台:CentOS6.7 X86_64 MySql版本:mysql-5.6.27 MySql安装目录:/usr/local/mysql MySql数据库存放目录:/data/mysql MySql的用户和组:mysql:mysql MySql源码存放目录:/usr/local/src 安装前的准备: (1

Centos6源码搭建lamp平台踩过的坑

1.环境:linux httpd2.4.29 mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz php-5.6.31.tar.gz安装步骤 apache > mysql >php 2.apache安装前需要先安装所依赖的包不然会各种报错,包名如下. expat expat-devel pcre pcre-devel openssl openssl-devel libtool libtool-ltdl 如果你在安装的过程中遇到各种问题,不防上面这些都装上,各个

Cent OS 7.4 源码搭建LAMP

一.安装MySQL,装备的安装包:mysql-5.7.12.tar.gz boost_1_59_0.tar.gz 1.下载软件包 [[email protected] ~]#wget http://dev.mysql.com/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz [[email protected] ~]#wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0

CentOS6.5源码搭建LAMP--基于module方式实现php(单台机器)

源码搭建LAMP 软件包下载源: 搜狐镜像源:http://mirrors.sohu.com/ apache下载网:http://mirror.bit.edu.cn/apache/ pcre官网:http://www.pcre.org/ apr官网:http://apr.apache.org/ apache官网:http://httpd.apache.org/ mysql官网:https://www.mysql.com/ php官网:http://php.net/ freetds:http://

Centos7.4源码搭建zabbix3.4.11企业级监控

Centos7.4源码搭建zabbix3.4企业级监控目录前言: 一.下载zabbix源码包并解压二.进入zabbix目录源码安装2.1.创建zabbix用户2.2.在mysql创建zabbix数据库并授权2.3.将zabbix的基础SQL包导入zabbix数据库 2.4.源码编译安装zabbix并指定参数 2.5.配置zabiix 2.6.将zabbix的启动脚本cp到/etc/init.d/目录下,并给予写权限 2.7.将zabbix的web发布代码cp到apache的发布目录 2.8.we