部署 LAMP
部署 LAMP
https://help.aliyun.com/document_detail/50774.html?spm=a2c4g.11186623.6.773.Em8xVc
文档提供方:上海驻云信息科技有限公司 更新时间:2017-11-03 16:59:36
简介
LAMP 指 Linux+Apache+MySQL/MariaDB+Perl/PHP/Python,是一组常用来搭建动态网站或者服务器的开源软件。它们本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的 Web 应用程序平台。
部署方式
您可以使用三种方式在云服务器 ECS 上部署 LAMP:
- 镜像部署:方便快捷,适合不太了解 Linux 命令的用户。
- 一键安装包部署:适合对 Linux 命令有基本了解的用户。
- 手动部署:可以满足用户个性化部署需求,适合对 Linux 命令有基本了解的用户。
本文介绍如何在云服务器 ECS 上手动部署 LAMP。
软件版本说明
本文操作的镜像和软件版本说明如下 :
- 操作系统:CentOS 7.2 64 位
- Apache:2.4.23
- MySQL:5.7.17
- PHP:7.0.12
前提条件
在部署之前,需要确认:
实例所在安全组已经 放行了服务所需的端口:
服务 SSH HTTP MySQL 端口 TCP 22 TCP 80 TCP 3306
准备工作
设置防火墙
CentOS 7.2 系统默认开启防火墙 firewalld。您可以关闭 firewalld 放行 80、22 等端口。
说明:您也可以参考 firewalld 官方文档 在防火墙里放行这些端口。
运行命令关闭防火墙。
systemctl stop firewalld.service
运行命令关闭防火墙开机自启动。
systemctl disable firewalld.service
安装 vim 和 unzip
下载软件用于编辑和解压缩文件。运行命令:
yum install -y vim unzip
操作步骤
按以下描述部署 LAMP。
编译安装 Apache
运行命令安装相关依赖包。
yum install -y gcc gcc-c++ autoconf libtool
依次运行以下命令安装 apr。
cd /usr/local/src/wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-1.5.0.tar.gztar zxvf apr-1.5.0.tar.gzcd apr-1.5.0./configure --prefix=/usr/local/aprmake && make install
依次运行以下命令安装 apr-util。
cd /usr/local/src/wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-util-1.5.3.tar.gztar zxvf apr-util-1.5.3.tar.gzcd apr-util-1.5.3./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprmake && make install
依次运行以下命令安装 pcre。
cd /usr/local/src/wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/pcre/pcre-8.38.tar.gztar zxvf pcre-8.38.tar.gzcd pcre-8.38./configure --prefix=/usr/local/pcremake && make install
依次运行以下命令编译安装 Apache。
cd /usr/local/src/wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/apache/httpd-2.4.23.tar.gztar zxvf httpd-2.4.23.tar.gzcd httpd-2.4.23./configure \--prefix=/usr/local/apache --sysconfdir=/etc/httpd \--enable-so --enable-cgi --enable-rewrite \--with-zlib --with-pcre=/usr/local/pcre \--with-apr=/usr/local/apr \--with-apr-util=/usr/local/apr-util \--enable-mods-shared=most --enable-mpms-shared=all \--with-mpm=eventmake && make install
修改 httpd.conf 配置文件参数:
- 运行
cd /etc/httpd/切换到 /etc/httpd/ 目录。 - 运行
vim httpd.conf打开 httpd.conf 文件,按i键进入编辑模式。 - 找到 Directory 参数,注释掉
Require all denied,并添加Require all granted。
- 找到 ServerName 参数,添加
ServerName localhost:80。
- 设置 PidFile 路径:在文件最后添加
PidFile "/var/run/httpd.pid"。 - 按
Esc键退出编辑模式,输入:wq保存并关闭 httpd.conf 文件。
- 运行
依次执行以下命令启动 Apache 服务并验证。
cd /usr/local/apache/bin/./apachectl startnetstat -tnlp #查看服务是否开启
如果返回以下结果,说明 Apache 服务已经成功启动。

在本地机器的浏览器中输入 ECS 实例公网 IP 地址,如果出现如图所示信息,说明 Apache 服务安装成功。
设置开机自启动。
- 运行
vim /etc/rc.d/rc.local打开 rc.local 文件,按i进入编辑模式。 - 添加
/usr/local/apache/bin/apachectl start。
- 按
Esc键退出编辑模式,输入:wq保存并关闭 rc.local 文件。
- 运行
设置环境变量。
- 运行
vi /root/.bash_profile打开文件,按i进入编辑模式。 - 将
PATH=$PATH:$HOME/bin修改为PATH=$PATH:$HOME/bin:/usr/local/apache/bin。 - 按
Esc键退出编辑模式,输入:wq保存并关闭文件。 - 运行
source /root/.bash_profile重新执行文件。
- 运行
编译安装 MySQL
依次执行以下命令检查系统中是否存在使用 rpm 安装的 MySQL 或者 MariaDB。
rpm -qa | grep mysqlrpm -qa | grep mariadb
如果已经安装,则运行以下任一个命令删除。
rpm -e 软件名 #注意:这里的软件名必须包含软件的版本信息,如rpm -e mariadb-libs-5.5.52-1.el7.x86_64。一般使用此命令即可卸载成功。rpm -e --nodeps 软件名 #卸载不成功时使用此命令强制卸载
卸载后,再用
rpm -qa|grep mariadb或者rpm -qa|grep mysql查看结果。依次运行以下命令安装 MySQL。
yum install -y libaio-* #安装依赖mkdir -p /usr/local/mysqlcd /usr/local/srcwget http://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gztar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gzmv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql/
依次运行以下命令建立 mysql 组和用户,并将 mysql 用户添加到 mysql 组。
groupadd mysqluseradd -g mysql -s /sbin/nologin mysql
运行命令初始化 MySQL 数据库。
/usr/local/mysql/bin/mysqld --initialize-insecure --datadir=/usr/local/mysql/data/ --user=mysql
更改 mysql 安装目录的属性:
chown -R mysql:mysql /usr/local/mysql。依次运行以下命令设置开机自启动。
cd /usr/local/mysql/support-files/cp mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqld # 添加执行权限vim /etc/rc.d/rc.local
在 rc.local 文件中添加
/etc/init.d/mysqld start。设置环境变量。
运行
vi /root/.bash_profile打开文件,按i进入编辑模式。将
PATH=$PATH:$HOME/bin:/usr/local/apache/bin修改为PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib。说明:此处是在编译安装 Apache的环境变量的基础上再进行修改。
按
Esc键退出编辑模式,输入:wq保存并关闭文件。运行
source /root/.bash_profile重新执行文件。
启动 MySQL 数据库。
/etc/init.d/mysqld start
出现如下截图所示信息,表示 MySQL 启动成功。

修改 MySQL 的 root 用户密码:初始化后 MySQL 为空密码可直接登录,为了保证安全性需要修改 MySQL 的 root 用户密码。
mysqladmin -u root password 密码
测试登录 MySQL 数据库。
mysql -uroot -p密码 #-p和密码之间无空格

编译安装 PHP
依次运行以下命令安装依赖。
yum install php-mcrypt libmcrypt libmcrypt-devel libxml2-devel openssl-devel libcurl-devel libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 libjpeg-turbo-devel libmcrypt-devel mysql-devel -ywget http://zy-res.oss-cn-hangzhou.aliyuncs.com/php/php-7.0.12.tar.gztar zxvf php-7.0.12.tar.gzcd php-7.0.12./configure \--prefix=/usr/local/php \--enable-mysqlnd \--with-mysqli=mysqlnd --with-openssl \--with-pdo-mysql=mysqlnd \--enable-mbstring \--with-freetype-dir \--with-jpeg-dir \--with-png-dir \--with-zlib --with-libxml-dir=/usr \--enable-xml --enable-sockets \--with-apxs2=/usr/local/apache/bin/apxs \--with-mcrypt --with-config-file-path=/etc \--with-config-file-scan-dir=/etc/php.d \--enable-maintainer-zts \--disable-fileinfomake && make install
依次运行以下命令复制配置文件。
cd php-7.0.12cp php.ini-production /etc/php.ini
编辑 Apache 配置文件 httpd.conf,以 Apache 支持 PHP。
- 运行
vim /etc/httpd/httpd.conf打开文件,按i进入编辑模式。 - 在配置文件最后添加如下二行代码。
AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps
定位到
DirectoryIndex index.html,修改为DirectoryIndex index.php index.html。说明:
如果文件中没有DirectoryIndex index.html,则添加上述代码。- 按
Esc键退出编辑模式,输入:wq保存并关闭文件。
- 运行
重启 Apache 服务:
/usr/local/apache/bin/apachectl restart
测试是否能够正常解析 PHP。
- 依次运行以下命令,找开 index.php 文件。
cd /usr/local/apache/htdocs/vim index.php
- 按
i键进入编辑模式,并添加以下内容。<?phpphpinfo();?>
- 按
Esc键退出编辑模式,并输入:wq保存并关闭文件。 在本地机器的浏览器里输入
http://实例公网 IP/index.php。
如果出现以下页面表示 PHP 解析成功。
- 依次运行以下命令,找开 index.php 文件。
安装 phpMyAdmin
依次运行以下命令安装 phpMyAdmin。
mkdir -p /usr/local/apache/htdocs/phpmyadmincd /usr/local/src/wget http://oss.aliyuncs.com/aliyunecs/onekey/phpMyAdmin-4.1.8-all-languages.zipunzip phpMyAdmin-4.1.8-all-languages.zipmv phpMyAdmin-4.1.8-all-languages/* /usr/local/apache/htdocs/phpmyadmin
在本地机器浏览器输入http://实例公网 IP/phpmyadmin 访问 phpMyAdmin 登录页面。如果出现以下页面,说明 phpMyAdmin 安装成功。输入 MySQL 的用户名和密码即可登录。
部署 LAMP的更多相关文章
- 部署lamp服务器
系统:CentOS 6.5 64位 1.卸载旧版本软件 rpm -qa | grep mysql #查询是否已经安装MySQL,如有执行下面的操作将其全部删除 rpm -e mysql --nodep ...
- mint上部署lamp环境
不得不说现在在linux mint上部署lamp很方便,比windows服务器上的asp.net的部署升级都简单. 1 安装MySql sudo apt-get install mysql-serve ...
- 部署LAMP+NFS实现双Web服务器负载均衡
一.需求分析 1.前端需支持更大的访问量,单台Web服务器已无法满足需求了,则需扩容Web服务器: 2.虽然动态内容可交由后端的PHP服务器执行,但静态页面还需要Web服务器自己解析,那是否意味着多台 ...
- 云服务器 ECS > 建站教程 > 部署 LAMP (CentOS 7.2 ,Apache版本:2.4.23, Mysql 版本:5.7.17 , Php版本:7.0.12)
云服务器 ECS > 建站教程 > 部署 LAMP (CentOS 7.2) 部署 LAMP (CentOS 7.2) 文档提供方:上海驻云信息科技有限公司 更新时间:2017-06 ...
- CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...
- rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构
rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构 2017年10月01日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~准备阶段~~~~~~~~~~~~~ ...
- Linux学习笔记之阿里云ECS部署LAMP环境
LAMP指Linux+Apache+MySQL/MariaDB+Perl/PHP/Python,是一组常用来搭建动态网站或者服务器的开源软件.它们本身都是各自独立的程序,但是因为常被放在一起使用,拥有 ...
- 部署 LAMP (CentOS 7.2),摘自阿里云,方便查看使用
原文地址:https://help.aliyun.com/document_detail/50774.html?spm=5176.product25365.6.728.C9s3V8 简介 LAMP指L ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
随机推荐
- noi题库(noi.openjudge.cn) 3.9数据结构之C++STL T1——T2
T1 1806:词典 描述 你旅游到了一个国外的城市.那里的人们说的外国语言你不能理解.不过幸运的是,你有一本词典可以帮助你. 输入首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一 ...
- OpenResty 扩展库之(一)——lua-resty-shell 库
介绍 当您需要执行子进程(或shell命令)时,这是一个打算与OpenResty应用程序一起使用的小型库. 它类似于os.execute和io.popen,除了它是完全非阻塞的,因此即使对于需要很长时 ...
- PHP远程连接mysql报错处理办法
在万网弄了个虚拟主机,想远程连mysql调试(本地4G如果开mysql内存不够!),一直报错: mysqlnd cannot connect to MySQL 4.1+ using the old i ...
- Spring IOC 容器
<bean name="userBean" class="com.nuts.demo.spring.UserBean"> <property ...
- 生死相依:说说JQuery中die()、live()详解[翻译]
一个web前端工程师,应该知道jquery的.live()函数,知道它是做什么用的,但是不知它是怎么样工作的,使用起来也是不得得心应手的,甚至也没听说过.die()(去掉bind事件).即使你能熟悉这 ...
- 知名网站内部资料:WEB页面内容优化管理与性能技巧
回想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪 存文件,里面包含的有视频或者图片.然而,随着移动开发的兴起, ...
- Bzoj1939 [Croatian2010] Zuma
Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 43 Solved: 31 Description 有一行 N 个弹子,每一个都有一个颜色.每次可以让超过 ...
- 对string 的操作
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...
- UNIX网络编程 第1章:简介和TCP/IP
1.1 按1.9节未尾的步骤找出你自己的网络拓扑的信息. 1.2 获取本书示例的源代码(见前言),编译并测试图1-5所示的TCP时间获取客户程序.运行这个程序若干次,每次以不同IP地址作为命令行参数. ...
- dropload的使用记录
这次做一个H5的页面,需要用到上拉加载,下拉刷新的功能,在网上看到ximen写的dropload.js可以满足需求(此处致谢作者),但是用的时候还是踩了一些坑,这里记录下来备忘. 一些小问题:1. m ...