LAMP架构
LAMP架构简介:
lamp是一个常用的web架构
所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
安装MySQL
初始化MySQL
●# cd /usr/local/src/
●安装包:
#wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
如果此安装包失效,可以访问https://aminglinux.coding.net/public/resource/resource/git/files查询可以有效的安装包
安装包要求:x86_64,tar.gz
注意:5.7之后版本的没有scripts目录,不能进行初始化
●给安装包解压
tar zxvf mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
●移动mysql包
mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql
●切换位置
cd /usr/local/mysql
●建立mysql用户
useradd -s /sbin/nologin mysql
●新建存放数据的目录
mkdir -p /data/mysql
●更改用户组和用户的权限
chown -R mysql:mysql /data/mysql
●将mysql移到/usr/local/mysq目录下
mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql
●更换目录
cd /usr/local/mysql/
●支持perl,安装perl包
yum install -y perl_Module_Install
●执行脚本
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
//–user表示定义数据库的以哪个用户的身份运(所属组)
//–datadir表示定义数据库的安装目录
**出现的问题:
1、二进制安装mysql初始化出现:Installing MySQL system tables…/usr/local/mysql/bin/mysqld: error
while loading shared
原因:缺少libaio库文件
解决方法:yum
install libaio* -y
问题:2、FATAL ERROR: please install the following Perl modules before
executing ./scripts/mysql_install_db:
Data::Dumper
解决方法:# yum -y
install autocon*f
解决完错误再次执行:# ./scripts/mysql_install_db
–user=mysql --datadir=/data/mysql
●验证上一步执行是否成功
出现两个OK或者执行:
echo $?
执行成功则返回0,则证明成功了
配置MySQL
●复制配置文件并覆盖默认的配置文件
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
●修改配置文件
vi support-files/my-default.cnf
修改basedir是MySQL包所在的路径;datadir定义存放数据的地方,默认情况下,错误的日志也记录在这个目录里;port定义MySQL服务监听的端口,如果不定义默认就是3306;server_id定义改MySQL服务的ID号,这个参数用在做主从配置的时候(习惯性我们写作ip的后三位);socket定义MySQL服务监听的套接字地址。在Linux下面很多服务不仅可以监听一个端口(通过TCP/IP的方式通信),也可以监听socket,两个进程就可以通过socket文件通信,下面的几个buffer是关于内存配置的参数,保持默认即可。
●复制启动脚本文件,并修改其属性:
cp support-files/mysql.server /etc/init.d/mysq
chmod 755 /etc/init.d/mysql
//修改权限
●修改启动脚本属性
vim /etc/init.d/mysqld
修改datadir=/data/mysql(前面初始化数据库是定义的目录),basedir=/usr/local/mysql
●把mysql服务加到系统服务列表中
chkconfig --add mysqld
●设置开机就启动
chkconfig mysqld on
●启动服务
service mysqld start
●可以查看进程
ps -ef |grep mysql
●可以查看端口
netstat -ltunp |grep 3306
安装Apache
●移动位置
cd /usr/local/src/
●下载httpd-2.2.29.tar、apr-1.6.5.tar和apr-util-1.6.1.tar。
[root@localhost src]# wget http://mirror.hust.edu.cn/apache/httpd/httpd-2.4.43.tar.gz
[root@localhost src]# wgethttp://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz
[root@localhost src]# http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
●解压安装包
tar zxvf httpd-2.4.43.tar.gz
tar zxvf apr-1.6.5.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
●安装apr和apr-util
cd /usr/local/src/apr-1.6.5
//进入apr目录
./configure --prefix=/usr/local/apr
//编译apr
在干净的系统安装可能会因缺少libtool而报错,此时可以:
yum install -y libtool
解决完错误后重新编译# ./configure –prefix=/usr/local/apr //编译apr
echo $?
//检验是否执行成功
#`make && make install`
cd /usr/local/src/apr-util-1.6.1
//进入apr-util目录
./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
echo $?
#make &&make install
执行make时如果出现此类错误:
解决方法:# yum install -y expat-devel
解决完问题再次执行#make &&make
install
查看apr和apr-util是否都安装完成
ls /usr/local/
●安装httpd
#cd /usr/local/src/ httpd-2.4.43
./configure --prefix=/usr/local/apache2.4--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
–enable-so:支持动态扩展的模块(以.so为后缀文件);–enable-mods-shared=most:支持大多数动态扩展模块
●为了防止遇见问题先安装这个再编译
#yum install -y pcre pcre-devel
●安装
#make
&& make install
安装PHP
PHP下载网站:https://www.php.net/downloads.php
●切换目录
cd /usr/local/src
●下载压缩包
wget https://www.php.net/distributions/php-7.4.7.tar.gz
●解压缩
tar zxf php-7.4.7.tar.gz
●配置编译
cd php-7.4.7
./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs
--with-config-file-path=/usr/local/php7/etc --with-pdo-mysql=/usr/local/mysql
--with-mysql=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd
--with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir
--with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap
--enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
--p
refix:安装PHP的目录;–with-apxs2:这是一个指定工具的目录;–with-config-file-path=/usr/local/php7/etc:PHP配置文件的目录;–with-pdo-mysql=/usr/local/mysql
–with-mysql=/usr/local/mysql/bin/mysql_config:不同版本的MySQL的路径;
●出现错误:1、configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
No package ‘sqlite3’ found
解决方法:yum install sqlite-devel
2、configure: error: Package requirements
(oniguruma) were not met:
No package
‘oniguruma’ found
解决方法:sudo yum
install oniguruma-devel
3、问题:configure: error: jpeglib.h not
found.
解决方案如下:
rpm -qa | grep
libjpeg
libjpeg-turbo-1.2.90-5.el7.x86_64
yum -y install
libjpeg-devel
已加载插件:langpacks,
product-id, search-disabled-repos, subscription-manager
This system is not
registered with an entitlement server. You can use subscription-manager to register.
正在解决依赖关系
–> 正在检查事务
—> 软件包
libjpeg-turbo-devel.x86_64.0.1.2.90-5.el7 将被 安装
–> 解决依赖关系完成
…
yum list installed
| grep libjpeg
libjpeg-turbo.x86_64
1.2.90-5.el7 @anaconda/7.4
libjpeg-turbo-devel.x86_64
1.2.90-5.el7
@yaya
rpm -ql
libjpeg-turbo
/usr/lib64/libjpeg.so.62
/usr/lib64/libjpeg.so.62.1.0
/usr/share/doc/libjpeg-turbo-1.2.90
/usr/share/doc/libjpeg-turbo-1.2.90/ChangeLog.txt
/usr/share/doc/libjpeg-turbo-1.2.90/README
/usr/share/doc/libjpeg-turbo-1.2.90/README-turbo.txt
/usr/share/doc/libjpeg-turbo-1.2.90/change.log
/usr/lib/libjpeg.so.62
/usr/lib/libjpeg.so.62.1.0
/usr/share/doc/libjpeg-turbo-1.2.90
/usr/share/doc/libjpeg-turbo-1.2.90/ChangeLog.txt
/usr/share/doc/libjpeg-turbo-1.2.90/README
/usr/share/doc/libjpeg-turbo-1.2.90/README-turbo.txt
/usr/share/doc/libjpeg-turbo-1.2.90/change.log
再次编译即可成功。
●检查编译是否成功
echo $?
●编译安装
#make && make install
●复制配置文件
# `cp php.ini-production` /usr/local/php7/etc/php.ini
配置httpd支持PHP
●httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
#vim /usr/local/apache2.4/conf/httpd.conf
搜索ServerName(服务器名),把ServerName www.example.com:80前#去掉;
找到:
<Directory />
AllowOverride none
Require all
denied
</Directory>
改成:
<
Directory />
AllowOverride
none
Require all
granted
</Directory>
//目的允许所有请求访问
搜索AddType application/x-gzip .gz .tgz,在下面添加一行
AddType
application/x-httpd-php .php;(增加解析PHP文件)
找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改为:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
目的:增加索引页
●测试安装
(1)测试配置文件是否正确
#/usr/local/apach e2.4/bin/apachectl -t
//测试语法
//检验配置文件是否正确:Syntax OK
#/usr/local/apache2.4/bin/apachectl start
//启动httpd命令
#netstat -lnp |grep httpd
Tcp6 0 0 :::80 ::😗 LISTEN 47533/httpd
//查看是否启动(出现这一行,说明已经启动httpd)
#curl localhost
It works!
//使用curl命令简单测试是否能够解析,显示了就是成功
(2)测试是否正确解析PHP
先编写一个测试脚本:
#vim /usr/local/apache2.4/htdocs/1.php
<?
echo “php解析正确”
?>
//编写一个测试脚本
#curl localhost/1.php
php解析正确
//如显示此信息则PHP解析正确