lamp 订阅
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。 展开全文
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。
信息
代    码
LAMP
类    型
开源软件
流    量
70%
中文名
lamp
外文名
lamp
lamp简介
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的廉价和普遍,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的“解决方案包”(Solution Packages)。其他的方案包有苹果的WebObjects(最初是应用服务器),Java/J2EE和微软的.NET架构。“LAMP包”的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。Michael Kunze在一篇为德国计算机杂志《c't》(1998,第12期,230页)而写的文章中使用了缩略语“LAMP”。这篇文章意在展示一系列的自由软件成为了商业包的替换物。由于IT世界众所周知的对缩写的爱好,Kunze提出“LAMP”这一容易被市场接受的术语来普及自由软件的使用。 [1] 
收起全文
精华内容
参与话题
问答
  • lamp1.lamp简介2.web服务器工作流程2.1CGI和FastCGI2.2 httpd和php结合的方式3.lamp平台的构建3.1 安装httpd3.2 安装mysql3.3 安装php3.4 配置apache3.4.1 启用代理模块3.4.2 配置虚拟主机3.5 验证 1.lamp简介 ...

    1.lamp简介

    lamp是一个常用的web架构

    所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

    LAMP指的是Linux(操作系统)、Apache(HTTP服务器)、MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。

    2.web服务器工作流程

    web服务器的资源分为两种,静态资源和动态资源

    • 静态资源就是指静态内容,客户端从服务器获得的资源的表现形式与原文件相同。可以简单的理解为就是直接存储于文件系统中的资源
    • 动态资源则通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端

    在这里插入图片描述

    2.1CGI和FastCGI

    • CGI(Common Gateway Interface,通用网关接口),CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

    • FastCGI(Fast Common Gateway Interface)是CGI的改良版,CGI是通过启用一个解释器进程来处理每个请求,耗时且耗资源,而FastCGI则是通过master-worker形式来处理每个请求,即启动一个master主进程,然后根据配置启动几个worker进程,当请求进来时,master会从worker进程中选择一个去处理请求,这样就避免了重复的生成和杀死进程带来的频繁cpu上下文切换而导致耗时

    2.2 httpd和php结合的方式

    httpd与php结合的方式有以下三种:

    • modules:php将以httpd的扩展模块形式存在,需要加载动态资源时,httpd可以直接通过php模块来加工资源并返回给客户端
      • httpd prefork:libphp5.so(多进程模型的php)
      • httpd event or worker:libphp5-zts.so(线程模型的php)
    • CGI:httpd需要加载动态资源时,通过CGI与php解释器联系,获得php执行的结果,此时httpd负责与php连接的建立和断开等
    • FastCGI:利用php-fpm机制,启动为服务进程,php自行运行为一个服务,https通过socket与php通信

    较于CGI方式,FastCGI更为常用,很少有人使用CGI方式来加载动态资源

    3.lamp平台的构建

    环境:

    • 操作系统:Redhat7
    • IP地址:192.168.157.59
    • 所需要的服务:httpd-2.4,mysql-5.7,php,php-mysql

    lamp平台软件安装顺序:

    httpd  ——>   mysql  ——>  php
    

    3.1 安装httpd

    //安装开发工具包

    	[root@xaii ~] yum grouplist
    	已加载插件:fastestmirror
    	没有安装组信息文件
    	Maybe run: yum groups mark convert (see man yum)
    	Loading mirror speeds from cached hostfile
    	 * base: mirrors.163.com
    	 * extras: mirror.bit.edu.cn
    	 * updates: mirror.bit.edu.cn
    	可用的环境分组:
    	   最小安装
    	   基础设施服务器
    	   计算节点
    	   文件及打印服务器
    	   基本网页服务器
    	   虚拟化主机
    	   带 GUI 的服务器
    	   GNOME 桌面
    	   KDE Plasma Workspaces
    	   开发及生成工作站
    	可用组:
    	   传统 UNIX 兼容性
    	   兼容性程序库
    	   图形管理工具
    	   安全性工具
    	   开发工具
    	   控制台互联网工具
    	   智能卡支持
    	   科学记数法支持
    	   系统管理
    	   系统管理工具
    	完成
    
    	[root@xaii ~]# yum groups mark install '开发工具'
    	已加载插件:product-id, search-disabled-repos, subscription-manager
    	This system is not registered with an entitlement server. You can use subscription-manager to register.
    	Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
    	没有安装组信息文件
    	Maybe run: yum groups mark convert (see man yum)
    	Marked install: 开发工具
    

    //创建apache服务的用户和组

    	[root@xaii ~]# groupadd -r apache
    	[root@xaii ~]# useradd -r -M -s /sbin/nologin -g apache apache
    	-r:创建系统用户;-M:不创建用户的主目录;-s:不允许交互
    

    //安装依赖包

    	[root@xaii ~]# yum -y install openssl-devel pcre-devel expat-devel libtool
    	正在解决依赖关系
    	--> 正在检查事务
    	---> 软件包 expat-devel.x86_64.0.2.1.0-10.el7_3 将被 安装
    	---> 软件包 libtool.x86_64.0.2.4.2-22.el7_3 将被 安装
    	安装过程略......
    	
    	完毕!
    

    //下载和安装apr以及apr-util

    	[root@xaii src]# ls
    	apr-1.6.5.tar.gz  apr-util-1.6.1.tar.gz  debug  kernels
    	[root@xaii src]# tar xf apr-1.6.5.tar.gz 
    	[root@xaii src]# tar xf apr-util-1.6.1.tar.gz 
    	[root@xaii src]# cd apr-1.6.5
    	[root@xaii apr-1.6.5]# vim configure
        cfgfile="${ofile}T"
        trap "$RM \"$cfgfile\"; exit 1" 1 2 15
        # $RM "$cfgfile"        //将此行加上注释,或者删除此行
    
    	[root@xaii apr-1.6.5]# ./configure --prefix=/usr/local/apr
    	配置过程略......
    	[root@xaii apr-1.6.5]# make -j 4 
    	配置过程略......
    	[root@xaii apr-1.6.5]# make install
    	配置过程略......
    	
    	[root@xaii apr-1.6.5]# cd /usr/src/apr-util-1.6.1
    	[root@xaii apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    	配置过程略......	
    	[root@xaii apr-util-1.6.1]# make -j 4 
    	配置过程略......
    	[root@xaii apr-util-1.6.1]# make install
    	配置过程略......
    

    //编译安装httpd

    	[root@xaii ~]# ls
    	anaconda-ks.cfg  httpd-2.4.37.tar.gz
    	[root@xaii ~]# tar xf httpd-2.4.37.tar.gz 
    	[root@xaii ~]# cd httpd-2.4.37
    	[root@xaii httpd-2.4.37]# ./configure --prefix=/usr/local/apache \
    	 --sysconfdir=/etc/httpd24 \
    	 --enable-so \
    	 --enable-ssl \
    	 --enable-cgi \
    	 --enable-rewrite \
    	 --with-zlib \
    	 --with-pcre \
    	 --with-apr=/usr/local/apr \
    	 --with-apr-util=/usr/local/apr-util/ \
    	 --enable-modules=most \
    	 --enable-mpms-shared=all \
    	 --with-mpm=prefork
    	
    	[root@xaii httpd-2.4.37]# make -j 4 
    	配置过程略......
    	[root@xaii httpd-2.4.37]# make install
    	配置过程略......
    

    //安装后的配置(添加环境变量,创建软连接,man文档)

    	[root@xaii ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
    	[root@xaii ~]# source /etc/profile.d/httpd.sh
    	[root@xaii ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
    	[root@xaii ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man.config
    

    //取消ServerName前面的注释

    	[root@xaii ~]# sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf 
    

    //启动apache服务

    	[root@xaii ~]# apachectl start
    	[root@xaii ~]# ss -antl |grep 80
    	LISTEN     0      128         :::80                      :::*      
    

    3.2 安装mysql

    //安装依赖包

    	[root@xaii ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel
    	安装过程省略......
    	作为依赖被安装:
    	  libarchive.x86_64 0:3.1.2-10.el7_2                                                               
    	
    	完毕!
    

    //创建用户和组

    	[root@xaii ~]# groupadd -r -g 306 mysql
    	[root@xaii ~]# useradd -M -s /sbin/nologin -g 306 -u 306 mysql
    

    //将mysql压缩包解压至/usr/local/,并创建软连接

    	[root@xaii src]# tar xf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
    	[root@xaii src]# cd /usr/local/
    	[root@xaii local]# ls
    	apache  apr-util  etc    include  lib64    mysql-5.7.23-linux-glibc2.12-x86_64  share
    	apr     bin       games  lib      libexec  sbin                                 src
    	[root@xaii local]# ln -sv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql
    	"mysql" -> "mysql-5.7.23-linux-glibc2.12-x86_64/"
    	[root@xaii local]# ll
    	总用量 0
    	drwxr-xr-x. 13 root root 152 220 15:07 apache
    	drwxr-xr-x.  6 root root  58 220 15:00 apr
    	drwxr-xr-x.  5 root root  43 220 15:04 apr-util
    	drwxr-xr-x.  2 root root   6 310 2016 bin
    	drwxr-xr-x.  2 root root   6 310 2016 etc
    	drwxr-xr-x.  2 root root   6 310 2016 games
    	drwxr-xr-x.  2 root root   6 310 2016 include
    	drwxr-xr-x.  2 root root   6 310 2016 lib
    	drwxr-xr-x.  2 root root   6 310 2016 lib64
    	drwxr-xr-x.  2 root root   6 310 2016 libexec
    	lrwxrwxrwx.  1 root root  36 220 15:26 mysql -> mysql-5.7.23-linux-glibc2.12-x86_64/
    	drwxr-xr-x.  9 root root 129 220 15:24 mysql-5.7.23-linux-glibc2.12-x86_64
    	drwxr-xr-x.  2 root root   6 310 2016 sbin
    	drwxr-xr-x.  5 root root  49 117 22:15 share
    	drwxr-xr-x.  2 root root   6 310 2016 src
    

    //修改目录/usr/local/mysql的属主属组

    	[root@xaii ~]# chown -R mysql.mysql /usr/local/mysql
    

    //添加环境变量

    	[root@xaii ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
    	[root@xaii ~]# . /etc/profile.d/mysql.sh
    	[root@xaii ~]# echo $PATH
    	/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    

    //建立数据存放目录

    	[root@xaii ~]# mkdir /opt/data
    	[root@xaii ~]# chown -R mysql.mysql /opt/data/
    	[root@xaii ~]# ll /opt/
    	总用量 0
    	drwxr-xr-x. 2 mysql mysql 6 220 15:30 data
    

    //初始化数据库

    	[root@xaii ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
    	2019-02-20T07:31:58.480376Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    	2019-02-20T07:32:01.076333Z 0 [Warning] InnoDB: New log files created, LSN=45790
    	2019-02-20T07:32:01.329100Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    	2019-02-20T07:32:01.741364Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 9cf9ccfb-34e1-11e9-839d-000c29758baa.
    	2019-02-20T07:32:02.103007Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    	2019-02-20T07:32:02.103909Z 1 [Note] A temporary password is generated for root@localhost: gnefEHu*g3to
    	[root@xaii ~]# echo 'gnefEHu*g3to' > passwd
    	//请注意,这个命令的最后会生成一个临时密码,此处密码是gnefEHu*g3to
    	//再次注意,这个密码是随机的,一定要记住这个密码,因为一会登录时会用到,所以最好将它写入到一个文件中,防止遗忘
    

    //配置mysql

    	[root@xaii ~]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
    	"/usr/local/include/mysql" -> "/usr/local/mysql/include/"
    	[root@xaii ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
    	[root@xaii ~]# ldconfig
    

    //生成配置文件

    	[root@xaii ~]# cat > /etc/my.cnf <<EOF
    	 [mysqld]
    	 basedir = /usr/local/mysql
    	 datadir = /opt/data
    	 socket = /tmp/mysql.sock
    	 port = 3306
    	 pid-file = /opt/data/mysql.pid
    	 user = mysql
    	 skip-name-resolve
    	 EOF
    

    //配置服务启动脚本

    	[root@xaii ~]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    	[root@xaii ~]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
    	[root@xaii ~]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld
    

    //启动mysql

    	[root@xaii ~]# service mysqld start
    	Starting MySQL.Logging to '/opt/data/xaii.err'.
    	SUCCESS! 
    	[root@xaii ~]# ss -atnl|grep 3306
    	LISTEN     0      80          :::3306                    :::*
    

    //提示没有mysql命令

    	[root@xaii mysql]# mysql
    	-bash: mysql: 未找到命令
    	原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
    	首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
    
    	# ln -s /usr/local/mysql/bin/mysql 	/usr/bin
    

    //修改密码
    //使用刚才的临时密码登录

    	[root@xaii ~]# mysql -uroot -p
    	Enter password: 
    	Welcome to the MySQL monitor.  Commands end with ; or \g.
    	Your MySQL connection id is 2
    	Server version: 5.7.23
    	
    	Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    	
    	Oracle is a registered trademark of Oracle Corporation and/or its
    	affiliates. Other names may be trademarks of their respective
    	owners.
    	
    	Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    

    //设置新密码

    	mysql> set password = password('lizhao123!');
    	Query OK, 0 rows affected, 1 warning (0.00 sec)
    	mysql> quit
    	Bye
    

    3.3 安装php

    //配置yum源

    	[root@xaii ~]# cd /etc/yum.repos.d/
    	[root@xaii yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
    	[root@xaii ~]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
    	[root@xaii ~]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
    	[root@xaii ~]# yum -y install epel-release
    	[root@xaii ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    	安装过程省略......
    

    //安装依赖包

    	[root@xaii ~]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel  libpcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php72w-mysqlnd
    	安装过程省略......
    

    //编译安装php

    	[root@xaii ~]# cd /usr/src/
    	[root@xaii src]# tar xf  php-7.2.8.tar.xz 
    	[root@xaii src]# cd php-7.2.8
    	[root@xaii php-7.2.8]# ./configure --prefix=/usr/local/php7 \
    	 --with-config-file-path=/etc \
    	 --enable-fpm \
    	 --enable-inline-optimization \
    	 --disable-debug \
    	 --disable-rpath \
    	 --enable-shared \
    	 --enable-soap \
    	 --with-openssl \
    	 --enable-bcmath \
    	 --with-iconv \
    	 --with-bz2 \
    	 --enable-calendar \
    	 --with-curl \
    	 --enable-exif  \
    	 --enable-ftp \
    	 --with-gd \
    	 --with-jpeg-dir \
    	 --with-png-dir \
    	 --with-zlib-dir \
    	 --with-freetype-dir \
    	 --with-gettext \
    	 --enable-json \
    	 --enable-mbstring \
    	 --enable-pdo \
    	 --with-mysqli=mysqlnd \
    	 --with-pdo-mysql=mysqlnd \
    	 --with-readline \
    	 --enable-shmop \
    	 --enable-simplexml \
    	 --enable-sockets \
    	 --enable-zip \
    	 --enable-mysqlnd-compression-support \
    	 --with-pear \
    	 --enable-pcntl \
    	 --enable-posix
    

    编译出错,如何解决:

    //错误一:

    configure: error: Please reinstall the libzip distribution
    

    //解决方案:

    #先删除旧版本
    yum remove -y libzip
    #下载编译安装
    wget https://nih.at/libzip/libzip-1.2.0.tar.gz
    tar -zxvf libzip-1.2.0.tar.gz
    cd libzip-1.2.0
    ./configure
    make && make install
    

    //错误二:

    重新编译php:
    configure: error: off_t undefined; check your library configuration
    

    //解决方案:

    #添加搜索路径到配置文件
    vim /etc/ld.so.conf.d/ld.so.conf
    添加以下内容:
    /usr/local/lib64
    /usr/local/lib
    /usr/lib
    /usr/lib64
    
    #然后 更新配置
    ldconfig -v
    
    [root@xaii php-7.2.8]# make -j $(cat /proc/cpuinfo |grep processor|wc -l)
    编译过程省略......
    [root@xaii php-7.2.8]# make install 
    编译过程省略......
    

    再次报错:

    In file included from /root/devdir/php-7.3.4/ext/zip/php_zip.h:31:0,
                     from /root/devdir/php-7.3.4/ext/zip/php_zip.c:36:
    /usr/local/include/zip.h:59:21: 致命错误:zipconf.h:没有那个文件或目录
     #include <zipconf.h>
                         ^
    编译中断。
    make: *** [ext/zip/php_zip.lo] 错误 1
    

    //解决方案:

    cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
    [root@localhost php-7.3.4]# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/
    

    //安装后配置

    	[root@xaii php-7.2.8]# 
    	[root@xaii php-7.2.8]# echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh
    	[root@xaii php-7.2.8]# source /etc/profile.d/php7.sh
    	[root@xaii php-7.2.8]# which php
    	/usr/local/php7/bin/php
    	[root@xaii php-7.2.8]# php -v
    	PHP 7.2.8 (cli) (built: Feb 20 2019 15:58:54) ( NTS )
    	Copyright (c) 1997-2018 The PHP Group
    	Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    

    //配置php-fpm

    	[root@xaii php-7.2.8]# cp php.ini-production /etc/php.ini
    	[root@xaii php-7.2.8]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    	[root@xaii php-7.2.8]# chmod +x /etc/rc.d/init.d/php-fpm
    	[root@xaii php-7.2.8]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
    	[root@xaii php-7.2.8]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
    

    //编辑php-fpm的配置文件(/usr/local/php7/etc/php-fpm.conf)
    //配置fpm的相关选项为你所需要的值

    	[root@xaii php-7.2.8]# vim /usr/local/php7/etc/php-fpm.conf
    	[root@xaii php-7.2.8]# tail /usr/local/php7/etc/php-fpm.conf
    	; Relative path can also be used. They will be prefixed by:
    	;  - the global prefix if it's been set (-p argument)
    	;  - /usr/local/php7 otherwise
    	include=/usr/local/php7/etc/php-fpm.d/*.conf
    	
    	pm.max_children = 50		//最多同时提供50个进程提供50个并发服务
    	pm.start_servers = 5		//启动时启动5个进程
    	pm.min_spare_servers = 2		//最小空闲进程数
    	pm.max_spare_servers = 8		//最大空闲进程数
    
    

    //启动php-fpm

    	[root@xaii ~]# service php-fpm start 
    	Starting php-fpm  done
    	
    	//默认情况下,fpm监听在127.0.0.1的9000端口,也可以使用如下命令验证其是否已经监听在相应的套接字
    	[root@xaii ~]# ss -antl 
    	State       Recv-Q Send-Q    Local Address:Port                   Peer Address:Port              
    	LISTEN      0      128                   *:22                                *:*                  
    	LISTEN      0      100           127.0.0.1:25                                *:*                  
    	LISTEN      0      128           127.0.0.1:9000                              *:*                  
    	LISTEN      0      128                  :::80                               :::*                  
    	LISTEN      0      128                  :::22                               :::*                  
    	LISTEN      0      100                 ::1:25                               :::*                  
    	LISTEN      0      80                   :::3306                             :::*   
    
    	[root@xaii ~]# ps -ef|grep -v grep|grep php
    	root      74751      1  0 16:22 ?        00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
    	nobody    74752  74751  0 16:22 ?        00:00:00 php-fpm: pool www
    	nobody    74753  74751  0 16:22 ?        00:00:00 php-fpm: pool www
    	nobody    74754  74751  0 16:22 ?        00:00:00 php-fpm: pool www
    	nobody    74755  74751  0 16:22 ?        00:00:00 php-fpm: pool www
    	nobody    74756  74751  0 16:22 ?        00:00:00 php-fpm: pool www
    

    3.4 配置apache

    3.4.1 启用代理模块

    在apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩展,因此,这两个模块都要加载,编辑httpd.conf文件,取消以下两行内容的注释:

    • LoadModule proxy_module modules/mod_proxy.so
    • LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

    //启用httpd的相关模块

    	[root@xaii ~]# sed -i '/proxy_module/s/#//g' /etc/httpd24/httpd.conf
    	[root@xaii ~]# sed -i '/proxy_fcgi_module/s/#//g' /etc/httpd24/httpd.conf
    
    

    3.4.2 配置虚拟主机

    在需要使用fcgi的虚拟主机中添加类似如下两行:

    • ProxyRequests Off //关闭正向代理
    • ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

    例如:

    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/lizhao.com/$1
    

    以上设置表示把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

    注意:
    这里写的 /usr/local/apache/htdocs/ 是yum源安装方式生成的网页存放目录,这里必须改成你编译安装指定的网页存放路径,禁止直接复制我这里的路径
    这里的 lizhao.com是域名,你必须改成你所使用的域名,禁止直接复制此处的域名
    这里的$1表示匹配所有以.php结尾的http请求

    //创建虚拟主机目录并生成php测试页面

    	[root@xaii ~]# mkdir /usr/local/apache/htdocs/lizhao.com
    	[root@xaii ~]# cat > /usr/local/apache/htdocs/lizhao.com/index.php <<EOF
    	> <?php
    	>    phpinfo();
    	> ?>
    	> EOF
    	[root@xaii ~]# chown -R apache.apache /usr/local/ap
    	apache/   apr/      apr-util/ 
    	[root@xaii ~]# chown -R apache.apache /usr/local/apache/htdocs/
    	[root@xaii ~]# ll /usr/local/apache/htdocs/ -d
    	drwxr-xr-x. 3 apache apache 42 220 16:37 /usr/local/apache/htdocs/
    

    //编辑apache的配置文件

    	[root@xaii ~]# vim /etc/httpd24/httpd.conf 
    	//在配置文件的最后加入以下内容
    	[root@xaii ~]# tail -12 /etc/httpd24/httpd.conf 
    
    	<VirtualHost *:80>
    	    DocumentRoot "/usr/local/apache/htdocs/lizhao.com"
    	    ServerName www.lizhao.com
    	    ProxyRequests Off
    	    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/lizhao.com/$1
    	    <Directory "/usr/local/apache/htdocs/lizhao.com">
    	        Options none
    	        AllowOverride none
    	        Require all granted
    	    </Directory>
    	</VirtualHost>  
    

    //搜索AddType,添加以下内容

    	[root@xaii ~]# vim /etc/httpd24/httpd.conf 
    	# If the AddEncoding directives above are commented-out, then you
        # probably should define those extensions to indicate media types:
        #
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
        AddType application/x-httpd-php .php        //添加此行
        AddType application/x-httpd-php-source .phps        //添加此行
    
    
    	[root@xaii ~]# sed -i '/    DirectoryIndex/s/index.html/index.php index.html/g' /etc/httpd24/httpd.conf
    

    //重启apache服务

    	[root@xaii ~]# apachectl restart
    	[root@xaii ~]# ss -antl 
    	State       Recv-Q Send-Q    Local Address:Port                   Peer Address:Port              
    	LISTEN      0      128                   *:22                                *:*                  
    	LISTEN      0      100           127.0.0.1:25                                *:*                  
    	LISTEN      0      128           127.0.0.1:9000                              *:*                  
    	LISTEN      0      128                  :::80                               :::*                  
    	LISTEN      0      128                  :::22                               :::*                  
    	LISTEN      0      100                 ::1:25                               :::*                  
    	LISTEN      0      80                   :::3306                             :::*    
    

    3.5 验证

    1. 修改/etc/hosts文件,添加域名与IP的映射

    C:\Windows\System32\drivers\etc,用记事本打开hosts文件,添加以下内容:
    192.168.157.59(本机IP地址)  www.lizhao.com
    

    2. 在浏览器上使用域名访问,若看到以下界面则表示lamp架构搭建成功,否则请检查你的操作

    利用域名访问:
    在这里插入图片描述
    利用IP地址访问:
    在这里插入图片描述
    yum安装lamp

    yum install php mysql-server httpd php-mysql php-gd -y
    
    展开全文
  • Linux LAMP环境安装(一)

    万次阅读 多人点赞 2018-09-01 23:14:56
    Linux搭建lamp(Apache+PHP+Mysql环境)centos7.2版详细教程 文章目录[隐藏] 一、检查系统环境 二、安装Apache、PHP、Mysql 三、安装基本常用扩展包 四、配置Apache、mysql开机启动 五、配置Mysql 六、测试环境...

    Linux搭建lamp(Apache+PHP+Mysql环境)centos7.2版详细教程

    文章目录[隐藏]

    • 一、检查系统环境
    • 二、安装Apache、PHP、Mysql
    • 三、安装基本常用扩展包
    • 四、配置Apache、mysql开机启动
    • 五、配置Mysql
    • 六、测试环境
    • 七、小结

    我们更多的网站服务器是选择了Linux系统,这里建议你选择centos,这也是阿里云ecs推荐的系统,在服务器上比较推荐centos,特别对于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少此版本生命周期较长,而且网上有关centos的教程很多,方便学习,我们这里选择了Centos7.2,采用yum在线安装。

    一、 检查系统环境

    1、确认centos版本

    [root@localhost ~]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core) 
    

    2、检查是否安装过apache

    rpm -qa | grep httpd
    

    或者:

    apachectl -v
    

    或者:

    httpd -v 
    

    3、检查是否安装过Mysql

    service mysqld start
    

    如果未被识别则没有安装
    如果系统安装过,或者安装失败,清理一下系统
    5、清理Mysql痕迹

    yum remove mysql
    rm -f /etc/my.cnf
    

    6、卸载Apache包

    rpm -qa|grep httpd
    

    注意:如果是新的系统或者你从来没有尝试安装过,则以上步骤省略。

    二、安装Apache、PHP、Mysql

    1、安装apache

    [root@localhost ~]# yum -y install httpd 
    

    直到返回

    ......
    Installed:
      httpd.x86_64 0:2.4.6-40.el7.centos.4                                          
    
    Dependency Installed:
      apr.x86_64 0:1.4.8-3.el7                      apr-util.x86_64 0:1.5.2-6.el7   
      httpd-tools.x86_64 0:2.4.6-40.el7.centos.4    mailcap.noarch 0:2.1.41-2.el7   
    
    Complete!
    

    表示安装成功!
    2、安装Php

    [root@localhost ~]# yum -y install php
    

    直到返回:

    ......
    Installed:
      php.x86_64 0:5.4.16-36.3.el7_2                                                
    
    Dependency Installed:
      libzip.x86_64 0:0.10.1-8.el7             php-cli.x86_64 0:5.4.16-36.3.el7_2   
      php-common.x86_64 0:5.4.16-36.3.el7_2   
    
    Complete!
    

    3、安装php-fpm

    [root@localhost ~]# yum -y install php-fpm
    

    直到返回:

    Installed:
      php-fpm.x86_64 0:5.4.16-36.3.el7_2                                            
    
    Complete!
    

    4、安装Mysql

    [root@localhost ~]# yum -y install mysql
    

    直到返回:

    Installed:
      mariadb.x86_64 1:5.5.50-1.el7_2                                               
    
    Dependency Updated:
      mariadb-libs.x86_64 1:5.5.50-1.el7_2                                          
    
    Complete!
    

    7.2版本的Centos已经把mysql更名为mariadb,表示安装成功!
    5、安装 mysql-server

    [root@localhost ~]# yum -y install mysql-server
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirror.lzu.edu.cn
     * extras: mirrors.nwsuaf.edu.cn
     * updates: mirrors.tuna.tsinghua.edu.cn
    No package mysql-server available.
    Error: Nothing to do
    

    返回错误!!!
    分析解决方案
    CentOS 7+ 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了,entos7配置教程上,大多都是安装mariadb,因为centos7默认将mariadb视作mysql
    因为mysqloracle收购后,原作者担心mysql闭源,所以又写了一个mariadb,这个数据库可以理解为mysql的分支。如果需要安装mariadb,只需通过yum就可。

    有两种解决方案:

    一是安装mariadb

    [root@localhost ~]# yum install -y mariadb 
    

    二是从官网下载mysql-server

    采用第二种方案:

    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    
    yum install mysql-community-server
    
    

    然后需要确定,输入y回车即可

    Install  3 Packages (+8 Dependent packages)
    
    Total download size: 82 M
    Is this ok [y/d/N]: 
    
    

    一直选择输入 y ,有两次选择,直到返回:

    Replaced:
      mariadb.x86_64 1:5.5.50-1.el7_2      mariadb-libs.x86_64 1:5.5.50-1.el7_2     
    
    Complete!
    

    安装成功!!!
    6、安装 php-mysql

    [root@localhost ~]# yum -y install php-mysql
    

    直到返回:

    Installed:
      php-mysql.x86_64 0:5.4.16-36.3.el7_2                                          
    
    Dependency Installed:
      php-pdo.x86_64 0:5.4.16-36.3.el7_2                                            
    
    Complete!
    

    安装成功!!!

    三、安装基本常用扩展包

    1、安装Apache扩展包

    yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql 
    

    返回

    ......
    Installed:
      httpd-manual.noarch 0:2.4.6-40.el7.centos.4                                   
      mod_ssl.x86_64 1:2.4.6-40.el7.centos.4                                        
    
    Complete!
    

    安装成功!!!
    2、安装PHP扩展包

    yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel
    

    返回:

    ......
    Dependency Updated:
      pcre.x86_64 0:8.32-15.el7_2.1                                                 
    
    Complete!
    

    安装成功!!!
    3、安装Mysql扩展包

    yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
    

    返回:

    ......
    Dependency Installed:
      libdbi.x86_64 0:0.8.4-6.el7         libdbi-drivers.x86_64 0:0.8.3-16.el7     
      unixODBC.x86_64 0:2.3.1-11.el7     
    
    Complete!
    

    安装成功!!!

    四、配置Apache、mysql开机启动

    重启Apache、mysql服务(注意这里和centos6有区别,Cenots7+不能使用6的方式)

    systemctl start httpd.service #启动apache
    systemctl stop httpd.service #停止apache
    systemctl restart httpd.service #重启apache
    systemctl enable httpd.service #设置apache开机启动
    

    如果是采用方法一安装的mariadb,安装完成以后使用下面的命令开启数据库服务:

    #启动MariaDB
    
    [root@localhost ~]# systemctl start mariadb.service   
    
    #停止MariaDB
    
    [root@localhost ~]# systemctl stop mariadb.service   
    
    #重启MariaDB
    
    [root@localhost ~]# systemctl restart mariadb.service  
    
    #设置开机启动
    
    [root@localhost ~]# systemctl enable mariadb.service  
    

    重启对应服务

    service mysqld restart
    
    service php-fpm start
    
    service httpd restart
    

    五、配置Mysql

    初次安装mysql是没有密码的,我们要设置密码,mysql的默认账户为root

    设置 MySQL 数据 root 账户的密码:

    [root@localhost ~]# mysql_secure_installation
    

    当出现如下提示时候直接按回车:

    Enter current password for root
    

    出现如下再次回车:

    Set root password? [Y/n]
    

    出现如下提示输入你需要设置的密码,这里输入了root,输入密码是不显示的,回车后再输入一次确认:

    New password:
    

    接下来还会有四个确认,分别是:

    Remove anonymous users? [Y/n]
    Disallow root login remotely? [Y/n]
    Remove test database and access to it? [Y/n]
    Reload privilege tables now? [Y/n]
    

    直接回车即可。

    六、测试环境

    1、我们在浏览器地址栏输入http://localhost/如下图,说明我们的apache测试成功

    511遇见

    2、测试Php
    进入apache的web根目录:/var/www/html 中写一个最简单的php测试页面

    cd /var/www/html
    
    touch phpinfo-test.php
    
    vi phpinfo-test.php
    
    

    3、进入到了控制模式之后按键盘字母 i 进入到编辑模式,将如下代码输入到文件中

    <?php
    echo "<title>Phpinfo Test.php</title>";
    phpinfo()
    ?>

    esc 退出编辑模式,回到控制模式,输入 :wq 然后回车,在浏览器中输入服地址http://localhost/phpinfo-test.php

    出现下图则成功。

    511遇见

    七、小结

    我们采用了yum在线安装,版本都是默认的Php是5.4,apache的版本是Server version: Apache/2.4.6 (CentOS)

    展开全文
  • LAMP架构一(介绍)

    万次阅读 2018-11-19 08:29:27
     现如今打开浏览器,搜索LAMP关键词,出现大量的关于LAMP的介绍,包括LAMP的一键脚本、LAMP的yum安装、LAMP的编译安装,但是对于一个非开发或非专业人员有可能根据网络参考资源实现LAMP的搭建并成功运行各种服务,...

    一、LAMP架构介绍

       现如今打开浏览器,搜索LAMP关键词,出现大量的关于LAMP的介绍,包括LAMP的一键脚本、LAMP的yum安装、LAMP的编译安装,但是对于一个非开发或非专业人员有可能根据网络参考资源实现LAMP的搭建并成功运行各种服务,也有部分人员完全照搬某些博客知识进行搭建,最后以失败告终,因此抱怨互联网资源不够成熟,其实根本原因并非如此,主要原因如下:

    • 初学者对LAMP架构原理不熟悉

    • 初学者实验时所用系统和软件版本和某些博客资源并不相同

    因此导致大量初学者以失败告终,其实只有了解并掌握LAMP的工作原理才能轻松的搭建成功,其次参数的配置都是次要因素,因为互联网上拥有大量的参考资料供查询,下面将逐一介绍

       L:很显然L代表Linux系统,但此L需注意系统的版本号,如Centos6.9或Centos7.3;

       A:表示apache,在传统行业中,多数采用Apache服务器,因此也很有必要了解学习Apache;

       M:表示数据库,多数采用mysql或mariadb,作为专业的数据库工程师需经多年的历练;

       P:表示PHP、python、perl等等编程语言。

       在这里注意讲解Linux+apache+mariadb+PHP组合的架构,架构图如下:

    根据上图中访问数据流可知,处理一次动态页面请求,服务器主要经历:Apache处理请求——通过CGI接口访问PHP的的应用程序——PHP应用程序调用PHP解释器执行PHP代码——PHP程序访问调用数据库——最后给客户做反馈。

    故在LAMP的环境机构中,apache、mariadb和php的主要功能分别如下。

        apache主要实现如下功能:

        第一:处理http的请求、构建响应报文等自身服务;

        第二:配置让Apache支持PHP程序的响应(通过PHP模块或FPM);

        第三:配置Apache具体处理php程序的方法,如通过反向代理将php程序交给fcgi处理。

        mariadb主要实现如下功能:

        第一:提供PHP程序对数据的存储;

        第二:提供PHP程序对数据的读取(通常情况下从性能的角度考虑,尽量实现数据库的读写分离)。

        php主要实现如下功能:

        第一:提供apache的访问接口,即CGI或Fast CGI(FPM);

        第二:提供PHP程序的解释器;

        第三:提供mairadb数据库的连接函数的基本环境。

        由此可知,要实现LAMP在配置每一个服务时,安装功能需求进行配置,即可实现LAMP的架构,当然apache、mariadb和php服务都可配置为独立服务,安装在不同服务器之上。

    展开全文
  • LAMP平台部署及论坛搭建

    千次阅读 2020-09-29 16:11:11
    部署LAMP平台实验 一、编译安装APACHE 依赖环境包安装 源码解压 配置configure make配置文件构建出二进制文件 make install安装 安装完成后Apache会产生三种重要文件 (1)主配置文件.conf (2)启动脚本.service(bin) ...

    部署LAMP平台实验

    一、编译安装APACHE

    1. 依赖环境包安装
    2. 源码解压
    3. 配置configure
    4. make配置文件构建出二进制文件
    5. make install安装
      安装完成后Apache会产生三种重要文件
      (1)主配置文件.conf
      (2)启动脚本.service(bin)
      (3)命令文件–prefix指定路径下的bin目录,便于系统直接使用In -s /usr/bin,/usr/sbin,/usr/local/bin、/usr/local/sbin

    1.准备工作

    首先准备Apache源码包,安装apr和prel,是Apache支持跨平台应用和正则必不可少的

    [root@mysql3 ~]# rpm -qe httpd --nodeps   //卸载原本的httpd,忽略依赖性关系
    [root@localhost opt]# ls  ##查看压缩包
    apr-1.6.2.tar.gz        ##apr是实现Apache跨平台应用的开发工具
    apr-util-1.6.0.tar.gz
    httpd-2.4.29.tar.bz2
    [root@localhost opt]# yum -y install \
    gcc \
    gcc-c++ \
    make \
    pcre-devel \
    expat-devel \
    perl \            ##支持正则的语言
    zlib-devel 
    

    2.解压到opt目录

    [root@localhost ~]#  tar zxf apr-1.6.2.tar.gz -C /opt
    [root@localhost opt]#  tar zxf /opt/apr-util-1.6.0.tar.gz -C /opt
    [root@localhost opt]#  tar jxf /opt/httpd-2.4.29.tar.bz2 -C /opt
    [root@localhost opt]# ls
    apr-1.6.2         apr-util-1.6.0         httpd-2.4.29         
    apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2 
    

    3.将解压好的apr文件放到httpd源码文件代码库中

    [root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
    [root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
    安装编译器及其他工具

    4.配置Apache

    [root@localhost httpd-2.4.29]# cd /opt/httpd-2.4.29/
    [root@localhost httpd-2.4.29]# ls
    ABOUT_APACHE    BuildAll.dsp  configure  include     LICENSE     README   test
    ……省略
    [root@localhost httpd-2.4.29]# ./configure \
    --prefix=/usr/local/httpd \		'//指定路径'
    --enable-so \					   '//开启核心功能模块'
    --enable-rewrite \			    '//开启重写功能,如防盗链保护'
    --enable-charset-lite \			'//开启字符集'
    --enable-cgi	\				    '//开启通用网关接口'
    --enable-cgid	\
    --enable-deflate					'//开启deflate压缩模块'
    

    5.make编译安装

    [root@localhost httpd-2.4.29]# make -j3 && make install
    

    6.优化httpd服务执行方式需要先优化路径

    [root@localhost ~]# cd /usr/local/httpd/bin/
    [root@localhost bin]# ln -s /usr/local/httpd/conf/httpd.conf /etc/ ##可以通过/etc/httpd.conf修改配置
    [root@localhost bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
    

    7.设置系统服务(启动脚本)

    (方法一)通过service命令来管理

    [root@localhost bin]# cp apachectl /etc/init.d/httpd	'//将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd'
    [root@localhost bin]# cd /etc/init.d/
    [root@localhost init.d]# ls
    functions  httpd  netconsole  network  README
    [root@localhost init.d]# vim /etc/init.d/httpd 
    #!/bin/sh	        '//在行首插入下两行内容,并保存退出'
    \# chkconfig: 35 85 21 	 '//35级别自动运行  第85个启动 第21个关闭' (85和21数字可以自定义,35指字符和图形终端)
    \# description: Apache is a World Wide Web server
    [root@localhost init.d]# chkconfig --add httpd 	  '//将httpd加入到SERVICE管理器'
    [root@localhost init.d]# chkconfig --list httpd    
    [root@mysql3 init.d]# chmod +x /etc/init.d/httpd
    [root@mysql3 init.d]# service httpd start
    [root@mysql3 init.d]# netstat -anutp |grep 80
    tcp6       0      0 :::80                   :::*                    LISTEN      127730/httpd      
    

    (方法二)通过systemctl来管理

    [root@localhost ~]# cd /lib/systemd/system/
    [root@localhost system]# vim httpd.service  写入优化服务启动项配置
    [Unit]
    Description=The Apache HTTP Server
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/usr/local/httpd/logs/httpd.pid
    ExecStart= /usr/local/bin/apachectl $OPTIONS
    ExecrReload= /bin/kill -HUP $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    [root@localhost system]# systemctl enable httpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    [root@localhost system]# systemctl is-enabled httpd.service   
                                            ###检查HTTP单元是否启动优化路径
    enabled
    [root@localhost bin]# systemctl start httpd
    [root@localhost bin]# systemctl enable httpd
    

    8.修改主配置文件

    [root@localhost bin]# vi /etc/httpd.conf 
    ServerName www.51xit.com:80  ##要想域名访问,这里需要修改
    ……
    Listen 20.0.0.19:80    ##开启这个监听
    #Listen 80   ##这个是ipv6的监听,将这个注释掉
    ...省略内容
       
    [root@localhost bin]# apachectl -t   //-t检查语法错误做过启动服务优化后httpd -t同样效果
    Syntax OK
    [root@localhost bin]# systemctl restart httpd
    

    9.访问测试

    在这里插入图片描述

    二、编译安装MySQL

    1. 依赖环境包安装
    2. 源码解压
    3. 配置configure
    4. make配置文件构建出二进制文件
    5. make install安装
      安装完成后Apache会产生三种重要文件
      (1)主配置文件.my.cnf
      (2)启动脚本.service(bin)
      (3)命令文件–prefix指定路径下的bin目录,便于系统直接使用In -s /usr/bin,/usr/sbin,/usr/local/bin、usr/local/sbin

    1.准备依赖环境

    [root@localhost opt]# ls  //查看源码包是否准备好
    mysql-boost-5.7.20.tar.gz  
    ……省略部分
    [root@localhost opt]# yum -y install \
    ncurses \      ##字符终端的处理库,是一种计算机语言
    ncurses-devel \
    bison \
    cmake     ##mysql只支持cmake安装
    

    2.创建程序账号

    [root@localhost opt]# useradd -s /sbin/nologin mysql  //新增mysql作为禁止登入的程序账号
    [root@localhost opt]# tail -1 /etc/passwd  //查看新增用户
    mysql:x:1001:1001::/home/mysql:/sbin/nologin
    

    3.解压并安装MySQL

    [root@localhost opt]# tar xf mysql-boost-5.7.20.tar.gz  //解压源码包
    [root@localhost opt]# ls  查看解压后目录文件
     mysql-5.7.20  mysql-boost-5.7.20.tar.gz  ……省略部分
    [root@localhost opt]# cd /opt/mysql-5.7.20
    [root@localhost mysql-5.7.20]# cmake \      ##mysql需要用到cmake安装
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  ##指定安装目录
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  ##指定数据库连接文件,改文件不影响数据库的允许,但是会影响用户连接到数据库
    -DSYSCONFDIR=/etc \  ##指定配置文件存放位置
    -DSYSTEMD_PID_DIR=/usr/local/mysql \  ##指定PID号文件存放目录,该文件与sock文件相似,当数据库关闭时文件消失,而且不能同时存在两个PID文件,否则会故障,因此若数据库关闭后PID文件还存在,那么就会和开启后生成的新PID文件冲突
    -DDEFAULT_CHARSET=utf8  \  ##指定字符集
    -DDEFAULT_COLLATION=utf8_general_ci \   ##字符集
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \  ##下面四条都是存储引擎
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    -DMYSQL_DATADIR=/usr/local/mysql/data \  ##数据存放位置
    -DWITH_BOOST=boost \  ##加载底层一个支持C++的运行库
    -DWITH_SYSTEMD=1   ##设置的主从ID
    
    [root@localhost mysql-5.7.20]# make -j4 && make install
    

    4.改变mysql目录下的所有目录及文件属性

    [root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/  ##将mysql下的所有目录及文件属主和属组改为mysql
    

    5.配置系统服务(启动脚本)

    5.1 systemctl的方式启动

    [root@localhost mysql-5.7.20]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /lib/systemd/system/mysqld.service   //将服务文件拷贝到系统服务目录下
    [root@localhost mysql]# systemctl enable mysqld
    [root@localhost mysql]# systemctl start mysqld
    

    5.2 service的方式启动

    [root@localhost opt]# cp /opt/mysql-5.7.20/support-files/mysql.server /etc/my.cnf  ## 在support-files/目录下有配置模板,可以直接用模板覆盖/etc/my.cnf配置文件内容
    [root@mysql3 support-files]# vi /etc/init.d/mysql.server
    ……省略部分
    basedir= /usr/local/mysql/              ##在"basedir= "后面填入工作目录路径
    datadir= /usr/local/mysql/data/      ##在"datadir= "后面填入数据存放目录路径
    ……省略部分
    [root@mysql3 support-files]# chkconfig --add /etc/init.d/mysqld     //添加mysql.server至系统服务列表
    [root@mysql3 support-files]# chkconfig --list   //可以查看到mysql.server加入到了系统服务,并且2.3.4.5级别启动
    ……省略部分
    mysqld   	0:off	1:off	2:on	3:on	4:on	5:on	6:off
    [root@mysql3 support-files]# service mysqld start
    [root@mysql3 support-files]# chkconfig mysqld --level 35 on    ##相当于enable,开机自启
    [root@mysql3 php-7.1.10]# systemctl is-enabled httpd     ##查看服务开机自启状态
    httpd.service is not a native service, redirecting to /sbin/chkconfig.
    Executing /sbin/chkconfig httpd --level=5
    enabled
    
    

    6.设置环境变量

    [root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
    [root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile
    [root@localhost mysql-5.7.20]# source /etc/profile
    

    7.初始化MySQL数据库

    [root@localhost mysql-5.7.20]# cd /usr/local/mysql/
    [root@localhost mysql]# bin/mysqld \
    --initialize-insecure \   ##初始化的命令
    --user=mysql \   ##指明用户
    --basedir=/usr/local/mysql \   ##指定了工作目录
    --datadir=/usr/local/mysql/data  ##在指定了数据存放的位置
    [root@localhost mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /lib/systemd/system/mysqld.service   //将服务文件拷贝到系统服务目录下
    [root@localhost mysql]# systemctl enable mysqld
    [root@localhost mysql]# systemctl start mysqld
    [root@localhost mysql]# systemctl status mysqld
    ● mysqld.service - MySQL Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: active (running) since Sat 2020-09-05 18:54:09 CST; 7ms ago
         Docs: man:mysqld(8)
               http://dev.mysql.com/doc/refman/en/using-systemd.html
    ……省略部分
    [root@localhost ~]# netstat -ntap|grep 3306
    tcp6     0    0  ::3306       ::: *              LISTEN      50925/mysqld        
    [root@localhost ~]# mysqladmin -u root -p password "abc123"	'//给root用户设置密码'
    ##mysqladmin -u用户名 -p旧密码 password 新密码,初次设置时没有旧密码,因此直接回车就可以了, password后面跟的新密码
    [root@localhost mysql]# mysqladmin -u root -p password    
    ##password 后面不跟新密码,则需要进入交互模式中手动输入两次
    [root@localhost ~]# mysql -u root -p
    Enter password: 
    

    三、安装PHP

    1.准备工作

    [root@localhost opt]# ls ##查看压缩包
    ……省略部分
    php-7.1.10.tar.bz2

    [root@localhost php-7.1.10]# tar xf php-7.1.10.tar.bz2

    2.安装环境

    [root@localhost ~]# yum -y install \
    gd \   ##gd图像处理库
    libjpeg \   ##jepg图像识别
    libjpeg-devel \   
    libpng \   ##png图像识别,截图格式
    libpng-devel \
    freetype \   ##字体识别
    freetype-devel \
    libxml2 \     ##xml文件识别
    libxml2-devel \
    zlib \     ##压缩库
    zlib-devel \
    curl \
    curl-devel \
    openssl \    ##安全链接,即身份验证
    openssl-devel
    

    3.配置PHP

    [root@localhost php-7.1.10]# cd php-7.1.10
    [root@localhost php-7.1.10]# ./configure \
    --prefix=/usr/local/php \    ##指定安装路劲
    --with-apxs2=/usr/local/httpd/bin/apxs \      #apx2可以让PHP功能模块加载给Apache使用,若不配置这条,Apache将不显示PHP的图像
    --with-mysql-sock=/usr/local/mysql/mysql.sock \   ##连接数据库的通讯文件
    --with-mysqli \
    --with-zlib \
    --with-curl \   ## 支持文件的上传和下载
    --with-gd \
    --with-jpeg-dir \
    --with-png-dir \
    --with-freetype-dir \
    --with-openssl \
    --enable-mbstring \
    --enable-xml \
    --enable-session \
    --enable-ftp \
    --enable-pdo \
    --enable-tokenizer \
    --enable-zip
    [root@mysql3 php-7.1.10]# make -j3 && make install
    

    4.配置PHP

    [root@mysql3 opt]# cd php-7.1.10/
    [root@mysql3 php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
    [root@localhost opt]# vi /usr/local/php/lib/php.ini
    ……省略部分
    mysqli.default_socket = /usr/local/mysql/mysql.sock  //后面填入
    ……省略部分
    date.timezone = Asia/Shanghai  后面写入上海时区(注意前面的”;”分号要删去)
    ……省略部分
    
    [root@localhost opt]# /usr/local/php/bin/php -m  //验证安装的模块,可以查看到各个模块
    [PHP Modules]
    Core
    ctype
    curl
    date
    …
    

    …省略部分

    5.配置Apache支持PHP模块

    [root@localhost opt]# vi /etc/httpd.conf 
    ……省略部分
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
        AddType application/x-httpd-php .php    //插入这两行文字  ,是Apache支持PHP
        AddType application/x-httpd-php-source .phps   //插入这行文字
    ……省略部分
    <IfModule dir_module>
     DirectoryIndex index.html
     DirectoryIndex index.php index.html  //插入这行文字 ,添加支持index.php格式的首页文件
    </IfModule>
    ……省略部分
    [root@localhost opt]# rm -f /usr/local/httpd/htdocs/index.html  //删去原来的首页文件
    [root@localhost opt]# vi /usr/local/httpd/htdocs/index.php  //新增php首页
    <?php
    phpinfo();        ##一种PHP底层的函数
    ?>
    [root@mysql3 htdocs]# service httpd stop
    [root@mysql3 htdocs]# service httpd start
    
    

    6.访问测试

    在这里插入图片描述

    基于LAMP搭建论坛

    1.创建数据库并远程授权

    [root@mysql3 htdocs]# mysql -uroot -p
    
    mysql> CREATE DATABASE bbs;  ###创建bbs子数据库了
    Query OK, 1 row affected (0.00 sec)
    
    mysql> GRANT all ON  bbs.* TO ' bbsuser'@'%' IDENTIFIED BY 'admin123';     ##若没有bbsuser账户,则自动创建认证用户“bbsuser”,若有,则修改bbsuser的权限
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> GRANT all ON  bbs.* TO ' bbsuser'@'localhost' IDENTIFIED BY 'admin123';      ##授权给本地主机
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> flush privileges;    ##刷新重载权限
    Query OK, 0 rows affected (0.00 sec)
    

    2.解压论坛软件

    [root@mysql3 opt]# unzip Discuz_X3.4_SC_UTF8.zip -d /opt
    

    3.设置论坛首页并在apache中添加

    [root@mysql3 opt]# cd /opt
    [root@mysql3 opt]#  cd dir_SC_UTF8/
    [root@mysql3 dir_SC_UTF8]#  cp -r upload/ /usr/local/httpd/htdocs/bbs
    [root@mysql3 dir_SC_UTF8]# cd /usr/local/httpd/htdocs/bbs
    

    4.改变论坛文件属性

    一定要改变属主.属组属性,否则安装论坛会显示不可写,无法下一步安装

    [root@mysql3 bbs]# chown -R daemon ./config/
    [root@mysql3 bbs]# chown -R daemon  ./data/
    [root@mysql3 bbs]# chown -R daemon  ./uc_client/
    [root@mysql3 bbs]# chown -R daemon ./uc_server/
    

    5.安装论坛首页

    首次访问http://20.0.0.19/bbs需要安装
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    安装完成

    登入http://20.0.0.19/bbs/admin.php? ##可以访问管理界面
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • LAMP分离部署

    2020-10-31 10:22:17
    LAMP LAMP简介 LAMP是指一组通常一起使用来运行动态网站或者服务器的开源软件名称首字母缩写: Linux Apache Mariadb或者MySQL PHP、Python或Perl web服务器工作流程 web服务器的资源分为两种,静态资源和...
  • LAMP(一)_介绍

    千次阅读 2019-07-25 22:27:26
    目录LAMP介绍WEB资源类型:Web相关语言CGILAMP工作原理PHP简介php配置php设置LAMP基于php模块方式安装LAMPphp代码 LAMP介绍 L:linux A:apache (httpd) M:mysql, mariadb M:memcached P:php, perl, python WEB...
  • lamp

    2019-02-21 00:40:01
    Lamp 1.lamp简介 所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高...
  • LAMP

    2019-07-01 01:09:21
    1、讲述httpd工作原理以rpm包的方式安装LAMP,配置基于域名的虚拟机主机并部署PhpMyAdmin、WordPress(提供https)、discuz Httpd:HyperText Transer Protocol,超文本传输协议 HTTP服务通信过程 报文传输过程 ...
  • LAMP简介

    2019-10-21 11:28:34
    LAMP LAMP简介 LAM(M)P: L:linux A:apache (httpd) M:mysql, mariadb M:memcached(缓存数据库数据) P:php, perl, python WEB资源类型: 静态资源:原始形式与响应内容一致,在客户端浏览器执行 ...
  • 什么是LAMPLAMP 是指Linux(操作系统)+ Apache (HTTP 服务器)+ MySQL(数据库)和 PHP(网络编程语言),一般用来建立 web 应用平台。和 Java/J2EE 架构相比, LAMP 具有 Web 资源丰富、轻量、快速开发等特点...
  • LAMP环境搭建

    千次阅读 2018-07-14 10:59:47
    本文小编将会详细讲解Linux系统上如何搭建配置高效的lamp服务环境,并在lamp环境搭建起企业自己的网站。先简要概述下本文要点:(操作系统采用CentOS 6.5 x64)1.分别安装搭建lamp服务环境;2....
  • LAMP环境搭建步骤

    2019-06-03 15:25:31
    所以我们的 LAMP 环境搭建,在生产服务器上一般采用源码包进行安装,而不会使用 RPM 包进行安装,接下来我们要讲的也是采用源码包方式搭建 LAMP 环境。 LAMP 环境搭建是较为复杂的Linux实验,在进行真正的环境安装...
  • LAMP 环境搭建

    2016-12-31 21:05:20
    以CenOs6为准: LAMP(Linux+Apache+Mysql
  • LAMP环境搭建与配置(一)

    万次阅读 多人点赞 2018-06-27 16:32:28
    LAMP是Linux Apache MySQL PHP的简写,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言,通常是网站。 Apache是最常用的web服务软件,而MySQL是比较小型的数据库软件,这两个软件以及...
  • Windows下LAMP环境搭建

    万次阅读 2011-01-10 18:14:00
    +++++++++++++++++++++++++++++++++++...Windows下LAMP环境搭建 ++++++++++++++++++++++++++++++++++++++++++++++ 操作系统 : [windows xp professional sp3] 服务器 : [apache-2.2.8] PHP      : [php-5.2
  • lamp环境搭建教程

    2019-06-06 14:30:00
    原文链接:...在网上搜资料,自己在本地虚拟机上尝试搭建,弄了整整一天一夜,终于弄好了. 网上的资料,虽然很多,但大多都是重复的,拿去试了之后,又很多都不能得到正确的结果.最终找到了...
  • LAMP环境搭建4-整合

    2015-06-12 22:25:56
    重新整理以前的笔记发到博客还真是累,以前笔记做的有点乱,知识点也比较杂,以致每次发现其他地方有相似内容需要添加就得重新修改博客,前面的都比较基础,后面开始才会慢慢结合一些高级功能进行讲解。...
  • lamp环境搭建discuz论坛

    2020-06-09 21:12:43
    lamp环境搭建在一台服务器中,(非分布式) 1.使用yum安装httpd mariadb php [root@localhost ~]# yum -y install httpd mariadb-server mariadb php php-mysql 2.开启服务 [root@localhost ~]# systemctl start ...
  • lamp 环境搭建的心得与体会

    千次阅读 2014-08-15 09:41:03
    遇到的的第一个问题:
  • LAMP环境搭建一个Discuz论坛

    千次阅读 2018-09-28 19:14:46
    一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。因为各个部分都是免费的,所以受到广大中小网站...
  • 今天把wamp做的项目迁移到lamp环境中,下面是步骤和遇到的问题 网上lamp 环境搭建的教程,照这个我是没安装成功,下边是网上的教程和我遇到的问题和解决方案 第一步 安装Apache2 sudo apt-get install apache2 ...
  • 一、安装Apache  1、查看httpd包是否可用 yum list | grep httpd  2、安装 yum install httpd //卸载 yum remove httpd   碰到询问,一路按y就好  3、启动服务 systemctl start httpd //停止服务 ...
  • centos7之lamp环境搭建

    2016-04-26 18:31:25
    一、配置防火墙 CentOS 7.0默认使用的是firewall作为防火墙。 1、关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 ...
  • 用tasksel可以方便安装dns server, lamp, kubuntu desktop, ubuntu desktop, xubuntu之类的软件包。这个软件在ubuntu server里是预装的,而在桌面版里是不预装的,想用的话得安装一下: apt-get install tasksel ...
  • CentOS7 LAMP环境搭建

    2017-12-31 13:43:21
    mysql安装配置 cd/usr/local/src 进入下载目录 wget ...下载mysql二进制包(免安装) tar xzvfmysql-5.1.73-linux-x86_64-glibc23.tar.gz  解压 mv
  • LAMP环境搭建Wordpress个人博客

    千次阅读 2017-04-21 13:10:57
    概述本来想自己写个网站,发现很费时间,而且写出来的效果也不好,所以就想找个...博客使用的环境如下: Linux Centos 7.2 Apache 2.4.6 PHP 7.1 MariaDB 5.5.52 Wordpress 4.7.3 Centos 配置APM安装软件 安装Apacheyum
  • 阿里云官方lamp环境搭建教程-php7.0.12

    千次阅读 2018-07-12 19:03:55
    他的这个环境配置好之后没有gd库,不过已经被聪明机智的我解决了,看我的另一篇文档 我在这里把各个配置文件列一下: 网站根目录:/usr/local/apache/htdocs/ mysql配置文件:/etc/my.cnf php.ini /etc/php.ini ...
  • Mac下lamp环境搭建

    千次阅读 2015-05-06 09:23:41
    安装环境如下: Mac OS 10.10.1 Apache 2.4.9 PHP 5.5.14 MySQL 5.6.22 Apache配置 在Mac OS 10.10.1中是自带Apache软件的,我们只需要启动对应的服务就好了,以下命令是操作Apache时常用的几个命令: ...
  • 一、准备工作 :Apache的安装步骤其实并不繁琐,但是很多时候最大的问题会出在访问上。而谈到访问大多数问题会出在防火墙和服务器安全组规则这两个问题上。下面介绍一下防火墙(Firewalld)和安全组规则的相关操作...
  • lamp环境搭建

    千次阅读 2008-03-07 13:03:00
    参考:http://www.h9999h.com/WinXP_Apache_PHP/WinXP_Apache_PHP_M.htmlhttp://www.phpchina.com/14112/viewspace_21254.htmlApache2.2.8安装注意事项:选择安装全部组件对Apache进行设置修改目录G:/PhpServers/...

空空如也

1 2 3 4 5 ... 20
收藏数 81,294
精华内容 32,517
关键字:

lamp