概述
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP网页编程语言。
在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP。其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作。
优势:成本低廉;可定制、易于开发;方便易用、安全和稳定。
apache
tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
cd httpd-2.4.29 --进入httpd主目录
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --指定装入默认/usr/local/httpd;增加扩展功能模块,重写模块,字符集,客户端访问接口
make && make install
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd --能自启动
vi /etc/init.d/httpd --添加
#chkconfig: 35 85 21 --35级别图形化界面自动运行,第85个启动,第21个关闭
#description: Apache HTTP Server --描述信息
chkconfig --add httpd #将httpd加入到SERVICE管理器
chkconfig --list #检查一下http的3和5是开的
systemctl enable httpd #开启服务自启动
ln -s /usr/local/httpd/conf/httpd.conf /etc/ --链接到/etc下方便管理
ln -s /usr/local/httpd/bin/* /usr/bin/ --把所有命令链接到/usr/bin/下
vi /etc/httpd.conf --修改配置文件
ServerName www.aa.com:80 --修改名称,去掉注释
systemctl stop firewalld --关闭防火墙
setenforce 0
apachectl -t --检查语法
Syntax 0K
systemctl restart httpd --重启服务
echo "<h1>this is my web site.</h1>" > /usr/local/httpd/htdocs/index.html --制作网页
netstat -anpt | grep httpd --查看监听端口
mysql
安装
ncurses-devel:字符终端下屏幕控制的基本库
autoconf :可以自动配置软件源代码
cmake:跨平台编译安装工具
yum -y install ncurses-devel autoconf cmake
tar zxvf mysql-boost-5.7.20.tar.gz --mysql源码包解压
cd mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ --安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ --指定套接字文件的存储路径,客户端访问mysql的接口,缺少文件无法被访问
-DSYSCONFDIR=/etc \ --配置my.cnf的目录,路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \ --主服务进程所在路径
-DDEFAULT_CHARSET=utf8 \ --默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \ --默认编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ --启用InnoDB引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ --启用ARCHIVE引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ --启用BLACKHOLE引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ --启用perfschema引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ --数据存储路径,数据库
-DWITH_BOOST=boost \ --boost库是为C++语言标准库提供扩展的一些C++程序库的总称
-DWITH_SYSTEMD=1 --DWITH_SYSTEMD=1这是MySQL 5.7原生支持Systemd的选项,如果要是用systemct1启动,就必须开启。
make && make install
chown -R mysql:mysql /usr/local/mysql/ --执行权限
PS:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧。
vi /etc/my.cnf --配置文件
[client] --客户端
port = 3306 --访问端口
default-character-set = utf8 --默认字符设定
socket = /usr/ local/mysql/mysql. sock --套接字路径,需与数据库套接字路径一致,否则无法访问
[mysql] --运行用户
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql. sock
[mysqld] --程序
user = mysql --运行用户
basedir = /usr/ local/mysql --基本路径,根目录
datadir = /usr/local/mysql/data --用户目录
port = 3306 --运行端口
character_set_server = utf8 --服务器设定默认字符
pid-file = /usr/ local/mysql/mysqld.pid --运行时进程文件
socket = /usr/ local/mysql/mysql.sock --套接字路径
server-id = 1 --每个数据库的id必须不一样
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES --模式
环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
echo $PATH
初始化
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cd /usr/local/mysql/
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl daemon-reload --守护进程重新加载
systemctl start mysqld
netstat -anpt | grep 3306
systemctl enable mysqld --自启动
mysql --登录
密码设置
mysqladmin -uroot -p password '123456'
mysql -uroot -p
输入密码123456
修改密码
方法1:SET PASSWORD命令
mysql> set password for root@localhost = password('123123');
可简写为:
mysql> set password=password( ‘123123’ ) ;
方法2:mysqladmin
mysqladmin -uroot -p123456 password 123123
方法3:UPDATE直接编辑user表
mysql> use mysql;
mysql> update mysql.user set authentication_string = password(‘123456’) where user='root’ and host='localhost’;
mysql> flush privileges;
忘记mysql密码
vi /etc/my.cnf
末尾添加
[mysqld]
skip_name_resolve
skip_grant_tables
bind-address=0.0.0.0 --所有地址都适用
systemctl restart mysqld --重启服务
mysql --登录
mysql> --可进行修改密码操作,改完注释掉上面配置重启服务
php
安装
同样的,导入软件包
tar jxvf php-7.1.10.tar.bz2
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
libjpeg libjpeg- devel: jpeg图像压缩库
libpng libpng-devel: png图像压缩库
freetype freetype-devel: 字体引擎,统一的接口访问多种字体格式文件
libxml2 libxml2- devel: xml程序库,用来对xml文件进行解析
zlib zlib-devel: 数据压缩用的函式库,可相当轻松的通过把压缩数据写入到有gzip头的文件中
curl curl-devel: 利用URL规则在命令行下工作的文件传输工具
openssl openssl-devel: OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
配置选项
./configure
--prefix=/usr/local/php \--安装路径
--with- apxs2=/usr/ local/ht tpd/bin/apxs\#让apache支持php,
--with-mysql-sock=/usr/ local/mysql/mysql. sock \ --指明mysq1的套接字路径
--with-mysqli \. --调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \ --打开zlib函式库
--with-curl \ --调用curl规则
--with-gd \#打开gd库,gd库是为了创建新图像或处理已有的图像
--with-jpeg-dir \ --让gd库支持jpeg格式
--with-png-dir \--让gd库支持png格式
--with- freetype-dir \--打开字体引擎
--with-openssl \ --打开ss1安全套接字功能
--enable-mbstring \--开启mbstring扩展,有了这个功能可设置其支持utf-8编码
--enable-xml \ --支持XML文件格式
--enable-session \ --开启会话保持功能
--enable-ftp \--开启ftp扩展
--enable-pdo--PD0作用是统--各种数据库的访问接口
--enable- tokenizer \ --分词器,Tokenizer实际上只是生成了一个字典,并且统计了词频等信息
--enable-zip --打开对zip文件的支持
配置内容
make && make install
cp php. ini-development /usr/local/php/lib/php.ini
vi /usr/ local/php/lib/php.ini
mysqli. default_socket = /usr/local/mysql/mysql.sock --当访问php文件时,将后台数据库指向该路径,怎么连接
date.timezone = Asia/Shanghai --时区设定
/usr/local/php/bin/php -m --检验安装的模块
vi /etc/httpd.conf --添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html --优先访问index.php
存在文件代表php安装成功
测试
vi /usr/local/httpd/htdocs/index.php
php测试页
<?php
phpinfo();
?>
systemctl restart httpd
http://localhost//将会访问php主页
http://localhost/index.html//将会访问静态网页html的主页
数据库与php的联通
数据库与php的联通
测试数据库
mysql -u root -p
mysql> create database myadm; --创建一个数据库
mysql> grant all privileges on myadm.* to 'myadm'@'localhost' identified by 'admin123' --本地授权
mysql> grant all privileges on myadm.* to 'myadm'@'%' identified by 'admin123'; --远程授权
mysql> flush privileges; --刷新
%:表示范围,任意,on作用在那个库下面
php网页文件
vi /usr/local/httpd/htdocs/index.php
<?php
$link=mysqli_connect('20.0.0.11','myadm','admin123');
if($link) echo "<h1>Success!</h1>";
else echo "Fail!";
?>
安装phpMyadmin
unzip phpMyAdmin-4.7.6-all-languages.zip
mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm --拷贝这个语言到http站点下面
cp /usr/local/httpd/htdocs/myadm/config.sample.inc.php /usr/local/httpd/htdocs/myadm/config.inc.php
vi config.inc.php
$cfg['server'][$i]['host'] = '20.0.0.11'