LAMP架构介绍
-
Linux + Apache(httpd) + MySQL + PHP
(1)安装MySQL
MySQL的几个常用安装包:rpm、源码、二进制免编译
cd /usr/local/src (软件包放一起容易管理)
下载源码包,最好在官网下载;其他网站下载的可能被修改过
[root@lamp src]#wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@lamp src]# pwd
/usr/local/src
[root@lamp src]# ls
mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
解压压缩包:
tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
安装和配置
1).移动位置
[root@lamp src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
[root@lamp src]# cd /usr/local/mysql/
2).创建MySQL用户
[root@lamp mysql]# useradd -s /sbin/nologin mysql
3).创建datadir,数据库文件会放到这里面
[root@lamp mysql]# mkdir -p /data/mysql
4).更改权限,否则后续容易出问题
[root@lamp mysql]# chown -R mysql:mysql /data/mysql
5).执行脚本
[root@lamp mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
//--user表示定义数据库的以哪个用户的身份运
//--datadir表示定义数据库的安装目录
报错,安装:
[root@lamp mysql]# yum install -y perl-Module-Install
6).修改配置文件
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql //basedir表示MySQL包所在路径
datadir = /data/mysql //表示定义存放数据的位置
port = 3306 //port表示定义MySQL服务监听的端口号
server_id = 155 //表示该MySQL服务的ID号
socket = /tmp/mysql.sock //定义MySQL服务监听的套接字地址
7).复制启动脚本文件
[root@lamp mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@lamp mysql]#vi /etc/init.d/mysqld //修改启动脚本
basedir=/usr/local/mysql
datadir=/data/mysql
开启服务:
[root@lamp mysql]# chkconfig --add mysqld //把mysql服务加到系统服务列表中
[root@lamp mysql]# chkconfig mysqld on //开机就启动
[root@lamp mysql]# service mysqld start //启动服务
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
. SUCCESS! //安装成功
遇到的问题:
解决方法:安装autoconf,命令如下:
yum -y install autoconf
(2)安装Apache
Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache
ps:Apache官网www.apache.org
1).下载源码包:httpd-2.4.39.tar、apr-1.6.5.tar和apr-util-1.6.1.tar
[root@lamp src]# ls
apr-1.6.5.tar.gz mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
apr-util-1.6.1.tar.gz php-5.6.30.tar.gz
httpd-2.4.46.tar.gz php-7.1.6.tar.bz2
2).解压压缩包:
[root@lamp src]# tar -zxvf apr-1.6.5.tar.gz
[root@lamp src]# tar -zxvf apr-util-1.6.1.tar.gz
[root@lamp src]# tar -zxvf httpd-2.4.46.tar.gz
3).安装和配置:
[root@lamp mysql]# cd /usr/local/src/apr-1.6.5
[root@lamp mysql]# ./configure --prefix=/usr/local/apr
[root@lamp mysql]# make && make install
[root@lamp mysql]# cd /usr/local/src/apr-util-1.6.1
[root@lamp apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@lamp apr-util-1.6.1]# make && make install
[root@lamp ~]# cd /usr/local/src/httpd-2.4.46
[root@lamp httpd-2.4.46]# ./configure
--prefix=/usr/local/apache2.4 //--perefix指定安装目录
--enable-so //--nable-so表示启用DSO
--with-pcre
--with-included-apr
--enable-modules=most
--enable-mpms-shared=all //表示以共享形式安装模块
--with-mpm=prefork
[root@lamp src]# yum install -y pcre pcre-devel //为避免make时出错提前安装库文件
[root@lamp src]# make && make install
4).安装成功:
[root@lamp apache2.4]# ls /usr/local/apache2.4/modules
[root@lamp apache2.4]# /usr/local/apache2.4/bin/apachectl -M
//查看配置文件有哪些文件
//share字样的动态共享模块,static以静态形式存在
5).遇到的问题:
①.[root@lamp apr-1.6.5]# ./configure --prefix=/usr/local/apr
configure: error: in `/usr/local/src/apr-1.6.5':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
解决方法:安装libtool,命令如下:*
yum install -y libtool*
②.[root@lamp apr-util-1.6.1]#make && make install
fatal error: expat.h: No such file or directory
#include <expat.h>
^
compilation terminated.
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: Leaving directory `/usr/local/src/apr-util-1.6.1'
make: *** [all-recursive] Error 1
解决方法:安装expat-devel,命令如下:
yum install -y expat-devel
(3)安装PHP
PHP的官网网站:www.php.net
主流版本:5.6/7.1
1).下载源码包:php-5.6.30.tar
[root@lamp src]# pwd
/usr/local/src
[root@lamp src]# ls
apr-1.6.5 httpd-2.4.46.tar.gz
apr-1.6.5.tar.gz mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
apr-util-1.6.1 php-5.6.30.tar.gz
apr-util-1.6.1.tar.gz php-7.1.6.tar.bz2
httpd-2.4.46
[root@lamp src]#
2).解压压缩包:
[root@lamp src]# tar -zxvf php-5.6.30.tar.gz
[root@lamp src]# yum install -y bzip2 //安装解压缩工具包
[root@lamp src]# tar -jxvf php-7.1.6.tar.bz2
3).安装和配置:
[root@lamp src]#yum install -y libxml2-devel openssl openssl -devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel epel-release libmcrypt-devel
//为防止配置时出错提前安装库文件
[root@lamp src]# cd php-5.6.30
[root@lamp src]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --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
[root@lamp src]# make && make install //编译安装
[root@lamp php-5.6.30]# cd /usr/local/src/php-5.6.30
[root@lamp php-5.6.30]# /usr/local/apache2.4/bin/httpd -M //查看加载的模块
[root@lamp php-5.6.30]# cp php.ini-production /usr/local/php/etc/php.ini
安装php7:
[root@lamp src]# yum install -y libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel
[root@lamp src]# cd php-7.1.6
[root@lamp src]# ./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-mysqli=/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
[root@lamp src]# make && make install
[root@lamp php-7.1.6]# ls /usr/local/apache2.4/modules/libphp7.so
/usr/local/apache2.4/modules/libphp7.so
[root@lamp php-7.1.6]# cp php.ini-production /usr/local/php7/etc/php.ini
(4)httpd解析PHP
vi /usr/local/apache2.4/conf/httpd.conf //编辑httpd的主配置文件
①把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
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改成:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
③: LoadModule php5_module modules/libphp5.so注释掉,并改成
LoadModule php7_module modules/libphp7.so
测试安装:
①:测试配置文件是否正确
[root@lamp ~]# /usr/local/apache2.4/bin/apachectl -t 检验配置文件是否正确
Syntax OK
启动httpd命令
/usr/local/apache2.4/bin/apachectl start
查看是否启动
[root@lamp conf]# cd /usr/local/apache2.4/conf
[root@lamp conf]# netstat -lnp |grep httpd
tcp6 0 0 :::80 :::* LISTEN 37176/httpd
[root@lamp conf]# curl localhost
<html><body><h1>It works!<h1><body><html>
//使用curl命令简单测试,显示了就是成功
② : 测试是否正确解析PHP
[root@lamp conf]# vi /usr/local/apache2.4/htdocs/test.php
<?php
echo “php解析正确”
?>
[root@lamp conf]#curl localhost/1.php
php解析正确 //如显示此信息则PHP解析正确